franklin-liangsir/think-aliyunsms

基于thinkphp5的阿里云短信(单条/批量)发送

1.0.0 2021-06-27 07:05 UTC

This package is auto-updated.

Last update: 2025-04-27 15:26:03 UTC


README

thinkphp5 阿里云短信发送插件

安装

composer require franklin-liangsir/think-aliyunsms

强调

本插件为阿里云官方插件的二次封装短信验证码,如有更为复杂的短信通知,可直接参考阿里云官网文档以及本插件的src/SendSms.php进行您的业务

使用

配置-创建扩展配置文件aliyunsms.php(位置:tp5\config\extra)

相关参数需在阿里云短信控制台配置,配置步骤已附在参数后面

return [
    // 阿里云平台中获取的accessKeyId(RAM控制台-人员管理-用户管理-点击用户名称)
    'accessKeyId' => '',

    // 阿里云平台中获取的accessKeySecret(RAM控制台-人员管理-用户管理-点击用户名称,AccessKeySecret只在创建时显示,不提供查询,可在当前界面重新创建)
    'accessKeySecret' => '',

    // 阿里云平台中获取的短信签名,审核通过才生效(短信服务-国内消息-签名名称-签名管理)
    'signName' => '',

    // 阿里云平台中获取短信模板ID,审核通过才生效(短信服务-国内消息-签名名称-模版管理)
    'templateCode' => ''
];

调用

use FranklinLiangsir\ThinkAliyunsms\SendSms;
class demo extends Base{
    //发送单条
    public function sendAliYunSms(){
        //跨域
        header('content-type:text/html;charset=utf-8');
        header('Access-Control-Allow-Origin: *');
        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type,token,Accept");
        header('Access-Control-Allow-Methods: GET, POST, PUT');

        $sms = new SendSms();
        $mobile = input("tel");

        //入参拦截
        $rules = array(
            array($mobile, '/^1[3|4|5|6|7|8|9][0-9]{9}$/', '请输入正确的手机号码'),
        );
        $result = valid($rules);
        if (!$result['status']) {
            return json(resFmt("100", $result['message'], "", ""));
        };

        //业务
        $code = mt_rand(1000, 9999);
        $res = $sms->sendSms($mobile, json_encode(array("code" => $code)));
        if ($res['Message'] == 'OK') {
            return json(resFmt(0, "发送状态", $code));
        } else {
            return json(resFmt(100, $res['Message'], ""));
        }
    }

    //批量发送
     public function sendAliYunSmsMore(){
        //跨域
        header('content-type:text/html;charset=utf-8');
        header('Access-Control-Allow-Origin: *');
        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type,token,Accept");
        header('Access-Control-Allow-Methods: GET, POST, PUT');

         $mobile_json="['15800000000','15800000000']";
         $sign_json="['云通信','云通信']";
         $content_json="[{'name':'小王','code':'123456'},{'name':'小张','code':'123456'}]";
         $res = $this->sendBatchSms($mobile_json,$sign_json,$content_json);
         if ($res['Message'] == 'OK') {
            return json(resFmt(0, "发送状态", $code));
        } else {
            return json(resFmt(100, $res['Message'], ""));
        }
     }
}