阿里云短信

一、官方资料

https://help.aliyun.com/document_detail/55501.html?spm=5176.doc55451.6.539.r5rP1D

二、下载SDK(选择合适的语言)
https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55501.6.569.aCqx8E

三、使用

1,将下载的文件放入需要使用的项目中。

2,自定义类使用SDK

<?php

    /**
     * 阿里云短信
     */
    class Dg_Helper_AliyunSms
    {
        //此处需要替换成自己的AK信息
        private $_accessKeyId = 'xxx';
        private $_accessKeySecret = 'xxx';
        //短信API产品名
        private $_product = 'Dysmsapi';
        //短信API产品域名
        private $_domain = 'dysmsapi.aliyuncs.com';
        //暂时不支持多Region
        private $_region = 'cn-hangzhou';

        public function __construct()
        {
            $path = dirname(dirname(__FILE__));
            include $path.'/Message/aliyun/api_sdk/aliyun-php-sdk-core/Config.php';
            include_once $path.'/Message/aliyun/api_sdk/Dysmsapi/Request/V20170525/SendSmsRequest.php';
            include_once $path.'/Message/aliyun/api_sdk/Dysmsapi/Request/V20170525/QuerySendDetailsRequest.php';
        }
        
        /**
         * 发送短信
         * @param  integer $phone         电话号码
         * @param  string  $templateCode  模板编号
         * @param  array   $templateParam 选填,模板参数
         * @param  string  $signName      短信签名
         * @param  integer $outId         短信流水号
         */
        public function sendMessage($phone, $templateCode, $templateParam = array(), $signName = '短信签名', $outId = false)
        {
            //初始化访问的acsCleint
            $profile = DefaultProfile::getProfile($this->_region, $this->_accessKeyId, $this->_accessKeySecret);
            DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $this->_product, $this->_domain);
            $acsClient= new DefaultAcsClient($profile);

            $request = new Dysmsapi\Request\V20170525\SendSmsRequest;
            //必填-短信接收号码
            $request->setPhoneNumbers($phone);
            //必填-短信签名
            $request->setSignName($signName);
            //必填-短信模板Code
            $request->setTemplateCode($templateCode);
            //选填-假如模板中存在变量需要替换则为必填(JSON格式)
            if ( !empty($templateParam) ) {
                $request->setTemplateParam(json_encode($templateParam));
            }
            //选填-发送短信流水号
            if ( $outId ) {
                $request->setOutId($outId);
            }
            
            //发起访问请求
            $acsResponse = $acsClient->getAcsResponse($request);
            return json_decode(json_encode($acsResponse), true);
        }

        /**
         * 发送验证码短信
         * @param  integer $phone         电话号码
         * @param  integer $code          激活码
         * @param  integer $expire_time   失效时间,该有效时间为redis缓存有效时间
         */
        public function sendVcodeMessage($phone, $code = false, $expire_time = false)
        {            
            $templateCode  = 'SMS_12345678';
            $templateParam = array(
                'code' => $code,
                'expire_time' => $expire_time ? $expire_time : '',
            );
            return $this->sendMessage($phone, $templateCode, $templateParam);
        }       
    }

3,调用

四、注意

短信平台一般有各种限制,比如单一IP限制等,最好多个短信平台一起使用(一个平台发送失败,可以用其他平台继续发送)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值