短信
更新时间:2023-06-19 10:48
接口支持腾讯云短信、阿里云短信服务发送。
(更多平台支持,持续增加中...)
使用之前必须调用对应服务商的初始化接口,传入配置参数。
腾讯云短信
初始化
Lib\Api::Sms_SendByTencent($options);
参数 | 类型 | 含义 |
---|---|---|
$option | array | 腾讯云短信配置数组 |
$options 参数列表
key | value 类型 | 含义 |
---|---|---|
SecretId | string | 腾讯云账户云API密钥对(secretId、secretKey) 查询: https://console.cloud.tencent.com/cam/capi |
SecretKey | string | 腾讯云账户云API密钥对(secretId、secretKey) 查询: https://console.cloud.tencent.com/cam/capi |
SmsSdkAppId | string | SmsSdkAppId:短信应用ID(SdkAppId)在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666。可前往 短信控制台 查看 |
SignName | string | 腾讯云短信后台审核通过的 短信签名 |
TemplateId | string | 腾讯云短信后台审核通过的 短信模板id |
参数范例:
$options = array(
'SecretId' => 'abcd',
'SecretKey' => 'efgh',
'SmsSdkAppId' => '1400006666',
'SignName' => 'WitFrame',
'TemplateId' => '123456',
);
短信发送
$SendByTencent = Lib\Api::Sms_SendByTencent($options);
$SendByTencent->send('18888888888', array('123456'));
send($phoneNumber, $params, $nationCode, $senderId) 参数说明:
key | value 类型 | 含义 |
---|---|---|
phoneNumber | string | 不带国家码的手机号 |
params | array | 模板参数列表,如模板 {1}...{2}...{3},那么需要带三个参数 |
nationCode | string | 国家码,默认:86 |
senderId | string | 国内短信无需填写该项;国际/港澳台短信已申请独立 SenderId |
|
返回参数
应答json字符串,详细内容参见腾讯云协议文档
{"SendStatusSet":[{"SerialNo":"2640:172551234716869035571691139","PhoneNumber":"+8618812345678","Fee":1,"SessionContext":"","Code":"Ok","Message":"send success","IsoCode":"CN"}],"RequestId":"d8b209fc-7524-49a6-9cea-754e6af2f8ab"}
完整示例
以发送短信验证码为例(短信参数为示例参数):
public function indexAction() {
$options = array(
'SecretId' => 'AKIDhHjz5fdghasdhz74pNjwdfggweCan',
'SecretKey' => 'BBze6PYVasdfgdgd7pMp9IH3f7OeoxfE',
'SmsSdkAppId' => '14001234567',
'SignName' => '云诺网络',
'TemplateId' => '123456',
);
// 调用腾讯云短信API接口
try {
// 腾讯云短信初始化
$SendByTencent = Lib\Api::Sms_SendByTencent($options);
// 生成随机验证码数值
$random = rand(100000, 999999);//生成随机数
// 调用短信发送接口
$return = $SendByTencent->send('18812345678', array($random));
// 获得返回值json
print_r($return);
}catch (Exception $e) {
$this->errorMessage($e->getMessage(),'1002' );
}
}
阿里云短信服务
初始化
Lib\Api::Sms_SendByAliyun($options);
参数 | 类型 | 含义 |
---|---|---|
$option | array | 阿里云短信服务短信配置数组 |
$options 参数列表
key | value 类型 | 含义 |
---|---|---|
accessKeyId | string | 阿里云访问控制 accessKeyId |
accessKeySecret | string | 阿里云访问控制 accessKeySecret |
SignName | string | 阿里云短信服务后台审核通过的 短信签名 |
TemplateId | string | 阿里云短信服务后台审核通过的 短信模板id |
参数范例:
$options = array(
'accessKeyId' => 'LTAIsdfsdfs2n',
'accessKeySecret' => 'ClyOzOsgdfgdfgdfgdgNRCjSwrWoN',
'SignName' => '云诺网络',
'templateCode' => 'SMS_78730221',
);
短信发送
$SendByAliyun = Lib\Api::Sms_SendByAliyun($options);
$SendByAliyun->send('18812345678', json_encode(array('code' => '123456')));
send($phoneNumber, $params, $nationCode, $senderId) 参数说明:
key | value 类型 | 含义 | |
---|---|---|---|
phoneNumber | string | 不带国家码的手机号 | |
params | string | 模板参数列表,需传入 JSON 字符串,如:{"code":"1234"} | |
nationCode | string | 国家码,默认:86 |
返回参数
应答json字符串,详细内容参见阿里云协议文档
{"bizId":"333624786908558073^0","code":"OK","message":"OK","requestId":"7351AEF9-4A74-561A-BE05-91796EB96ADF"}
完整示例
以发送短信验证码为例(短信参数为示例参数):
public function indexAction() {
$options = array(
'accessKeyId' => 'LTAIsdfsdfs2n',
'accessKeySecret' => 'ClyOzOsgdfgdfgdfgdgNRCjSwrWoN',
'SignName' => '云诺网络',
'templateCode' => 'SMS_78730221',
);
// 调用腾讯云短信API接口
try {
// 阿里云短信服务短信初始化
$SendByAliyun = Lib\Api::Sms_SendByAliyun($options);
// 生成随机验证码数值
$random = rand(100000, 999999);
// 调用短信发送接口
// 第二个参数模板参数列表,需传入 JSON 字符串
$return = $SendByAliyun->send('18812345678', json_encode(array('code' => $random)));
// 获得返回值json
print_r($return);
}catch (Exception $e) {
$this->errorMessage($e->getMessage(),'1002' );
}
}