添加客服咨詢?cè)斍?/p>
咨詢熱線:15918671994
多用戶
商城系統(tǒng)
訂單
管理系統(tǒng)
訂貨
管理系統(tǒng)
多語言
商城系統(tǒng)
發(fā)表于 2017-11-15 09:59:38 瀏覽:3084
阿里大于并入阿里云之后,阿里大于僅維護(hù)原有客戶。新的客戶可以在阿里云-云通信里購(gòu)買短信服務(wù)。首先我們可以看下阿里云-云通信的菜單位置:
添加短信服務(wù)之后就可以在左側(cè)看到短信服務(wù)的菜單:
溫馨提醒:使用阿里云-云通信要留意三個(gè)地方:1)設(shè)置eccesskeys--這個(gè)就是短信服務(wù)的賬號(hào)和密碼。2)設(shè)置短信簽名。3)設(shè)置短信模板。因?yàn)榘⒗镌?/span>-云通信本身有使用教程和客戶服務(wù),如何申請(qǐng)和使用我們就不過多講述,下邊我們下載一個(gè)基于thinkphp 5的WSTMart B2B2C商城系統(tǒng)講解一下:如何使用和實(shí)現(xiàn)thinkphp 5框架中接入阿里云-云通信功能。
1、在WSTMart B2B2C商城系統(tǒng)=>“拓展管理”-“插件管理”中找到“短信接口(阿里云-云通信)”插件,點(diǎn)擊右側(cè)的“安裝”進(jìn)行啟用。然后在“設(shè)置”界面對(duì)阿里云-云通信進(jìn)行設(shè)置:
上邊的Access Key ID、Access Key secret以及短信簽名為必填。發(fā)送的模板ID則選填,如果用戶沒有填寫,則系統(tǒng)不會(huì)發(fā)送該情況下的短信。
2、在B2B2C商城系統(tǒng)=>商城設(shè)置中開啟短信功能:
要留意的事,wstmart中默認(rèn)的短信發(fā)送間隔是2分鐘,阿里云-云通信則最短1分鐘1條,1小時(shí)5條,1天10條。設(shè)置到這里,基本上wstmart中就可以使用短信服務(wù)的功能了。
3、實(shí)現(xiàn)原理:
1)下載阿里云-云通信SDK放到到阿里云-云通信插件目錄下,該名為sdk。
2)在發(fā)短信的位置埋入鉤子。在類文件wstmart\common\model\LogSms.php中我們對(duì)發(fā)送短信的位置埋入鉤子。
當(dāng)程序運(yùn)行到此處的時(shí)候,系統(tǒng)就會(huì)自動(dòng)檢測(cè)在此鉤子處監(jiān)聽的插件有哪些。因?yàn)槲覀兦斑呏婚_啟了阿里云-云通信,所以程序就會(huì)進(jìn)入到阿里云-云通信的插件函數(shù)里:
sendSMS寫在插件的model里,我們按照阿里云-云通信的演示代碼封裝成一個(gè)http接口函數(shù):
public function http($params){
require_once WST_ADDON_PATH.'dysms/sdk/vendor/autoload.php';
Config::load();
$smsConf = $this->getConfigs();
$accessKeyId = $smsConf['smsKey'];;
$accessKeySecret = $smsConf['smsPass'];
$product = "Dysmsapi";
$domain = "dysmsapi.aliyuncs.com";
$region = "cn-hangzhou";
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
$acsClient= new DefaultAcsClient($profile);
$request = new SendSmsRequest();
$request->setPhoneNumbers($params['phoneNumber']);
//必填-短信簽名
$request->setSignName($smsConf["signature"]);
//必填-短信模板Code
$request->setTemplateCode($smsConf[$params['params']['tpl']['tplCode']]);
$request->setTemplateParam($params['content']);
//選填-發(fā)送短信流水號(hào)
$request->setOutId($params['timeId']);
//發(fā)起訪問請(qǐng)求
$resp = $acsClient->getAcsResponse($request);
return $resp;
}
然后我們?cè)谠?/span>model里邊去調(diào)用http函數(shù)去發(fā)短信.
public function sendSMS($params){
.......
省略封裝函數(shù)過程
.......
$code = $this->http($params);
$log = model('common/logSms')->get($params['smsId']);
$log->smsReturnCode = json_encode($code);
$log->save();
try{
if(strtolower($code->Message)=='ok'){
$params['status']['msg'] = '短信發(fā)送成功!';
$params['status']['status'] = 1;
}
}catch (\Exception $e) {
$params['status']['msg'] = $code->Message;
$params['status']['status'] = -1;
}
}
調(diào)試:如果調(diào)用阿里云-云通信能正確返回json對(duì)象的數(shù)據(jù),并且其message的內(nèi)容為ok。則說明短信發(fā)送成功,否則的話則提示用戶短信發(fā)送失敗。
歡迎大家一起分享、交流!
獲取體驗(yàn)賬號(hào) 最新優(yōu)惠及電商資訊