다음 튜토리얼 칼럼인 thinkphp 프레임워크에서는 thinkphp의 Alibaba SMS 확인 방법을 소개합니다. 필요한 친구들에게 도움이 되길 바랍니다!
이 방법은 Thinkphp를 기반으로 하며 jquery.validate를 사용합니다. 물론 특정 프로젝트에서는 사용하지 않을 수도 있습니다.
1. 로그인
http://www.alidayu.com에 접속하세요.
타오바오 계정으로 로그인하세요
2. 관리센터에 들어가세요
(2) SMS 템플릿 구성
구축 후 필요한 것은 APPkey APPsecret
테스트
2.Database
3.Backend
// 生成短信验证码 public function createSMSCode($length = 4){ $min = pow(10 , ($length - 1)); $max = pow(10, $length) - 1; return rand($min, $max); } //发送验证码 public function send_phone($phone){ $code=$this->createSMSCode($length = 4); import('Org.Alidayu.top.TopClient'); import('Org.Alidayu.top.ResultSet'); import('Org.Alidayu.top.RequestCheckUtil'); import('Org.Alidayu.top.TopLogger'); import('Org.Alidayu.top.request.AlibabaAliqinFcSmsNumSendRequest'); $c = new \TopClient; $appkey="你的appkey"; $secret="你的secret; $c ->appkey = $appkey ; $c ->secretKey = $secret ; $req = new \AlibabaAliqinFcSmsNumSendRequest; $req ->setExtend( "" ); $req ->setSmsType( "normal" ); $req ->setSmsFreeSignName( "阿尚测试" ); $req ->setSmsParam( "{name:'客户',code:'".$code."',time:'5分钟'}" ); $req ->setRecNum( $phone); $req ->setSmsTemplateCode( "SMS_71300157" ); $resp = $c ->execute( $req ); $this->sendMsgResult($resp,$phone,$code); } //验证手机号是否发送成功 前端用ajax,发送成功则提示倒计时,如50秒后可以重新发送 private function sendMsgResult($resp,$phone,$code){ if ($resp->result->success && !$resp->result->code) { $data['phone']=$phone; $data['code']=$code; $data['send_time']=time(); $result=M("code")->add($data); if($result){ $data="发送成功"; }else{ $data="发送失败"; } } else if ($resp->code || $resp->msg == "Remote service error") { $data="发送失败"; } else { $data="发送失败"; } return $data; } // 验证短信验证码是否有效,前端用jquery validate的remote public function checkSMSCode(){ $mobile = $_POST['mobile']; $code = $_POST['code']; $nowTimeStr = date('Y-m-d H:i:s'); $smscodeObj = M("code")->where("mobile='$mobile'")->find(); if($smscodeObj){ $smsCodeTimeStr = $smscodeObj['send_time']; $recordCode = $smscodeObj['code']; $flag = $this->checkTime($nowTimeStr, $smsCodeTimeStr); if($flag&&$code==$recordCode){ echo true; }else{ echo false; } } }
public function send_message(){ $phone=I("post.phone"); //data返回失败 但不影响使用 $data=$this->send_phone($phone); $this->ajaxReturn($data,"JSON"); }
4. 프론트 엔드 ajax의 일부 기능은 이미 사용 가능하며 개선이 필요합니다
//发送手机ajax function send_message() { if($("#phone input").valid()){ var phone=$("#phone input").val(); $.post("{:U('Register/send_message')}","phone="+phone,function(data){ }); $("#send_message").html("发送成功"); $("#send_message").css("background-color","#2f9cff"); } }
위 내용은 thinkphp의 Alibaba SMS 확인 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!