阿里短信通知的接入与实现(二)暨云通信短信平台API接口调用

事情变化太快,上线还不到一个月的注册短信验证功能就遇到了平台搬家的尴尬。阿里云发了一个邮件通知。原淘宝短信和阿里云市场短信将迁移到云通信平台,自2018年1月22日期,原平台将被停用,这之前是平台迁移期,需要用户抓紧迁移。也就是阿里云给大家留了一个月的窗口期。

具体接入操作,根据阿里提供的demo接入还是很方便快捷的。

首先,申请AccessKey

登录云通信平台控制台申请AccessKey,并添加短信签名和短信模版。关于短信签名和短信模版在上一篇文章中已经提到过,就不赘述了。(https://www.anji66.net/article/id/37.html)AccessKey建议使用子账号。根据平台提示操作即可。

其次,下载SDK和DEMO。

解压后我们需要的文件如图:

第三,将文件导入thinkPHP中完成应用的开发。

1、将两个文件放入到thinkPHP建议的第三方扩展extend目录下。建立一个为Aliyun的目录,将Api和Core放入。

2、命名空间的问题,如果你是采用跟我一样的目录形式,那么Api和Core内文件的命名空间就不用调整了,默认就是写好的,如果自定义了其它目录名称,请修改响应的命名空间。

3、引入文件并载入短信平台节点。

use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;

Config::load();

4、拷贝demo文件(SmsDdemo.php)中的静态方法(getAcsClient)

public static function getAcsClient() {
        //产品名称:云通信流量服务API产品,开发者无需替换
        $product = "Dysmsapi";

        //产品域名,开发者无需替换
        $domain = "dysmsapi.aliyuncs.com";

        // TODO 此处需要替换成开发者自己的AK (https://ak-console.aliyun.com/)
        $accessKeyId = "yourAccessKeyId"; // 这里填你申请的AccessKeyID

        $accessKeySecret = "yourAccessKeySecret"; // 这里填你申请的AccessKeySecret

        // 暂时不支持多Region
        $region = "cn-hangzhou";

        // 服务结点
        $endPointName = "cn-hangzhou";


        if(static::$acsClient == null) {

            //初始化acsClient,暂不支持region化
            $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);

            // 增加服务结点
            DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);

            // 初始化AcsClient用于发起请求
            static::$acsClient = new DefaultAcsClient($profile);
        }
        return static::$acsClient;
    }

5、开发自身应用的方法。

public function setcode()
    {

        $mobiphone=input('mobiphone');//接收的用户手机号
        $num=rand(100000,999999);//生成六位随机数
        session('code',$num);//将随机数写入session
        session('mobiphone',$mobiphone);//写入获取的手机号
        session('codetime',time());//写入当前时间
        //忽略下面这行,这个是上一版中使用urlencode转字符操作的,这版中采用的是json格式
        //$ParamString=urlencode('{'."code".':'."$num".'}');
       
        $request = new SendSmsRequest; //实例化
        $request->setPhoneNumbers($mobiphone);//必填-短信接收号码
        $request->setSignName("西枫里博客");//设置签名名称
        //必填-短信模板Code
        $request->setTemplateCode("你自己的模版code");
        //选填-假如模板中存在变量需要替换则为必填(JSON格式)
        $request->setTemplateParam(json_encode(array(  // 短信模板中字段的值
            "code"=>$num
        ), JSON_UNESCAPED_UNICODE));

        //选填-发送短信流水号(业务逻辑没有相关功能就注释掉)
        //$request->setOutId("1234");
        //发起访问请求
        $acsResponse = static::getAcsClient()->getAcsResponse($request);
 
        //通过调用acsResponse的成员属性code判断是否发送成功。
        if ($acsResponse && $acsResponse->Code == 'OK') {
            return 1;//成功
        } else {
            return 2;//失败
        }
    }

这样就完成了整个短信平台的接入。如果存在比较难的地方,那相信是很多人没理解命名空间的问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

神话传奇:一款通过卖号在微信群传播的远控木马

近期,360安全卫士监测到了一批通过微信群传播的远控木马,木马针对在网上倒卖微信号的人群定向投放。卖号人的交流群里时常有不同的小号在散播诱导性的木马程序,不知情...

2274
来自专栏安智客

Android 新特性之文件加密对TEE的要求

昨天聊到Android新版本对于指纹开发的要求,很多朋友问我,Android新版本对于TEE有哪些具体要求,我们知道android后续版本只会更加强化安全的...

4435
来自专栏FreeBuf

色情网站的光棍节“福利”:加密式挂马玩转流氓推广

双十一前夜,还想着通过同城交友或是某些不可描述的网站一解单身的烦恼?别急,不妨先来看看这些网站给光棍发的“福利”! 最近,360安全中心监测到一起网站弹窗广告挂...

2498
来自专栏Java后端技术栈

Nexus高级配置之添加jboss代理资源库

1、Hosted Repository - nexus本机的资源库(相当于nexus所在服务器硬盘上已经存在的jar、pom文件库);

742
来自专栏mini188

技术笔记:Indy IdSMTP支持腾讯QQ邮箱邮件发送

1、腾讯QQ邮箱的授权码问题 因为腾讯邮箱折腾了个底朝天,其要搞什么授权码登录第三方客户端,否则会报这个错误: 'Error: 请使用授权码登录。详情请看: ...

2188
来自专栏FreeBuf

年度盘点 | 安全测试者偏爱的安全测试工具

国外网站Concise Courses总结了安全测试者常用且好用的安全测试工具,本文摘录并分类整理列举一二,供安全从业者与爱好者参考。 ? 无线类 Metasp...

4997
来自专栏ThoughtWorks

Kubernetes救援 - 教你如何从新技术的坑里爬出来(下) | TW洞见

今日洞见 文章作者/配图来自ThoughtWorks:佟达。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站...

3758
来自专栏云瓣

关于 Node.js 的认证方面的教程(很可能)是有误的

原文地址:Your Node.js authentication tutorial is (probably) wrong 我搜索了大量关于 Node.js/E...

3349
来自专栏架构师之路

im协议设计选型(上)

im协议设计选型(上) 周末在一个Qcon群里分享了一些im技术,抽取出其中im协议选型相关的内容,跟大家分享。 分享人:58沈剑,58同城技术委员会主席,高级...

40810
来自专栏朱宁的专栏

腾讯视频 WEB 站点 HTTPS 改造:总结篇

2016年 6 月份我们启动了腾讯视频 V 站 的 HTTPS 改造, 由于历史原因,V 站改造涉及了 50 多个 CGI 域名、 10 多个静态资源域名。

1.4K2

扫码关注云+社区

领取腾讯云代金券