腾讯云短信对接二次封装类(SDK2.0)快速上手

流氓凡 技术分享 2020-09-11 6.42 K 0

为什么是SDK2.0版本?

别问,问就是简单好用!仅仅是针对发送短信,无论是单发还是群发都足够了。

SDK下载安装

方式1:直接composer安装

composer require houxiaobei/qcloudsms

方式2:官方推荐

在composer.json中引入下 

"require": {
    "qcloudsms/qcloudsms_php": "0.1.*"
 },

二次封装类

<?php

namespace osc\common\library;

use Qcloud\Sms\SmsSingleSender;
use osc\common\exception\BaseException;
use Qcloud\Sms\SmsMultiSender;

/**
 * 腾讯云短信服务类
 * Class Sms
 * @package osc\common\library
 */
class Sms
{
    private $appid = 1400****94; // 短信appid
    private $appkey = '982ab44********d0a8d6eb**'; // 短信应用key
    private $smsSign = '腾讯云'; // 签名
    private $nationalCode = '86'; // 国家码

    /**
     * 发送短信 (单条)
     * @param $templateId
     * @param $phone
     * @param array $params
     * @return mixed
     * @throws BaseException
     */
    public function sendSms($templateId, $phone, array $params)
    {
        try {
            $ssender = new SmsSingleSender($this->appid, $this->appkey);
            $result = $ssender->sendWithParam(
                $this->nationalCode,
                $phone,
                $templateId,
                $params,
                $this->smsSign,
                "", "");
            return json_decode($result, true);
        } catch (\Exception $e) {
            throw new BaseException(['msg' => $e->getMessage()]);
        }
    }

    /**
     * 群发短信
     * @param $templateId
     * @param array $phones
     * @param array $params
     * @return mixed
     * @throws BaseException
     */
    public function sendSmsGroup($templateId, array $phones, array $params)
    {
        try {
            $msender = new SmsMultiSender($this->appid, $this->appkey);
            $result = $msender->sendWithParam(
                $this->nationalCode,
                $phones,
                $templateId,
                $params,
                $this->smsSign, "", "");
            return json_decode($result, true);
        } catch (\Exception $e) {
            throw new BaseException(['msg' => $e->getMessage()]);
        }
    }

}

简单的说下就是params参数为数组,对应模板中的{1},{2}变量,其他就没什么特别的了。

官方sdk说明:https://cloud.tencent.com/document/product/382/9557

appid和appkey查找方法:

image.png

评论