1.國(guó)外短信這里介紹:短信寶
用的是thinkphp框架
在TP模塊下的目錄新建Service文件夾,在里面新建service服務(wù)類(lèi)用于短信寶發(fā)送短信。
更多詳情可參考官網(wǎng):
namespaceHome\Service;
classSmaoService{
function__construct(){
$config=array(
'user'=D('Config')-get('msg_user'),
'pass'=D('Config')-get('msg_pass'),
'smsapi'='接口地址',
);
$statusCode=array(
0=短信發(fā)送成功,
-1=參數(shù)不全,
-2=服務(wù)器空間不支持,請(qǐng)確認(rèn)支持curl或者fsocket,聯(lián)系您的空間商解決或者更換空間!,
30=密碼錯(cuò)誤,
40=賬號(hào)不存在,
41=余額不足,
42=帳戶(hù)已過(guò)期,
43=IP地址限制,
50=內(nèi)容含有敏感詞
);
$this-config=$config;
$this-statusCode=$statusCode;
}
/**
*發(fā)送驗(yàn)證碼
*@param$phone
*@param$code驗(yàn)證碼
*@returnmixed
*/
publicfunctionsendMsg($phone,$code){
$config=$this-config;
$statusCode=$this-statusCode;
$autograph=D('Config')-get('msg_autograph');
$content=D('Config')-get('msg_content');
$content='【'.$autograph.'】'.str_replace('{code}',$code,$content);
$sendurl=$config['smsapi'].sms?u=.$config['user'].p=.md5($config['pass']).m=.$phone.c=.urlencode($content);
$status=file_get_contents($sendurl);
$reData['status']=$status;
$reData['info']=$statusCode[$status];
return$reData;
}
}
數(shù)據(jù)庫(kù)中要建配置參數(shù):
msg_user(短信寶用戶(hù)名)
msg_pass(短信寶密碼)
msg_autograph(短信寶簽名)
msg_content(短信內(nèi)容,必須包含驗(yàn)證碼替換符{code})
2.國(guó)外的介紹QcloudS騰訊短信
可以發(fā)送國(guó)內(nèi)短信的接口有很多,之前也有整理比較好用的。當(dāng)有用戶(hù)需要發(fā)送國(guó)際短信時(shí),比較常用就是阿里和騰訊的了。下面是騰訊短信簡(jiǎn)單發(fā)送對(duì)接TP的Service
下面以國(guó)際短信為例
1、在騰訊短信控制臺(tái)申請(qǐng)海外文本短信,只需要申請(qǐng)短信模板即可,海外短信不需要申請(qǐng)簽名,國(guó)內(nèi)短信必須申請(qǐng)簽名。
2、下載官方的phpSDK,在TP使用時(shí)需要小改一下命名空間,文章下有提供可下載。放到TP的Vendor/Qcloudsms文件夾中。
3、在要使用的模塊下新建QcloudsmsService.class.php,代碼如下:
<!--?phpnamespaceHome\Service;
classQcloudsmsService{
function__construct(){
$config=array(
'appid'='14054******',//控制臺(tái)查看
'appkey'='6fe55********************',//控制臺(tái)查看
'templId'='295555**',
'nationCode'='852555',//國(guó)家或地區(qū)區(qū)號(hào),香港852,大陸86
);
$this-config=$config;
}
/**
*發(fā)送驗(yàn)證碼
*@param$phone
*@param$code驗(yàn)證碼
*@returnmixed
*/
publicfunctionsendMsg($phone,$code){
vendor('Qcloudsms.SmsSender');
$config=$this-config;
$singleSender=new\SmsSingleSender($config['appid'],$config['appkey']);
//普通單發(fā)
$result=$singleSender-send(0,$config['nationCode'],$phone,您好,您的驗(yàn)證碼為.$code,,);
//返回的成功示例:{result:0,errmsg:OK,ext:,sid:2:670479-0268698729-028972-001510040916,fee:1}
//result為0表示發(fā)送成功
$rsp=json_decode($result,true);
return$rsp;
}
}