知識付費短信功能同時支持阿里云短信和crmeb短信,我們使用時只需要二選一即可。
那么我們如何二開阿里云短信功能呢?
第一步:首先進入阿里云控制臺,在阿里云短信模塊,申請需要新加的短信模版
第二步:在知識付費總后臺->系統維護->開發配置->配置分類->短信配置下加新的短信模版id儲存配置
點擊“短信配置”名稱,進入短信配置下的子配置
點擊添加配置,選擇‘文本框’類型,填寫下面的配置,提交配置
提交完成后,進入“系統設置->系統設置->阿里云配置->短信配置”,在這里我們可以看到我們新加的短信模版id配置。
第三步:調取阿里云短信接口,發送短信
知識付費源碼的根目錄”extend/service/AliMessageService”下的sendmsg方法為阿里云短信的發送方法;
$tel:接收手機號
$setTemplateCode :短信模版ID
$setTemplateParam :短信內容 參數為數組
$setOutId :可以為空
/**
* 發送短信
* @param string $tel 短信接收號碼
* @param string $setSignName 短信簽名
* @param string $setTemplateCode 短信模板ID
* @param array $setTemplateParam 短信內容
* @param string $setOutId 外部流水擴展字段
*/
public static function sendmsg($tel = '', $setTemplateCode = '', $setTemplateParam = [], $setOutId = '')
{
try {
self::init();
$result = AlibabaCloud::rpc()
->product('Dysmsapi')
->version('2017-05-25')
->action('SendSms')
->method('POST')
->host('dysmsapi.aliyuncs.com')
->options([
'query' => [
'RegionId' => "cn-hangzhou",
'PhoneNumbers' => $tel,
'SignName' => SystemConfigService::get('smsSignName'),
'TemplateCode' => $setTemplateCode,
'TemplateParam' =>count($setTemplateParam) > 0 ? json_encode(is_array($setTemplateParam) ? $setTemplateParam : ['code' => $setTemplateParam]) : '',
],
])->request()->toArray();
return $result;
} catch (ClientException $e) {
return false;
} catch (ServerException $e) {
return false;
}
}
如果發送短信呢?
AliMessageService::sendmsg($tel,$setTemplateCode,$setTemplateParam);
例如我們的登錄驗證碼的發送
$phone 是接收的手機號,$smsTemplateCode 是短信模版ID ,['code' => $code]就是短信的內容了;這樣就發送成功了。