腾讯云实现sms发送短信

  • James
  • 1年前
  • 195 次阅读
  • 更新于 2小时前
php  

1、准备工作

a、获取SDK AppID和AppKey

云短信应用SDK AppIDAppKey可在短信控制台的应用信息里获取,如您尚未添加应用,请到短信控制台中添加应用。

b、 申请签名

一个完整的短信由短信签名和短信正文内容两部分组成,短信签名须申请和审核,签名可在短信控制台的相应服务模块内容配置中进行申请。

c、 申请模板

同样短信或语音正文内容模板须申请和审核,模板可在短信控制台的相应服务模块内容配置中进行申请。

2、引入腾讯云短信SDK

composer require qcloudsms/qcloudsms_php

3、 准备必要参数,在config创建sms.php

<?php

return [
    // 短信应用SDK AppID
    'appid' => 1400009099; //1400开头

    // 短信应用SDK AppKey
    'appkey' => "5becd0ea762f141975d1df37481d48f49a411c5",

    // 需要发送短信的手机号码
    // 'phoneNumbers' => ["13456789030"],

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

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

];

4、用法

  • 单发短信
     
    use Qcloud\Sms\SmsSingleSender;
    try {
        $ssender = new SmsSingleSender($appid, $appkey);
        $result = $ssender->send(0, "86", $phoneNumbers[0],
            "【腾讯云】您的验证码是: 5678", "", "");
        $rsp = json_decode($result);
        echo $result;
    } catch(\Exception $e) {
        echo var_dump($e);
    }
  • Note 如需发送海外短信,同样可以使用此接口,只需将国家码 86 改写成对应国家码号。 Note 无论单发/群发短信还是指定模板ID单发/群发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败。
  • 指定模板ID单发短信
     
    use Qcloud\Sms\SmsSingleSender;
    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);
    }
  • Note 无论单发/群发短信还是指定模板ID单发/群发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败。
  • 群发
     
    use Qcloud\Sms\SmsMultiSender;
    try {
        $msender = new SmsMultiSender($appid, $appkey);
        $result = $msender->send(0, "86", $phoneNumbers,
            "【腾讯云】您的验证码是: 5678", "", "");
        $rsp = json_decode($result);
        echo $result;
    } catch(\Exception $e) {
        echo var_dump($e);
    }
    Note 无论单发/群发短信还是指定模板ID单发/群发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败。

 

  • 指定模板ID群发
     
    use Qcloud\Sms\SmsMultiSender;
    try {
        $msender = new SmsMultiSender($appid, $appkey);
        $params = ["5678"];
        $result = $msender->sendWithParam("86", $phoneNumbers,
            $templateId, $params, $smsSign, "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
        $rsp = json_decode($result);
        echo $result;
    } catch(\Exception $e) {
        echo var_dump($e);
    }
    Note 群发一次请求最多支持200个号码,如有对号码数量有特殊需求请联系腾讯云短信技术支持(QQ:3012203387)。 Note 无论单发/群发短信还是指定模板ID单发/群发短信都需要从控制台中申请模板并且模板已经审核通过,才可能下发成功,否则返回失败。

 

  •   发送语音验证码
     
    use Qcloud\Sms\SmsVoiceVerifyCodeSender;
    try {
        $vvcsender = new SmsVoiceVerifyCodeSender($appid, $appkey);
        $result = $vvcsender->send("86", $phoneNumbers[0], "5678");
        $rsp = json_decode($result);
        echo $result;
    } catch (\Exception $e) {
        echo var_dump($e);
    }
    Note 语音验证码发送只需提供验证码数字,例如当msg=“5678”时,您收到的语音通知为“您的语音验证码是5678”,如需自定义内容,可以使用语音通知。

 

  • 发送语音通知

     
    use Qcloud\Sms\SmsVoicePromptSender;
    try {
        $vpsender = new SmsVoicePromptSender($appid, $appkey);
        $result = $vpsender->send("86", $phoneNumbers[0], 2, "5678");
        $rsp = json_decode($result);
        echo $result;
    } catch (\Exception $e) {
        echo var_dump($e);
    }

 

github:https://github.com/xiaoxuan6/qcloudsms_php


   本站文章除注明转载/出处外,均为本站原创或翻译。若要转载但请务必注明出处,尊重他人劳动成果。    本文链接: http://james.dmzfa.com/articles/teng-xun-yun-shi-xian-sms-fa-song-duan-xin

上一篇:Github上更改项目技术标签、语言属性 (Jav...

下一篇:mysql 判断一个库或表是否存在

文章评论 (0)发表评论

Top