QcloudSMS腾讯短信简单接口调用示例

可以发送国内短信的接口有很多,之前也有整理比较好用的。当有用户需要发送国际短信时,比较常用就是阿里和腾讯的了。下面是腾讯短信简单发送对接 TP 的 Service

下面以国际短信为例

1、在腾讯短信控制台申请“海外文本短信”,只需要申请短信模板即可,海外短信不需要申请签名,国内短信必须申请签名。

2、下载官方的 phpSDK,在 TP 使用时需要小改一下命名空间,文章下有提供可下载。放到 TP 的 Vendor/Qcloudsms 文件夹中。

3、在要使用的模块下新建 QcloudsmsService.class.php,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
namespace Home\Service;

class QcloudsmsService {
function __construct() {
$config = array(
'appid' => '140******',//控制台查看
'appkey' => '6fe********************',//控制台查看
'templId' => '295**',
'nationCode' => '852', //国家或地区区号,香港852,大陆86
);
$this->config = $config;
}

/**
* 发送验证码
* @param $phone
* @param $code 验证码
* @return mixed
*/
public function sendMsg($phone, $code) {
vendor('Qcloudsms.SmsSender');
$config = $this->config;
$singleSender = new \SmsSingleSender($config['appid'], $config['appkey']);
// 普通单发
$result = $singleSender->send(0, $config['nationCode'], $phone, "你好,你的验证码为" . $code, "", "");
//返回的成功示例:{"result":0,"errmsg":"OK","ext":"","sid":"2:670479-0268698729-028972-001510040916","fee":1}
//result为0表示发送成功
$rsp = json_decode($result, true);
return $rsp;
}
}