官方文档
准备工作
1、已开通短信服务。
2、如需发送国内短信,需要先 购买国内短信套餐包。
3、已准备依赖环境:PHP 5.6.33 及以上版本。
4、已在访问管理控制台 >【API密钥管理】页面获取 SecretID 和 SecretKey。
第一步:安装SDK
前提:已经安装了 compose
(没安装的要先安装,compose官网链接是https://getcomposer.org/download/)
1、添加依赖
命令:composer require tencentcloud/tencentcloud-sdk-php
安装成功之后,需要在compose.json文件下引用
require '/path/to/vendor/autoload.php';
第二步:获取需要用的配置信息
private $secretId; //腾讯云账户密钥对 secretId 和 secretKey
private $secretKey;
private $sign; //短信签名内容
private $templateID; // 模板 ID: 必须填写已审核通过的模板 ID。可登录 [短信控制台] 查看模板 ID
private $sdkAppId; //短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID
第三步:发送短信的代码
/**
* phone 手机号码
* code 验证码
*/
public function send($params)
{
$cred = new Credential($this->secretId, $this->secretKey);
// 实例化一个 sms 发送短信请求对象,每个接口都会对应一个request对象。
$req = new SendSmsRequest();
// 实例化要请求产品(以sms为例)的client对象,clientProfile是可选的
$client = new SmsClient($cred, "ap-shanghai");
/* 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 */
$req->SmsSdkAppid = $this->sdkAppId;
/* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 */
$req->Sign = $this->sign;
/* 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] */
$req->ExtendCode = "0";
/* 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号]
* 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号*/
$phone = "+86" . $params['phone'];
$req->PhoneNumberSet = array($phone);
/* 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] */
$req->SenderId = "";
/* 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 */
$req->SessionContext = "";
/* 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 */
$req->TemplateID = $this->templateID;
/* 模板参数: 若无模板参数,则设置为空*/
$req->TemplateParamSet = array($params['code'], '5');
// 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的
// 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应
$resp = $client->SendSms($req);
$resp = $resp->toJsonString();
$params['resp'] = $resp;
$respArr = json_decode($resp,true);
if($respArr['SendStatusSet'][0]['Code'] != 'Ok'){
return [ 'msg' => '发送失败'];
}
return ['msg' => '发送成功'];
}
结束。