php发送短信验证码
注意:
1.需要一个短信服务商,接入短信服务(比如阿里大于等)
2.根据开发文档实现发送短信功能
以下代码是在TP框架中实现,使用的支付宝阿里大鱼短信服务商。
/*外部调用,发送验证码*/
public function sendcode(){
$data =$_REQEST;//get或post请求接收手机号
$codemsg =$this->send($data['mobile']);
if($codemsg->status){
echo '发送失败';
return;
}
echo '发送成功';
return;
}
private function send($mobile){
header("Content-Type: text/html; charset=utf-8");//指定utf-8编码
$param =rand(0,9); //随机生成6位数字验证码
for($i=0;$i<5;$i++){
$param.=rand(0,9);
}
/*以下两个变量($url,$post_data)具体看短信接口的说明*/
$url ="";//此处为短信接口的链接,具体的用法参考短信接口的说明
$post_data = "account=账号&password=密码&mobile=".$mobile."&content=短信内容 验证码:".$param."&extno=接入号,sp服务号&rt=响应数据类型";//短信平台的账号,密码不能给看哦,具体看短信接口的说明。
$curl = curl_init();//初始化curl会话
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$resmsg = curl_exec($curl);//返回的参数具体看短信服务商的开发文档 我的返回的是字符串
curl_close($curl);//关闭curl会话
$resmsg =json_decode($resmsg);//把字符串转化为对象
if(!$resmsg->status){//取出状态码,判断是否发送成功
return 1;
}
return 0;
}