zoukankan      html  css  js  c++  java
  • php阿里云短信功能


    需要签名比如:【阿里云】xxxx。
    只有签名通过的,才可以发送。


    需要创建短信模版。
    支持验证码,以及各种自定义的消息模版。
    新建模版,需要审核,审核通过才可以使用。

    阿里云使用,需要配置key,secret。

    php中可以先下载sdk。

    composer require alibabacloud/client
    


    然后参考demo,写出自己的工具类。
    https://next.api.aliyun.com/api/Dysmsapi/2017-05-25/SendSms?spm=a2c4g.11186623.2.9.40561a23AKu5S4&sdkStyle=old&lang=PHP

    <?php
    
    /**
     * 短信发送工具类
     * User: Eden
     * Date: 19-4-26 上午9:23
     */
    
    namespace CommonUtil;
    
    use AlibabaCloudClientAlibabaCloud;
    
    // Download:https://github.com/aliyun/openapi-sdk-php
    // Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.md
    
    class SmsUtil extends CommonUtil
    {
        public static function sendSms($phone, $template, $param, $signName = 'xx')
        {
            $sms_key = C('ALIYUN.AccessKey');
            $sms_secret = C('ALIYUN.AccessSecret');
            $sms_region = C('ALIYUN.RegionId');
            AlibabaCloud::accessKeyClient($sms_key, $sms_secret)
                ->regionId($sms_region)
                ->asDefaultClient();
    
            $result = AlibabaCloud::rpc()
                ->product('Dysmsapi')
                // ->scheme('https') // https | http
                ->version('2017-05-25')
                ->action('SendSms')
                ->method('POST')
                ->host('dysmsapi.aliyuncs.com')
                ->options([
                    // 'query' => [
                    //     'PhoneNumbers' => "xxx",
                    //     'SignName' => "xxx",
                    //     'TemplateCode' => "SMS_212694008",
                    //     'TemplateParam' => "{'password':'123456'}",
                    // ],
                    'query' => [
                        'PhoneNumbers' => $phone,
                        'SignName' => $signName,
                        'TemplateCode' => $template,
                        'TemplateParam' => $param,
                    ],
                ])
                ->request();
            $result =$result->toArray();
            if ($result['Code'] == 'OK') {
                return true;
            } else {
                return false;
            }
        }
    }
    
    

    使用

    /**
     * 发送短信
     * @return stdClass
     */
    public function sendSms() {
        $smsUtil = new SmsUtil();
        $param = [
            'password' => '123456'
        ];
        $res = $smsUtil::sendSms('xxx',C('ALIYUN_SMS_TEMPLATE.INIT_PASSWORD'),json_encode($param));
        if ($res) {
            $this->json->ok();
        } else {
            $this->json->err();
        }
    }
    
  • 相关阅读:
    sort详解
    php之opcodes
    [转载] PHP升级导致系统负载过高问题分析
    Openresty实现获取内部location
    LUA语法汇总
    Openresty常用指令和参数
    PHP中的垃圾回收机制
    MySQL字段类型VARCHAR
    笔试题多线程
    笔试代码考查
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/14507168.html
Copyright © 2011-2022 走看看