摘要:本方法基于,用到了,當然具體項目中也可以不用,下面我就按步驟來寫下來。
本方法基于Thinkphp,用到了jquery.validate,當然具體項目中也可以不用,下面我就按步驟來寫下來。
1.準備1.登陸
http://www.alidayu.com,進入網址
用淘寶號登陸即可
2.進入管理中心
3.配置
(1)配置短信簽名
(2)配置短信模板
建好后,需要的東西就是APPkey APPsecret
還可以進行測試
引入
下載阿里大于類文件,放在/Thinkphp/Library/org/Alidayu(文件夾要大寫,坑過自己,部署到服務器后出問題)
通用類里
// 生成短信驗證碼 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; } } }
用的類里,我是放在注冊類里調用
//發送短信,調用BaseController里的方法,因為其他模塊也要用到這方法
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"); } }by the way 歡迎交流 QQ755092893
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/23256.html
摘要:之前使用的阿里大于,不過很坑的是,新接入的都不能用了,融入進了阿里云服務,當然阿里大于的老用戶還可以繼續用阿里大于首先還是接入,上圖找到短信服務設置短信簽名和短信模板設置或找到或下載文檔打開下載下來的文檔,只需要,將其改名為,并放到項目根目 之前使用的阿里大于,不過很坑的是,新接入的都不能用了,融入進了阿里云服務,當然阿里大于的老用戶還可以繼續用阿里大于 首先還是接入,上圖: (1)找...
摘要:新版下載下來,集成了很多東西,自己看著都煩,不多說,上源碼我寫了兩個類線上地址公共參數發送短信電話號碼短信簽名短信模板代碼短信模板參數缺少參數缺少參數缺少參數缺少參數計算簽名網絡請求 新版sdk下載下來,集成了很多東西,自己看著都煩,不多說,上源碼我寫了兩個類AliSms.class.php class AliSms { //線上地址 const API_DOAMIN = http:/...
摘要:前言注冊時經常需要用到短信驗證碼,本文記錄一下思路和具體實現。短信驗證平臺使用云片,短信驗證碼的生成使用。云片發送短信驗證碼到指定手機號。用戶輸入短信驗證碼。 前言 注冊時經常需要用到短信驗證碼,本文記錄一下思路和具體實現。短信驗證平臺使用云片,短信驗證碼的生成使用thinkphp。 思路 1、用戶輸入手機號,請求獲取短信驗證碼。2、thinkphp生成短信驗證碼,存儲,同時和其他參數...
閱讀 1951·2021-11-15 17:58
閱讀 2135·2021-10-19 11:45
閱讀 3495·2021-09-02 15:40
閱讀 2602·2021-07-25 10:50
閱讀 3750·2019-08-30 15:56
閱讀 3152·2019-08-30 12:44
閱讀 1034·2019-08-26 13:38
閱讀 1877·2019-08-23 18:29