TP3.2 配置最新的阿里大于sdk
TP3.2 配置最新的阿里大于sdk
最近公司买了阿里云的阿里大于短信验证 ,这里记录下本人接入短信验证的过程和心得。
大家是不是一开始都是和本人一样直接去百度下怎么有没有现成的demo 或者是封装好了的类库
就像是 :http://www.thinkphp.cn/topic/46029.html
但是兴高采烈的接入好了 , 最后会发现 ISV 什么开发这权限不足 , 其实后台都是好了的 , 根本就不是权限不足, 而是搬家了
以前的接口是有taobao 的,就像https://api.alidayu.com/apitools/apiTools.htm?spm=a3142.7395905.4.29.z1Hkms&catId=20711&apiId=25450&apiName=alibaba.aliqin.fc.sms.num.send&scopeId=#
没错这个是过期了的 但是官方并没有说明这种情况,这就很坑了。
这里作者建议 大家直接去官方下载最新的sdk:
https://help.aliyun.com/document_detail/55451.html?spm=5176.doc55288.6.556.sIOJUV
下载好了直接配置demo
这里配置
这里务必看清楚,那些参数签名什么的,不然就是各种报错, 你懂的,很难受
如果你的demo 成功的话 那么封装就变得简单了
/* * 阿里大鱼手机验证码发送函数 * * */ function sendphone($m) { Vendor('Alidayu.api_demo.SmsDemo'); header('Content-Type: text/plain; charset=utf-8'); $demo = new \SmsDemo( C('Alidayu.Appkey'), C('Alidayu.SecretKey') ); // echo "SmsDemo::sendSms\n"; $randStr = str_shuffle('1234567890'); $code = substr($randStr,0,4); $_SESSION['sendphonecode']=$code; $_SESSION['expire']=1800; $response = $demo->sendSms( C('Alidayu.SignName'), // 短信签名 C('Alidayu.SmsTemplate'), // 短信模板编号 $m, // 短信接收者 Array( // 短信模板中字段的值 "code"=> $code, "product"=>"dsd" ), "666" ); // echo "SmsDemo::queryDetails\n"; $response = $demo->queryDetails( "1234567890", // phoneNumbers 电话号码 date('Ymd',time()), // sendDate 发送时间 10, // pageSize 分页大小 1, // currentPage 当前页码 "abcd" // bizId 短信发送流水号,选填 ); return $code; }
下面的参数
$demo->queryDetails
具体怎么使用 , 我也是不清楚的,如果有知道的可以告诉下,谢谢。
到在下一步就是获取和验证了
/* * 发送验证码 * @param mobile purpose 手机号 状态 * @return 0 1 * */ public function setphone() { $mobile = '15779675455'; // $mobile = I('post.mobile'); // $purpose = I('post.purpose'); $purpose = '1'; if(isset($mobile) && empty($mobile)){ error_r('手机号码不能为空!'); } if(isset($purpose) && empty($purpose)){ error_r('验证类型不能为空!'); } $a = sendphone( $mobile ); $yn = (empty($a))? '0' : '1' ; $data = array( 'phone'=>$mobile, 'purpose'=>$purpose, 'status'=>$yn, 'add_time'=>time(), 'time_date'=>date('Y-m-d',time()) ); M('phonecode')->add($data); if(empty($a)){ error_r('发送失败'); }else{ success_s('发送成功'); } } /* * 验证验证码是否正确 * @param mobile 手机号 * @return 0 1 * */ public function thancode() { $phone = I('post.phone'); $a = $_SESSION['sendphonecode']; if($phone == $a) { success_s('验证码正确'); }else{ error_r('验证码错误'); } }
到了这里这功能就基本封装了好