THINKPHP之阿里大魚簡訊介面
1、前端部分:
<script type="text/javascript"> function runReg() { var name=$.trim($("#username").val()); var pwd = $.trim($("#pwd").val()); var repwd = $.trim($("#repwd").val()); var telphone=$('#telphone').val(); var code=$('#rcode').val(); var myreg = /^1\d{10}$/; if(name == "") { alert("請填寫使用者名稱!"); return false; } else if(pwd == "") { alert('請填寫密碼!'); return false; } else if(repwd == "") { alert('請填寫重複密碼!'); return false; } else if(pwd != repwd) { alert("兩次密碼不一致,請重新輸入!"); $("#username").val(""); $("#username").focus(); return false; } else if(telphone.length!=11) { alert('請輸入正確的11位電話號碼!'); return false; } else if(!myreg.test(telphone)) { alert('請輸入有效的手機號碼!'); return false; } else if(code.length!=4) { alert('請輸入正確的4位驗證碼!'); return false; } else { var urlstr = "/Index/Index/runregist"; $.ajax({ type: "POST", url: urlstr, data: "name="+name+"&pwd="+pwd+"&telphone="+telphone+"&code="+code, dataType: 'json', contentType: "application/x-www-form-urlencoded", async:false, success: function(msg){ if(msg.result == "ok") { alert("恭喜您註冊成功,請進入登入頁面登入"); location.href='/userlogin.html'; } else if(msg.result == "re") { alert("此使用者名稱已被佔用,請重新填寫!"); } else if(msg.result == "err1") { alert("您輸入的手機號不匹配,請重新輸入!"); } else if(msg.result == "err2") { alert("您輸入的驗證碼已過時!"); } else if(msg.result == "err3") { alert("您輸入的驗證碼不正確,請重新輸入!"); } else if(msg.result == "err4") { alert("此手機號已被註冊,請重新填寫!"); } }, error : function(XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); } }); return true; } } //倒計時 var times = 60; function waitTime() { if (times == 0) { $("#codeButton").removeAttr("disabled").val("重新獲取驗證碼"); times = 60; } else { $("#codeButton").attr("disabled", true).val("在(" + times + ")秒後重新發送"); times--; setTimeout(function() {waitTime()},1000) } } //傳送驗證碼 function codeCheck(){ var telphone=$('#telphone').val(); var urlstr = "/Index/Index/registCode"; if(telphone.length!=11){ alert('請輸入正確的11位電話號碼!'); return true; } var myreg = /^1\d{10}$/; if(!myreg.test(telphone)) { alert('請輸入有效的手機號碼!'); return true; } $.ajax({ type: "GET", url: urlstr, data: {telphone:telphone}, success: function(data){ waitTime(); } }); } </script>
2、SDK下載下來之後修改名字為【alidayu】,放在我們的專案的核心目錄,\ThinkPHP\Extend\Vendor資料夾下面<div class="registdiv"> <div class="registname">使用者註冊</div> <table width="500" height="138" border="0"> <tr> <td width="100" align="right">使用者名稱:</td> <td colspan="2" width="300"><input type="text" class="retest" id="username" name="username" /></td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <tr> <td align="right">密碼:</td> <td colspan="2"><input type="password" class="retest" id="pwd" name="pwd" /></td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td align="right">重複密碼:</td> <td colspan="2"><input type="password" class="retest" id="repwd" name="repwd" /></td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td align="right">手機號碼:</td> <td width="200"><input type="text" class="retest" id="telphone" name="telphone" /></td> <td width="200"><input type="button" onClick="codeCheck();" id="codeButton" style="width:130px; margin:0 auto; height:30px; line-height:30px; display:block;" value="獲取驗證碼" /></td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td align="right">驗證碼:</td> <td colspan="2"><input type="text" class="retest" id="rcode" name="rcode" size="6" /></td> </tr> </table> <p><input type="button" id="regist" name="regist" value="註冊" class="btnregist" onClick="runReg()"/></p> </div>
檔案只保留如下2個資料夾和2個檔案其他刪除即可
3、程式碼部分:
######**********阿里大魚*******########
//阿里大魚傳送簡訊函式
public function sendAli($telphone,$randomCode){
vendor('alidayu.top.TopClient');
vendor('alidayu.top.ResultSet');
vendor('alidayu.top.RequestCheckUtil');
vendor('alidayu.top.TopLogger');
vendor('alidayu.top.request.AlibabaAliqinFcSmsNumSendRequest');
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');
$c = new \TopClient;
$c->appkey = '23524266';
$c->secretKey = 'b421d9dd6deeb0a0e903e4a94b3e5d38';
$req = new \AlibabaAliqinFcSmsNumSendRequest;
$req ->setExtend( "123456" );//固定引數
$req ->setSmsType( "normal" );//固定引數
$req ->setSmsFreeSignName( "XXXX網" );//來源於配置簡訊簽名 下面列表中有簽名名稱
$number = $randomCode;
$time = 10;
$req ->setSmsParam( "{number:'{$number}',time:'{$time}'}" ); //變數來源於 配置簡訊模板 點選列表中的詳情 模板內容的變數
$req ->setRecNum($telphone); //手機號
$req ->setSmsTemplateCode("SMS_123456"); //配置簡訊模板 列表中有模板id
$resp = $c ->execute( $req );
//$content = 您將要繫結本號碼作為您在XXXX網中的手機號碼。手機驗證碼為:${number},此驗證碼${time}分鐘以內有效!; //內容
//object(SimpleXMLElement)#8 (2) { ["result"]=> object(SimpleXMLElement)#7 (3) { ["err_code"]=> string(1) "0" ["model"]=> string(26) "104469829648^1106082240893" ["success"]=> string(4) "true" } ["request_id"]=> string(13) "10fk2epu4bw4l" }
if($resp->result->success && !$resp->result->code){
//傳送成功
return 1;
}else if($resp->code || $resp->msg =="Remote service error"){
//傳送失敗
return 0;
}else{
//未知情況
return 0;
}
}
//追加手機驗證碼
public function registCode()
{
$telphone=$_GET['telphone'];
$randomCode=$this->randCode(4,1);
$res = $this->sendAli($telphone , $randomCode);
if($res){
$_SESSION['registTelphone']=$telphone;
$_SESSION['registCode']=$randomCode;
$_SESSION['time']=time();
$this->success('簡訊已成功傳送至您的手機,請注意查收!');
$this->assign('jumpUrl',U('/Index/regist'));
}else{
$this->assign('jumpUrl',U('/Index/regist'));
$this->error('傳送失敗!');
}
}
/**
+----------------------------------------------------------
* 生成隨機字串
+----------------------------------------------------------
* @param int $length 要生成的隨機字串長度
* @param string $type 隨機碼型別:0,數字+大寫字母;1,數字;2,小寫字母;3,大寫字母;4,特殊字元;-1,數字+大小寫字母+特殊字元
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
function randCode($length = 5, $type = 0) {
$arr = array(1 => "0123456789", 2 => "abcdefghijklmnopqrstuvwxyz", 3 => "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 4 => " [email protected]#$%^&*(){}[]|");
if ($type == 0) {
array_pop($arr);
$string = implode("", $arr);
} else if ($type == "-1") {
$string = implode("", $arr);
} else {
$string = $arr[$type];
}
$count = strlen($string) - 1;
for ($i = 0; $i < $length; $i++) {
$str[$i] = $string[rand(0, $count)];
$code .= $str[$i];
}
return $code;
}
/**
+----------------------------------------------------------
* 生成隨機字串
+----------------------------------------------------------
* @param int $length 要生成的隨機字串長度
* @param string $type 隨機碼型別:0,數字+大寫字母;1,數字;2,小寫字母;3,大寫字母;4,特殊字元;-1,數字+大小寫字母+特殊字元
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
######**********阿里大魚*******########
//註冊
public function runregist()
{
########*******追加手機註冊******############
$telphone=$_POST['telphone'];
$code=$_POST['code'];
$reg_error=1;
if($telphone!=$_SESSION['registTelphone']){
$reg_error=2;
}
if((time()-intval($_SESSION['time']))>10*60){
$reg_error=3;
}
if($code!=$_SESSION['registCode']){
$reg_error=4;
}
$rgtel = M('member')->where(array('tel'=>$telphone))->find();
if(count($rgtel) >0){
$reg_error=5;
}
$info['tel']=$telphone;
########*******追加手機註冊******############
$info['username'] = $_POST['name'];
$info['password'] = I('pwd','','md5');
$info['schoolid']= I('post.schoolid');
$info['school']=I('post.schoolname');
$user = M('member')->where(array('username'=>I('post.name')))->find();
$result = 'no';
if(count($user) >0){
$result = 're';
}else{
if($reg_error==1){
M('member')->add($info);
$result = 'ok';
}else if($reg_error==2){
$result = 'err1';
}else if($reg_error==3){
$result = 'err2';
}else if($reg_error==4){
$result = 'err3';
}else if($reg_error==5){
$result = 'err4';
}
}
print json_encode(array('reg_error'=>$reg_error,'result'=>$result));
}
注意:阿里大魚註冊、應用建立、配置管理【驗證碼】、下載API介面等自行看指南
相關推薦
THINKPHP之阿里大魚簡訊介面
1、前端部分: <script type="text/javascript"> function runReg() { var name=$.trim($("#username").val());
基於redis 和阿里大魚簡訊介面實現網站狀態監控
rpoplpush source destination redis的 RPOPLPUSH 命令可以很直觀的在多個佇列中傳遞資料。當source和destination 相同時,RPOPLPUSH命令會不斷的將隊尾的元素移到隊首,藉助這個特性我們可以實現一個網站監控系統:
阿里大魚簡訊傳送介面開發
alibaba.aliqin.fc.sms.num.send (簡訊傳送) 向指定手機號碼傳送模板簡訊,模板內可設定部分變數。使用前需要在阿里大於管理中心新增簡訊簽名與簡訊模板。測試時請直接使用正式環境HTTP請求地址。 【重要】批量傳送(一次傳遞多個號碼eg:1381111111,1382222222
【PHP】呼叫阿里大魚簡訊驗證
1.第一步 登陸阿里大於註冊賬號,在使用者管理中心建立應用,確定AppKEY和App Secret還有配置簽名 2.第二步 在應用管理中選擇SDK下載,或者直接點選http://download.csdn.net/detail/s371795639/9695983下載,免費的哦
接入阿里雲簡訊介面
無論是阿里雲還是騰訊雲,申請簡訊介面的步驟都是一樣的,先申請簡訊簽名,在申請簡訊模板,在下載sdk檔案包,配置後即可。 一、開啟簡訊服務 https://www.aliyun.com/product/sms?spm=5176.10695662.1128094.1.27b83
阿里雲簡訊介面開發實踐(Java)
隨著網際網路的興起,各行各業的需求都在不斷的增加。隨著業務的擴大,企業給使用者傳送簡訊驗證碼的業務,也是如火如荼。在這裡,calvin給各位開發者推薦阿里雲簡訊平臺。原因有二:1.接入較簡單,開發成本低 2.非常穩定,簡訊可達率99%。 &
.net呼叫阿里雲簡訊介面
由於阿里雲簡訊介面有兩類: 一類是: AppKey ==== AppSecret ==== AppCode ==== 二類是: AccetKey ==== AccetSecret ==== 根據需求申請相應的key和secret; 這裡我使用的是第二類,千萬不要把一類和二類
新版阿里雲簡訊介面呼叫
今天專案需要用到阿里雲的簡訊介面,看了文件,感覺文件說的不詳細,demo也是有點亂,找了資料,發現說是今年新改版的,費了點勁,弄好了,阿里的這個簡訊介面呼叫比其他的簡訊介面麻煩點,但更安全點; 前
阿里雲簡訊介面呼叫
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Frank import uuid import datetime import hmac import base64 import requests from ur
阿里大魚簡訊平臺使用(Java)
找回密碼簡訊驗證專案中修改密碼需要手機簡訊驗證,由於阿里大魚發簡訊速度快,穩定,因此決定使用阿里大魚。廢話不多說,步驟如下:1.首先登入阿里大魚官網,註冊成為開發者。(http://www.aliday
TP5呼叫阿里雲簡訊介面實現傳送簡訊功能
因為專案中需要用到阿里雲簡訊驗證碼功能,所以就購買了相應的簡訊包進行測試,以下就是完整程式碼: use Aliyun\Core\Config; use Aliyun\Core\Profile\DefaultProfile; use Aliyun\Core\Defau
Java阿里大魚簡訊接入
(這個是阿里雲裡面的哈,不是淘寶裡面的兩種還是不一樣;阿里雲後臺 簡訊服務裡面的) 簡訊推送在很多專案中都有用到,總結一下吧,下次直接copy程式碼!! 關於accesskeyId和key可以檢視API文件裡面有跳轉連結可以檢視。 package com.alidayu
阿里大魚傳送簡訊(工具類)
前言:需要去申請阿里大魚的賬號 點選跳轉阿里大魚平臺 1.座標 <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> <dependenc
第三方介面呼叫案例(以阿里雲簡訊服務為例)
第三方介面或者服務大部分都是以rest風格的,需要http請求去呼叫,通過網路傳送請求去呼叫,然後等待第三方服務的響應,併發量多的話,會嚴重拖慢業務邏輯的處理速度。為了提高系統的效能,呼叫第三方服務,最好做成非同步的,如果條件允許,最好用單獨的伺服器,或者幾臺伺服器來做呼叫第三方介面,來提高業務邏輯
springboot+阿里大魚傳送簡訊詳細
1匯入阿里大魚座標 <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</a
Java專案整合阿里雲SMS簡訊介面傳送驗證碼
public static Map MessageExecuteMethod(String mobile) throws ClientException { //設定超時時間-可自行調整 System.setProperty(“sun.net.client.defaultConnectTim
PHP對接阿里大魚實現簡訊的傳送
背景知識: 手機驗證碼這個功能幾乎哪裡都可以看到,那麼PHP如何實現手機驗證碼的傳送呢?下面介紹PHP對接阿里大魚實現簡訊驗證碼傳送。 1.首先登陸阿里雲,點選控制檯: 2.選擇簡訊服務: 3.由於阿里雲的簡訊服務,需要簽名和模板,因此需要先申請: 4.申
thinkphp5詳細使用阿里雲簡訊最新版(原大魚)教程!
先說一下吧,這篇文章主要教大家如何使用tp5來使用阿里簡訊平臺最新版2.0sdk,也就是所謂的前阿里大魚。 但是高手略過啊,只針對新手,如果大家發現有什麼問題,歡迎留言指出,我會更正! 首先我們下載官方完整包的SDK:[url]https://help.aliyun.com/document_d
python爬蟲之雲片網國內簡訊介面爬取
安裝requests,lxml,openpyxl,pandas四個包。 requests爬取 lxml解析 panda轉換並儲存 openpyxl是讀寫excel檔案所用到的包 程式碼奉上: import pandas as pandas import requests from lxm
【java】呼叫阿里雲通訊介面發簡訊
【前言】 呼叫簡訊傳送驗證碼的方法阿里雲都寫好了,而且會自動限制單日傳送量,每分鐘一條,同一手機號單日10條等等。安全性很好。而且國際國內都能發。【介面程式碼】package com.candyshop.utils.util; import com.aliy