腾讯云短信发送功能API-PHP接入

2019-07-26 17:39:39 浏览数 (1)

最近测试了一下短信发送功能,接入了腾讯云的API.

登录腾讯云https://cloud.tencent.com/

国内短信新购三重礼

直达地址:https://cloud.tencent.com/act

秒级触达,99%到达率,首次购买短信套餐包限时尊享新人大礼

在腾讯云产品里选择短信:

图片.png

如果简单测试一下,腾讯云可以使用免费的,每个月有100条短信:

图片.png

数量不够的话则需要购买了.

根据接口文档操作.

1 添加应用

腾讯云添加应用获取 SDK AppID 和 App Key 。详细操作请参阅 添加应用。

添加应用

2 创建签名

一个完整的腾讯云短信由短信签名和短信正文内容两部分组成,短信签名规则详见 签名审核标准,详细操作请参阅 创建签名。

3 创建正文模版

短信正文模版规则详见 普通短信审核标准,详细操作请参阅 创建正文模版。

4 接入SDK

目前腾讯云短信为客户提供国内短信,国际短信,语音通知三大服务。

  • 国内短信提供单发,群发,带模板 ID 单发,带模板 ID 群发以及短信回执与回复拉取。
  • 国际短信可以直接使用国内单发接口,只需替换相应的国家码与手机号码。
  • 语音通知目前支持语音验证码以及语音通知功能。

SDK 名称

SDK 文档

github 地址

Java SDK

短信 Java SDK 文档

短信 Java SDK

PHP SDK

短信 PHP SDK 文档

短信 PHP SDK

Python SDK

短信 Python SDK 文档

短信 Python SDK

JavaScript SDK

短信 Node.js SDK 文档

短信 Node.js SDK

C# SDK

短信 C# SDK 文档

短信 C# SDK

5 下面以PHP测试为例,点击短信 PHP SDK

SDK 获取

短信 PHP SDK 在 Github 中的下载地址:短信 PHP SDK。

开发准备

1. 申请 SDK AppID 以及 App Key: 在开始本教程之前,您需要先获取 SDK AppID 和 App Key,如您尚未申请,请到 短信控制台 中添加应用。应用添加成功后您将获得 SDK AppID 以及 App Key。

注意: SDK AppID 是以 14xxxxx 开头。

2. 申请签名: 下发短信必须携带签名,您可以在短信 控制台 中申请短信签名,详细申请操作参考 创建签名。

3. 申请模板: 下发短信内容必须经过审核,您可以在短信 控制台 中申请短信模板,详细申请操作参考 创建正文模板。

完成以上三项便可开始代码开发。

6 下载文件qcloudsms_php-master

在github上短信 PHP SDK已经有介绍如何使用,这里简单看下国内模板文字短信发送功能: 解压文件后,在src文件里可以看到各种功能的文件:

代码语言:javascript复制
FileVoiceSender.php
index.php
SmsMobileStatusPuller.php
SmsMultiSender.php
SmsSenderUtil.php
SmsSingleSender.php
SmsStatusPuller.php
SmsVoicePromptSender.php
SmsVoiceVerifyCodeSender.php
TtsVoiceSender.php
VoiceFileUploader.php

文字短信使用的是SmsSingleSender.php 和 方法文件SmsSenderUtil.php

然后在demo/simple里打开app.php. 腾讯云使用指定模板ID单发短信(其他方法暂时不用):

代码语言:javascript复制
// 短信应用SDK AppID
$appid = 1400009099; // 1400开头

// 短信应用SDK AppKey
$appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";

// 需要发送短信的手机号码
$phoneNumbers = ["21212313123", "12345678902", "12345678903"];

// 短信模板ID,需要在短信应用中申请
$templateId = 7839;  // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请

// 签名
$smsSign = "腾讯云"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`

// 指定模板ID单发短信
try {
    $ssender = new SmsSingleSender($appid, $appkey);
    $params = ["5678"];
    $result = $ssender->sendWithParam("86", $phoneNumbers[0], $templateId,
        $params, $smsSign, "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
    $rsp = json_decode($result);
    echo $result;
} catch(Exception $e) {
    echo var_dump($e);
}
echo "n";

通过引用或者直接拷贝SmsSingleSender.php 和 SmsSenderUtil.php的方法代码到app.php里,并且按照要求修改id等信息就可以了.

7 发送频率限制

腾讯云不同的套餐 发送频率都不一样, 如果不做限制或者接口被盗刷,就会导致应用AppID被运营商封掉,这一点很重要.

0 人点赞