一.开通阿里大鱼短信服务

以PHP版为例

1.本地项目中安装安装PHP SDK

(1)composer安装:

https://help.aliyun.com/document_detail/112186.html?spm=a2c4g.11174283.6.635.37eb2c42jFVxfS

composer require alibabacloud/client

(2)使用OpenAPI Explorer来生成相关API的Demo

OpenAPI Explorer地址:

https://api.aliyun.com/?spm=a2c4g.11186623.2.13.6a294e6afatgeU#/?product=Dysmsapi&lang=PHP

2.阿里大鱼签名和SMS码获取

二.阿里大鱼验证码使用

1.获取的代码格式如下并不能直接使用,而是需要进行修改

<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;// Download:https://github.com/aliyun/openapi-sdk-php
// Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.mdAlibabaCloud::accessKeyClient('<accessKeyId>', '<accessSecret>')->regionId('cn-hangzhou')->asDefaultClient();try {$result = AlibabaCloud::rpc()->product('Dysmsapi')// ->scheme('https') // https | http->version('2017-05-25')->action('SendSms')->method('POST')->host('dysmsapi.aliyuncs.com')->options(['query' => ['RegionId' => "cn-hangzhou",'PhoneNumbers' => "手机号",'SignName' => "签名",'TemplateCode' => "签名SMS码",'TemplateParam' => "验证码格式{\"code\":1111}",],])->request();print_r($result->toArray());
} catch (ClientException $e) {echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {echo $e->getErrorMessage() . PHP_EOL;
}

2.单独创建一个控制器文件,封装修改阿里大鱼

<?phpnamespace app\common\controller;// 引入阿里sdk
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException ;
use AlibabaCloud\Client\Exception\ServerException ;// 引入异常类
use app\lib\exception\BaseException;class AlismsController
{static public function SendSMS($phone,$code){AlibabaCloud::accessKeyClient(config('api.aliSMS.accessKeyId'),config('api.aliSMS.accessSecret'))->regionId(config('api.aliSMS.regionId'))->asDefaultClient();try {//定义自己的手机号码,签名,SMS码,验证码格式$option=['query' => ['RegionId' => config('api.aliSMS.regionId'),'PhoneNumbers' => $phone,'SignName' =>config('api.aliSMS.SignName'),'TemplateCode' =>config('api.aliSMS.TemplateCode'),'TemplateParam' =>'{"code":"'.$code.'"}',],];$result = AlibabaCloud::rpc()->product(config('api.aliSMS.product'))// ->scheme('https') // https | http->version(config('api.aliSMS.version'))->action('SendSms')->method('POST')->host('dysmsapi.aliyuncs.com')->options($option)->request();// print_r($result->toArray());//返回数据return $result->toArray();} catch (ClientException $e) {echo $e->getErrorMessage() . PHP_EOL;//使用封装的异常基类弹出错误throw new BaseException(['code'=>200,'msg'=>$e->getErrorMessage(),'errorCode'=>30000]);} catch (ServerException $e) {throw new BaseException(['code'=>200,'msg'=>$e->getErrorMessage(),'errorCode'=>30000]);}}}

3.将配置信息提取到单独的配置文件中,便于后期维护

4.模型中引用

<?php
namespace app\common\model;use think\Model;
// 引入TP5的缓存类
use think\facade\Cache;
// 引入异常基类
use app\lib\exception\BaseException;
//引入阿里大鱼验证码类
use app\common\controller\AliSMSController;class User extends Model
{//发送验证码public function sendCode(){// 获取用户提交手机号码$phone = request()->param('phone');// 判断是否已经发送过//如果可以从缓存中读取手机验证码if(Cache::get($phone)) throw new BaseException(['code'=>200,'msg'=>'你操作得太快了','errorCode'=>30001]);       //生成四位数字的验证码$code = random_int(1000,9999);//使用阿里大鱼发送验证码// 发送验证码$res = AlismsController::SendSMS($phone,$code);//发送成功 写入缓存if($res['Code']=='OK') return Cache::set($phone,$code,config('api.aliSMS.expire'));// 无效号码if($res['Code']=='isv.MOBILE_NUMBER_ILLEGAL') throw new BaseException(['code'=>200,'msg'=>'无效号码','errorCode'=>30002]);// 触发日限制if($res['Code']=='isv.DAY_LIMIT_CONTROL') throw new BaseException(['code'=>200,'msg'=>'今日你已经发送超过限制,改日再来','errorCode'=>30003]);// 发送失败throw new BaseException(['code'=>200,'msg'=>'发送失败','errorCode'=>30004]);}}

阿里大鱼短信服务开启及使用相关推荐

  1. 阿里大鱼短信服务的使用

    1.使用须知 1.使用阿里大鱼短信服务时须知当前用户的AccessKey ID和Access Key Secret 注意:在使用短信服务时,发送短信时需要进行付费的,而付费则是根据这个AccessKe ...

  2. 阿里云 短信服务——开启验证码防盗刷监控

    阿里云 短信服务--短信发送频率限制 前言 系列博客 开启验证码防盗刷监控 操作步骤 添加联系人 补充(发送总量阈值和套餐包预警值) 如果博主的文章对您有所帮助,可以评论.点赞.收藏,支持一下博主!! ...

  3. 使用阿里大鱼短信服务出现的问题

    没看开发文档拿到工具类就开始开发..发生了很多低级错误,在此记录. 首先是yml的配置.yml配置是分级的, aliyun:sms:accessKeyId: *****accessKeySecret: ...

  4. 阿里云 短信服务——短信发送频率限制

    阿里云 短信服务--开启验证码防盗刷监控 前言 系列博客 开启验证码防盗刷监控 设置短信发送频率和频率限制白名单 操作步骤 如果博主的文章对您有所帮助,可以评论.点赞.收藏,支持一下博主!!! 前言 ...

  5. java阿里大鱼短信发送

    项目需要用到发送短信进行验证.推送.通知,公司选用的是阿里大鱼短信服务,阿里家工程师封装的接口,可以说是很贴心了,下面开始我们集成短信之旅吧~ 首先,我们需要先看文档:https://help.ali ...

  6. 阿里大鱼短信接口教程php,ECSHOP短信接口【ECSHOP阿里大鱼短信】ECSHOP短信插件手机短信服务设置教程-ECSHOP教程网...

    各位朋友大家好,感谢大家对ECSHOP教程网的关注与支持!今天为大家详细解说一下ECSHOP注册短信接口[ECSHOP阿里大鱼短信插件]ECSHOP手机短信服务设置教程: 1.首先登陆:http:// ...

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

    ♘背景 随着科技发展的推动,曾经充满温馨问候与回忆的短信业务,如今绝大多数局限于 验证码发送.诈骗/骚扰信息.业务推送 的使用 而作为一名IT搬砖的码农,对于第三方服务的接入也是必须掌握的技能,此处介 ...

  8. php 阿里云短信服务及阿里大鱼实现短信验证码的发送

    阿里云短信服务 一:使用阿里云的短信服务 ① 申请短信签名 ②申请短信模板 ③创建Access Key,获取AccessKeyId 与 AccessKeySecret.(为了安全起见,这里建议使用子用 ...

  9. laravel5.4使用Laravel Sms和阿里云短信服务实现短信验证码功能

    laravel 实现短信验证码功能,搜索资料发现比较流行的有两个包: 一个是laravel sms 地址  https://github.com/toplan/laravel-sms 一个是easy ...

最新文章

  1. POJ - 1236 Network of Schools
  2. centos 6.5安装mysql5.7,centos6.5安装mysql5.7
  3. ssh免密码和ssh-copy-id命令
  4. 'gbk' codec can't decode byte 0x80 in position的一个解决办法
  5. 使用 ApplicationLoader 上传应用到 Appstore
  6. python网络框架生产环境_配置Django框架为生产环境的注意事项(DEBUG=False)
  7. aws lambda_在AWS Lambda上运行“ Hello World”
  8. MasterPage简介
  9. 《OKR工作法》读书笔记(转)
  10. 航空订票系统php,C++版数据结构航空订票系统源代码.doc
  11. 解决方法:未能加载文件或程序集“Microsoft.Office.Interop.Excel。。
  12. WPFAvalonDock基本用法
  13. 最基础内网ip地址配置
  14. vm压缩linux vmdk文件,vmware下vmdk文件越来越大的解决方法探讨
  15. 股票和外汇究竟哪个更存在风险呢?
  16. gitbucket push卡住
  17. 虚拟服务器怎么连uk,rustUKn建造服务器指令
  18. TensorFlow 学习指南:深度学习系统构建详解
  19. 8psk带宽计算_8PSK 系统的信息传输速率为 1500bit/s ,其无码间干扰传输的最小带宽为 ______ 。_学小易找答案...
  20. 付宇泽20190905-1 每周例行报告

热门文章

  1. 弃用 Docker kill,事实证明,它更牛逼!
  2. conductor 系统任务
  3. lis25ba_LIS25BA骨震动传感器的驱动问题
  4. 机器/深度学习Milvus、Annoy、Vearch、sk-dist介绍
  5. 【ML算法学习】核K均值聚类Kernel K-Means Clustering(KKMC)
  6. 2019.03.28 博客反省
  7. 【牛客刷题】带你在牛客刷题第一弹(C/C++语言基础题)
  8. flutter 使用 定时器和延时器
  9. springboot使用百度地图IP定位API进行定位
  10. powerbuilder 做业务导航图_教你学CAD导航栏,掌握通用导航工具和产品特定的导航工具也重要...