调用阿里云短信API发送短信通知

昨天领导让我弄一个短信通知功能,原来也没有搞过,刚接过来的时候亚历山大,感觉很难搞。但是看过官方文档之后还是挺简单的。来让我们看一下这个短信接口怎么搞吧。

  • 首先你需要申请一个阿里云的账号然后找到短信服务
  • 创建access_key和access_secret
  • 申请短信签名和模板,签名和模板是必须有的,到时候发短信需要签名的名称和短信的CODE才可以发送的。而且签名和模板的使用场景要一致,验证码只可以允许有一个参数 code ,通用场景可以有多个参数。
  • 然后就是代码编写
    废话不多说,接下来就开始代码编写

第一步现在maven项目中引入依赖

 <!-- 阿里云短信SDK --><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.1.0</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version></dependency><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.7</version></dependency>

然后就写发送短信的方法就行了 ,至于页面和具体参数传递就看你们自己的业务是怎么样的了。

private SendSmsResponse SendVerificationCode(String phone,String name,String hphm,String cbsjStr) throws ClientException {//设置超时时间-可自行调整System.setProperty("sun.net.client.defaultConnectTimeout", "10000");System.setProperty("sun.net.client.defaultReadTimeout", "10000");//初始化ascClient需要的几个参数final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)//替换成你的AKfinal String accessKeyId = "你短信的accessKeyId";//短信的accessKeyIdfinal String accessKeySecret = "你短信的accessKeySecret";//短信的accessKeySecret//初始化ascClient,暂时不支持多region(请勿修改)IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,accessKeySecret);DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);IAcsClient acsClient = new DefaultAcsClient(profile);//组装请求对象SendSmsRequest request1 = new SendSmsRequest();//使用post提交request1.setMethod(MethodType.POST);//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式request1.setPhoneNumbers(phone);//必填:短信签名-可在短信控制台中找到request1.setSignName("签名,就是短信中大括号里的那个名称。例如:菜鸟驿站");//必填:短信模板-可在短信控制台中找到request1.setTemplateCode("SMS_171855032");//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为//友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败//向短信模板中传入参数//生成几位的验证码int n = 6;StringBuilder code = new StringBuilder();Random ran = new Random();for (int i = 0; i < n; i++) {code.append(Integer.valueOf(ran.nextInt(10)).toString());}request1.setTemplateParam("{\"code\":\""+code.toString()+"\"}");//        request1.setTemplateParam("{\"name\":\""+name+"\"}");
//      request1.setTemplateParam("{\"hphm\":\""+hphm+"\"}");
//      request1.setTemplateParam("{\"cbsj\":\""+cbsjStr+"\"}");//        request1.setTemplateParam("{\"name\":\""+name+"\",\"hphm\":\""+hphm+"\",\"cbsj\":\""+cbsjStr+"\"}");//请求失败这里会抛ClientException异常SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request1);return sendSmsResponse;}

之后判断一下短信是否发送成功返回给前台一个状态值就完成了。

调用阿里云短信API发送短信通知相关推荐

  1. Java使用阿里云短信API发送验证码

    第一步:登录阿里云官网  控制台中找到短信服务然后开通. 第二步:获取AccessKey 设置权限 至此,accessKeyId以及accessKeySecret就已经创建好了. 第三步:创建签名和模 ...

  2. 阿里云短信api发送异常

    Uncaught AliyunCoreExceptionServerException: MissingPhoneNumbers PhoneNumbers is mandatory for this ...

  3. nodejs 调用阿里云短信

    最近公司使用nodejs调用阿里云短信接口发送短信,网上找了很多示例都不行,给的那些都不能正常使用.下面给出我调用成功的示例. 阿里云短信调用实质上就是构建一个http请求可以是post也可以是get ...

  4. TP5调用阿里云短信接口实现发送短信功能

    TP5调用阿里云短信接口实现发送短信功能 工作需要,对接阿里云的短信服务,借此记录一下(网站 www.lelee.top) 主要分为两个部分,一是下载官方的Demo事例,这个不需要多说,自己去下载就行 ...

  5. Java调用阿里云短信接口,发送短信

    Java调用阿里云短信接口,发送短信 1.短信服务这个很简单,只需要知道accessKeyId(AK).accessKeySecret(SK).短信签名.短信模板即可. 2.域名和产品名称是固定的,使 ...

  6. springboot项目调用阿里云短信接口(包括短信上行)

    最近一直在做项目,很久没有写过博客了,最近做的一个项目中遇到了一个业务需要用到短信功能包括了发送短信和短信回复之后要收到回复内容,阿里云短信服务是一个非常好的平台,里面提供了多种短信接口可以供我们使用 ...

  7. [风一样的创作]二次封装阿里云短信 验证码 发送短信 查询短信 编辑短信

    1.首先要注册阿里云,购买阿里云短信服务,拿到AccessKey ID和AccessKey Secret 链接: https://usercenter.console.aliyun.com/#/man ...

  8. 阿里云 短信服务——发送短信验证码图文教程

    阿里云短信服务 前言 配置阿里云短信服务 准备工作 1.获取Accesskey 1.2创建子账号 1.2为刚创建的用户分配短信服务的权限 2.1申请签名 2.2申请模板 2.3由于目前还没有使用到系统 ...

  9. java实现阿里云短信服务发送验证码

    在写注册接口时,需引入短信第三方接口,故使用了阿里云短信服务,在这里简单描述一下 1.引入依赖 <!--手机发送短信验证码--><dependency><groupId& ...

最新文章

  1. 惨烈!程序员放弃了 Python!?发生了啥?
  2. 哀悼日使站点变灰色调的方法
  3. php函数变成变量,为什么我不能在PHP函数中将函数作为默认变量提供?
  4. 数据结构(C语言实现)第1章课后习题参考答案
  5. python3.5安装scrapy_win10下基于python3.5安装scrapy教程
  6. Transformers与图神经网络的关系,我们能从transformer学习到什么?
  7. C++11常用特性的使用经验总结-概述及目录
  8. 【MVC】VS常用技巧
  9. ionic3 m3u8在线播放工具,在线播放
  10. SQL Server 索引优化——重复索引(部分重复)
  11. 【JIRA 学习】JIRA 配置缺陷的reopen 次数
  12. git常用命令(持续更新)
  13. Linux各目录介绍
  14. 分享一些ABP..ABS的广告过滤规则
  15. Ubuntu 查看文件以及磁盘空间大小管理
  16. 174. 地下城游戏;剑指 Offer 40. 最小的k个数;378. 有序矩阵中第K小的元素;703. 数据流中的第K大元素
  17. 网站服务器该怎么选择呢?
  18. SharePoint 2007部署过程
  19. Python案例—掷骰子
  20. WIFI基础入门--802.11--直接序列物理层(DSSS)--12

热门文章

  1. SVM发展历史、现状、未来趋势
  2. php连接共享打印机实例,win10怎么连接共享打印机
  3. 什么是 0 欧姆电阻?
  4. 在Centos7下安装oracle11c
  5. SQL日期时间不能早于1753年
  6. visual studio2013 代码自动提示
  7. 基于神经网络的大模型在自然语言处理中的应用
  8. 转载SSIS中的容器和数据流—数据转换(Transformations)
  9. leetcode:174.地下城游戏
  10. 斐波那契数列递归算法的时间复杂度计算