♘背景


  • 随着科技发展的推动,曾经充满温馨问候与回忆的短信业务,如今绝大多数局限于 验证码发送诈骗/骚扰信息业务推送 的使用

  • 而作为一名IT搬砖的码农,对于第三方服务的接入也是必须掌握的技能,此处介绍一下 ThinkPHP5.1框架下阿里云短信最新版(原大鱼)的接入方法

  • 操作环境:

 PHP版本 :      7.0.2 (如果是低版本,报错时,可参考附录解决方案)ThinkPHP版本:    ThinkPHP5.1技能需求:     Composer 安装依赖

本文主要针对 短信 — 验证码 接入,作为指导讲解,>>> 官方文档:阿里云-短信服务

♘开发流程


①. 前期准备-短信使用流程

  • 作为前期准备的重要指引,入驻-认证-开通服务-创建-获得参数 等在此不做赘述

详细指导参见:阿里云短信服务文档使用指引

②. Composer 安装依赖

  • 作为ThinkPHP5 超方便的工具,强烈建议使用 Composer,你会发现它的便利与快捷性

运行命令: composer require alibabacloud/client

③. 快速学习(此步骤,跳过也可.)

  • 阿里云提供了极其方便的在线测试功能,可以通过 快速学习,测试你是否获取了所有所需的配置信息

【短信服务】——【快速学习】——【OpenAPI Explorer】

④. 代码实现

  • 注意在集成方法调用前,要先进行类的引用
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
  • 提供集成方法如下:
   /*** 集成方法:阿里云(原大鱼)发送短信验证码* @param string $phoneNumber 目标手机号* TODO 注意 accessKeyId、accessSecret、signName、templateCode 重要参数的获取配置*/public function sendAliDaYuAuthCode($phoneNumber = '151xxxxxxx3'){$accessKeyId = 'LTAXXXXXXXXXC';$accessSecret = '8gfwbXXXXXXXXXXXXXXXXXXXXXXXXXXXXA'; //注意不要有空格$signName = 'XXXXX'; //配置签名$templateCode = 'SMS_1XXXXXX5';//配置短信模板编号//TODO 随机生成一个6位数$authCodeMT = mt_rand(100000,999999);//TODO 短信模板变量替换JSON串,友情提示:如果JSON中需要带换行符,请参照标准的JSON协议。$jsonTemplateParam = json_encode(['code'=>$authCodeMT]);AlibabaCloud::accessKeyClient($accessKeyId, $accessSecret)->regionId('cn-hangzhou')->asGlobalClient();try {$result = AlibabaCloud::rpcRequest()->product('Dysmsapi')// ->scheme('https') // https | http->version('2017-05-25')->action('SendSms')->method('POST')->options(['query' => ['RegionId' => 'cn-hangzhou','PhoneNumbers' => $phoneNumber,//目标手机号'SignName' => $signName,'TemplateCode' => $templateCode,'TemplateParam' => $jsonTemplateParam,],])->request();$opRes = $result->toArray();//print_r($opRes);if ($opRes && $opRes['Code'] == "OK"){//进行Cookie保存cookie("authCodeMT",$authCodeMT,300);}} catch (ClientException $e) {echo $e->getErrorMessage() . PHP_EOL;} catch (ServerException $e) {echo $e->getErrorMessage() . PHP_EOL;}}

⑤. 运行效果

♘附录:


①. Ramsey\Uuid\Generator\random_int() 报错

  • 此问题,测试发现存在于PHP版本较低的情况下,如 PHP-5.6.32
    详细分析及解决请参考 Fatal error: Call to undefined function Ramsey\Uuid\Generator\random_int()

②. isv.INVALID_JSON_PARAM 报错的一种情况

  • 如果在测试阶段,直接复制了 OpenAPI Explorer 生成的代码,有时会因为模板参数的 json 拼合无法识别
    建议,可参考我的代码思路,使用 json_encode()进行转化

③. InvalidAccessKeyId.NotFound

  • 这种提示信息,只能说明你的 accessKeyId 配置错误,注意不要配置成了 短信应用中的 AppKey
    过来人,友情提示,请看存放位置:

ThinkPHP5.1接入阿里云短信服务(原大鱼最新版)指导相关推荐

  1. 如何接入阿里云短信服务 (完整指南)

    目录 一.注册并实名认证 二.开通短信服务 三.获取AccessKey 四.设置短信内容 五.配置短信接口 六.发送短信 七.常见问题FAQ 一.注册并实名认证 使用阿里云短信服务,用户需要先在阿里云 ...

  2. NET接入阿里云短信服务

    Net Core+阿里云实现短信验证码 开通阿里云短信服务 首先要开通阿里云短信服务,这个不多赘述,看图 开通之后,来到管理控制台 点击国内消息-->签名管理-->添加签名 同样的步骤,模 ...

  3. ThinkPHP5框架接入阿里云短信最新版(原大鱼)的方法

    下载官方SDK 第一步肯定是下载官方的SDK了,但是官方下载的SDK内容有一些多,我们不必全部都要,只将下载好的SDK文件中的api_sdk文件,改名aliyunsms,然后放入ThinkPHP5框架 ...

  4. 阿里云短信服务bug

    接入阿里云短信服务,在springboot中写测试方法,执行到 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou ...

  5. 阿里云短信服务接入流程

    背景 在最近的项目需求中, 需要将复用阿里短信能力, 实现用户手机号验证: 如果用户号码验证通过后, 可以让用户上传文件资料并进行打印. 故核心内容就是: 阿里云短信服务接入, 下面我们主要来介绍下阿 ...

  6. python 阿里云短信服务接入流程

    阿里云短信服务接入流程 最近公司项目中的业务需求包括使用阿里云发送短信,所以写一篇博客和大家分享一下python使用sdk对接阿里云短息api的流程. 阿里云官方文档 链接 左侧导航栏中有很多部分,着 ...

  7. 微信小程序云开发,使用阿里云短信服务,搜索员工生日定期发送短信。

    相关API文档地址: 阿里云短信服务API文档地址 小程序云开发云函数正则匹配API文档地址 小程序云开发云函数定时触发器 1.登录阿里云,购买短信服务并添加签名和模板 2., 登录阿里云,鼠标放在右 ...

  8. legend3---PHP使用阿里云短信服务

    legend3---PHP使用阿里云短信服务 一.总结 一句话总结: 使用步骤照官方文档,代码拷贝即可 1.php使用阿里云短信服务的步骤? 入驻阿里云->开通短信服务->获取Access ...

  9. Zabbix 3.4.3 使用阿里云短信服务进行报警

    一.阿里云短信服务 有时候微信报警或者邮寄报警我们可能会有遗忘,今天我主要介绍使用阿里云的短信服务进行短信报警. 1.1.首先开通阿里云短信服务 1.2 创建签名 签名用途选择:公众号或小程序的全称或 ...

最新文章

  1. OKR管理和绩效考核有什么不一样呢?
  2. Oracle-USERS表空间解读
  3. 如何在spring中读取properties配置文件里面的信息
  4. jsp传递参数的四种方法
  5. Visual Studio 编译优化选项:Debug与Release、禁止优化与O1、O2、Ox优化
  6. 解决url中特殊字符截断参数的问题
  7. linux集群100道单选题面试试题系统工程师中级试题(4)
  8. IntelliJ IDEA 将 Maven 构建的 Java 项目打包
  9. DEA博弈交叉效率matlab,dea的交叉效率
  10. ios md5和java不一致,关于C#MD5与javaMD5不一致有关问题
  11. TranslateAnimation
  12. SharePoint 2019 部署(一)
  13. cli命令行配置路由器_Cisco路由CLI基础命令
  14. 网易被裁后,68天吃透这份阿里学长甩我的Android面试笔记,竟让我收到字节跳动和小米offer
  15. mysql存储指纹,mysql - ZKTeco 4500指纹验证 - 堆栈内存溢出
  16. 2018拼多多校招笔试贪心编程题小熊吃糖详解
  17. “一招定制LaTeX论文目录页教程“【新手速进】
  18. 如果手里有现金,是提前还房贷还是买基金?
  19. 控制工程基础 董景新_编委读报丨“十大最美公交司机”都是谁;新疆交通消费扶贫花样多;海南邮轮港口海上游航线试点迎来新突破……...
  20. LeetCode069——x的平方根

热门文章

  1. ajax获得header信息,关于jquery ajax跨域请求获取response headers问题
  2. Windows 10麦克风不能正常使用了
  3. 纽约游轮观光:欣赏城市精华景点的轻松理想方式
  4. java 重写compareTo方法实现类自定义排序
  5. 计算机系统还原是什么情况,电脑一键系统还原是什么意思
  6. 开放式耳机和封闭式耳机的区别有哪些?开放式耳机有哪些推荐?
  7. acro design内置的echarts组件 vue-echarts 自适应失效
  8. 如何在B站视频发送时间轴空降弹幕
  9. u盘显示需要格式化才能用怎么办?修复方法
  10. 北京师范学院计算机专业法律基础考试,2021--2022北京师范大学法律专业(非法学)考研综合经验分享...