惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
博客园 - Franky
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog
爱范儿
爱范儿
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)

西枫里博客

如何养好一只兔子 - 西枫里 浙北安吉北部乡镇春节民俗 - 西枫里 湘西张家界之旅(游记篇) - 西枫里 热闹的电影暑期档 - 西枫里 湘西张家界之旅(攻略篇) - 西枫里 阳记 - 西枫里 一地鸡毛,高歌欢进(三) - 西枫里 华为Nova7SE换屏维修记录 - 西枫里 魔都魔幻生活——我的抗疫经历 - 西枫里 树莓派升级手记 - 西枫里 尝试挽救一下我的SEO——页面常规优化 - 西枫里 2022年在上海外地牌照车辆异地年检流程 - 西枫里 尝试挽救一下我的SEO——域名和主机的影响 - 西枫里 尝试挽救一下我的SEO——缘起 - 西枫里 米6钉子户,更换电池再战2年。 - 西枫里 二换科鲁兹前照灯灯泡 - 西枫里 一地鸡毛,高歌欢进(二) - 西枫里 联想拯救者14ISK更换电池 - 西枫里 冷车打火喘抖怎么办?倒车灯倒车雷达影像没反应怎么办? - 西枫里 树莓派刷64位系统放内网做服务器使用 - 西枫里 米6刷MIUI12的简易教程(进击的小米6) - 西枫里 一地鸡毛,高歌欢进(一) - 西枫里 人近不惑三十六,本命牛年转乾坤。 - 西枫里 魔都新冠疫苗接种记 - 西枫里 thinkpad扬声器没声音 - 西枫里 个人健康管理,刻不容缓 - 西枫里 Hello Java - 西枫里 到了退休年龄社保未缴满十五年怎么办? - 西枫里 科鲁兹/英朗后备箱开关更换 - 西枫里 iphone6换屏教程,附iphone已停用解锁 - 西枫里
TP5.1接入阿里云短信服务(三) - 西枫里
西枫里 · 2019-02-14 · via 西枫里博客

自从上次TP升级后,一直也没有新用户注册,毕竟要验证手机号码,现在大家的隐私保护意识都很强大,也就是身正不怕影子斜,才敢大胆在我这种小站上注册,感谢大家的信任。那天看邮件,发现收到一个评论提醒,是响石潭医生的博客评论回复,才发现我的短信平台啥时候崩掉了,直接影响了大佬的到访。

查下停摆原因

先去查了下阿里云账户,看看是不是没钱了,用的是后付费的,用一条计费一条的这种。余额还有5块多钱呢,肯定不是这问题。那不是我应用的问题就是接口的问题了。简单调试了下我的应用,手机号,验证码都准确的传递到接口上了,不过接口没反应,既不反馈成功也不反馈失败,就是没拉起来。然后就去阿里云去看了下文档,是不是短信平台升级了,有个意外发现,SDK有新版,功能到是没有发现新增,但是SDK全部规范了。并且打了composer包,这就更好了,上次做的时候还是用的TP自定义扩展extend,这下可以直接用vendor了。

1.jpg

拉取阿里云核心依赖

切换到项目根目录,执行composer require alibabacloud/client命令,完成后,TP的vendor目录下就有了一个alibabacloud的扩展。接下来改造应用即可

2.jpg

使用阿里云OpenAPI Explorer生成需要的代码

如果,通过这个链接,进入阿里云OpenAPI Explorer界面,填写相关的短信模板签名,模板code,和模板变量。其中模板变量这里踩了一个坑,等下讲。右侧就自动生成了你需要的代码,拷贝其中的代码到你的控制器,稍加改造。

3.jpg

4.jpg

改造你的应用

首先当然是use这个扩展类库。原封不动的拷贝过来即可。

5.jpg

将AlibabaCloud::accessKeyClient的静态方法封装到自己的方法中,我这里就用上一版本的方法名了,给getAcsClient方法两个参数,一个手机号,一个验证码。下面的query请求数组将自动生成的用两个参数替代就好了,前面说我踩了个坑,我用模板里面的变量名称${code}传生成的代码,这里直接用了$num替换,报了一个Object {Message: "JSON参数不合法", RequestId: "EBA7EC8F-8484-45B8-A471-B9DB672C50F2", Code: "isv.INVALID_JSON_PARAM"}这样的错误,再回过头去看API错误码,发现原因,所以这里重新做下拼接就可以了。

6.jpg

7.jpg

然后改造下上一版中的发送短信方法就可以了,将$resp = static::getAcsClient()->getAcsResponse($request);改成$resp = $this->getAcsClient($data['mobiphone'],$num);将上一版中没用的json构造数据部分删除就妥了。

好了,水文结束,要下班了。