雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

阿里云短信服务验证码封装 v1.0.1【flc/dysms】

2024-09-01 16

1.引入 composr 包2. 阿里云短信服务验证码封装类 v1.0.13. 阿里云短信服务验证码封装函数

1.引入 composr 包


composer require flc/dysms

2. 阿里云短信服务验证码封装类 v1.0.1


<?php// 本文件放入TP6.0的extend目录下 extend/Dysms.phpuse Flc\Dysms\Client;use Flc\Dysms\Request\SendSms;// 1.设置配置参数Dysms::setConfig([    'signName'        => 'it社区',    'templateCode'    => 'SMS_17929xxxx',    'accessKeyId'     => 'LTAI4GJ6iaE7ij5YiGRgxxxx',    'accessKeySecret' => 'uljdxDoi8ocXNscPriqwl5xxxxx',]);// 2.查看配置参数//var_dump(Dysms::showConfig());// 3.发送验证码// $arr['result'] true 发送成功 msg 提示信息 verCode 发送的短信验证码// ['result' => true, 'msg' => '发送成功', 'verCode' => 370449]// $arr['result'] false 发送失败 msg 错误信息 code 错误码// ['result' => false, 'msg' => '错误信息', 'code' => 'isv.BUSINESS_LIMIT_CONTROL']$arr = Dysms::sendSms(1503784xxxx);var_dump($arr);/** * 阿里大于短信验证码封装 * composer require flc/dysms * * @author   liang <23426945@qq.com> * @version  1.0.1 * @homepage www.itqaq.com 辰风沐阳 * @datetime 2020-08-04 last modify time * * 阿里云短信服务默认流控 * 同一个签名同一个手机号短信验证码 1条/分钟 */class Dysms{    private static $accessKeyId;    private static $accessKeySecret;    private static $signName;    private static $templateCode;    /**     * 私有化构造方法     * 禁止类在外部被实例化     */    private function __construct(){}    /**     * 设定配置参数     */    public static function setConfig($config)    {        // accessKeyId        self::$accessKeyId = $config['accessKeyId'];        // accessKeySecret        self::$accessKeySecret = $config['accessKeySecret'];        // 短信签名        self::$signName = $config['signName'];        // 短信模板ID        self::$templateCode = $config['templateCode'];    }    /**     * 查看配置参数     * Dysms::showConfig()     */    public static function showConfig()    {        return [            'accessKeyId'     => self::$accessKeyId,            'accessKeySecret' => self::$accessKeySecret,            'signName'        => self::$signName,            'templateCode'    => self::$templateCode,        ];    }    /**     * 传入手机号发送短信验证码     * @param  int      $phoneNumbers 手机号     * @return array ['result' => true, 'msg' => '发送成功', 'verCode' => 370449]     */    public static function sendSms($phoneNumbers)    {        $client  = new Client([            'accessKeyId' => self::$accessKeyId,            'accessKeySecret' => self::$accessKeySecret,        ]);        $sendSms = new SendSms;        $verCode = mt_rand(100000, 999999);        $sendSms->setPhoneNumbers($phoneNumbers);        $sendSms->setSignName(self::$signName);        $sendSms->setTemplateCode(self::$templateCode);        $sendSms->setTemplateParam(['code' => $verCode]);        $sendSms->setOutId('demo');        // 返回标准类对象 发送失败        // object(stdClass)#59 (3) {        //   ["Message"]=>        //   string(30) "触发小时级流控Permits:5"        //   ["RequestId"]=>        //   string(36) "B76061EE-2D9A-4E46-89B9-2418E8A5555E"        //   ["Code"]=>        //   string(26) "isv.BUSINESS_LIMIT_CONTROL"        // }            $result = $client->execute($sendSms);        // 返回结果        // array(2) {        //   ["result"]=>        //   bool(true)        //   ["msg"]=>        //   string(12) "发送成功"        // }        // array(3) {        //   ["result"]=>        //   bool(false)        //   ["code"]=>        //   string(26) "isv.BUSINESS_LIMIT_CONTROL"        //   ["msg"]=>        //   string(30) "触发小时级流控Permits:5"        // }        if ($result->Code === 'OK') {            return [                'result'  => true,                'msg'     => '发送成功',                'verCode' => $verCode            ];        } else {            return [                'result' => false,                'code'   => $result->Code,                'msg'    => self::errorMsg($result->Code, $result->Message)            ];        }    }    /**     * 错误信息code转换中文提示     */    private static function errorMsg($code, $msg)    {        $errorMsg = [            'isv.ACCOUNT_NOT_EXISTS'     => '使用了错误的账户名称或AK',            'isv.ACCOUNT_ABNORMAL'       => '账户异常,请确认账号信息',            'isv.MOBILE_NUMBER_ILLEGAL'  更新于:18天前
赞一波!

文章评论

全部评论