1.集成阿里云通信发送短信:

在pom.xml文件里添加依赖

  1. <!--阿里短信服务-->
  2. <dependency>
  3. <groupId>com.aliyun</groupId>
  4. <artifactId>aliyun-java-sdk-core</artifactId>
  5. <version>3.7.1</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.aliyun</groupId>
  9. <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
  10. <version>1.1.0</version>
  11. </dependency>

直接复制发送短信demo测试:

  1. import com.aliyuncs.DefaultAcsClient;
  2. import com.aliyuncs.IAcsClient;
  3. import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest;
  4. import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsResponse;
  5. import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
  6. import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
  7. import com.aliyuncs.dysmsapi.transform.v20170525.SendSmsResponseUnmarshaller;
  8. import com.aliyuncs.exceptions.ClientException;
  9. import com.aliyuncs.http.FormatType;
  10. import com.aliyuncs.http.HttpResponse;
  11. import com.aliyuncs.profile.DefaultProfile;
  12. import com.aliyuncs.profile.IClientProfile;
  13. import java.nio.charset.Charset;
  14. import java.text.SimpleDateFormat;
  15. import java.util.Date;
  16. import java.util.UUID;
  17. /**
  18. * Created on 17/6/7.
  19. * 短信API产品的DEMO程序,工程中包含了一个SmsDemo类,直接通过
  20. * 执行main函数即可体验短信产品API功能(只需要将AK替换成开通了云通信-短信产品功能的AK即可)
  21. * 工程依赖了2个jar包(存放在工程的libs目录下)
  22. * 1:aliyun-java-sdk-core.jar
  23. * 2:aliyun-java-sdk-dysmsapi.jar
  24. *
  25. * 备注:Demo工程编码采用UTF-8
  26. * 国际短信发送请勿参照此DEMO
  27. */
  28. public class SmsDemo {
  29. //产品名称:云通信短信API产品,开发者无需替换
  30. static final String product = "Dysmsapi";
  31. //产品域名,开发者无需替换
  32. static final String domain = "dysmsapi.aliyuncs.com";
  33. // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
  34. static final String accessKeyId = "yourAccessKeyId";
  35. static final String accessKeySecret = "yourAccessKeySecret";
  36. public static SendSmsResponse sendSms() throws ClientException {
  37. //可自助调整超时时间
  38. System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
  39. System.setProperty("sun.net.client.defaultReadTimeout", "10000");
  40. //初始化acsClient,暂不支持region化
  41. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  42. DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  43. IAcsClient acsClient = new DefaultAcsClient(profile);
  44. //组装请求对象-具体描述见控制台-文档部分内容
  45. SendSmsRequest request = new SendSmsRequest();
  46. //必填:待发送手机号
  47. request.setPhoneNumbers("15000000000");
  48. //必填:短信签名-可在短信控制台中找到
  49. request.setSignName("云通信");
  50. //必填:短信模板-可在短信控制台中找到
  51. request.setTemplateCode("SMS_1000000");
  52. //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
  53. request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");
  54. //选填-上行短信扩展码(无特殊需求用户请忽略此字段)如果需要查看短信回复。这个得填上
  55. request.setSmsUpExtendCode("90997");
  56. //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
  57. request.setOutId("yourOutId");
  58. //hint 此处可能会抛出异常,注意catch
  59. SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
  60. return sendSmsResponse;
  61. }
  62. public static QuerySendDetailsResponse querySendDetails(String bizId) throws ClientException {
  63. //可自助调整超时时间
  64. System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
  65. System.setProperty("sun.net.client.defaultReadTimeout", "10000");
  66. //初始化acsClient,暂不支持region化
  67. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  68. DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  69. IAcsClient acsClient = new DefaultAcsClient(profile);
  70. //组装请求对象
  71. QuerySendDetailsRequest request = new QuerySendDetailsRequest();
  72. //必填-号码
  73. request.setPhoneNumber("15000000000");
  74. //可选-流水号
  75. request.setBizId(bizId);
  76. //必填-发送日期 支持30天内记录查询,格式yyyyMMdd
  77. SimpleDateFormat ft = new SimpleDateFormat("yyyyMMdd");
  78. request.setSendDate(ft.format(new Date()));
  79. //必填-页大小
  80. request.setPageSize(10L);
  81. //必填-当前页码从1开始计数
  82. request.setCurrentPage(1L);
  83. //hint 此处可能会抛出异常,注意catch
  84. QuerySendDetailsResponse querySendDetailsResponse = acsClient.getAcsResponse(request);
  85. return querySendDetailsResponse;
  86. }
  87. public static void main(String[] args) throws ClientException, InterruptedException {
  88. //发短信
  89. SendSmsResponse response = sendSms();
  90. System.out.println("短信接口返回的数据----------------");
  91. System.out.println("Code=" + response.getCode());
  92. System.out.println("Message=" + response.getMessage());
  93. System.out.println("RequestId=" + response.getRequestId());
  94. System.out.println("BizId=" + response.getBizId());
  95. Thread.sleep(3000L);
  96. //查明细
  97. if(response.getCode() != null && response.getCode().equals("OK")) {
  98. QuerySendDetailsResponse querySendDetailsResponse = querySendDetails(response.getBizId());
  99. System.out.println("短信明细查询接口返回数据----------------");
  100. System.out.println("Code=" + querySendDetailsResponse.getCode());
  101. System.out.println("Message=" + querySendDetailsResponse.getMessage());
  102. int i = 0;
  103. for(QuerySendDetailsResponse.SmsSendDetailDTO smsSendDetailDTO : querySendDetailsResponse.getSmsSendDetailDTOs())
  104. {
  105. System.out.println("SmsSendDetailDTO["+i+"]:");
  106. System.out.println("Content=" + smsSendDetailDTO.getContent());
  107. System.out.println("ErrCode=" + smsSendDetailDTO.getErrCode());
  108. System.out.println("OutId=" + smsSendDetailDTO.getOutId());
  109. System.out.println("PhoneNum=" + smsSendDetailDTO.getPhoneNum());
  110. System.out.println("ReceiveDate=" + smsSendDetailDTO.getReceiveDate());
  111. System.out.println("SendDate=" + smsSendDetailDTO.getSendDate());
  112. System.out.println("SendStatus=" + smsSendDetailDTO.getSendStatus());
  113. System.out.println("Template=" + smsSendDetailDTO.getTemplateCode());
  114. }
  115. System.out.println("TotalCount=" + querySendDetailsResponse.getTotalCount());
  116. System.out.println("RequestId=" + querySendDetailsResponse.getRequestId());
  117. }
  118. }
  119. }

spring boot集成阿里云短信发送接收短信回复功能的更多相关文章

  1. django之集成阿里云通信(发送手机短信验证码)

    python3 + django2.0 集成 "阿里云通信" 服务: (SDK文档地址:https://help.aliyun.com/document_detail/55491. ...

  2. Spring Boot 集成阿里云 OSS 进行文件存储

    最近因为项目中需要存储很多的图片,不想存储到服务器上,因此就直接选用阿里云的对象服务(Object Storage Service,简称 OSS)来进行存储,本文将介绍 Spring Boot 集成 ...

  3. 玩转spring boot——结合阿里云持续交付

    前言 在互联网项目中,项目测试.部署往往需要花费大量时间.传统方式是在本地打包.测试完毕程序,然后通过ftp上传至服务器,再把测试的配置文件修改为生产环境的配置文件,最后重新运行服务.这一过程如果交给 ...

  4. Sping Boot入门到实战之实战篇(一):实现自定义Spring Boot Starter——阿里云消息队列服务Starter

    在 Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置 这篇中,我们知道Spring Boot自动化配置的实现,主要由如下几部分完成: @EnableAutoConfigu ...

  5. Spring boot 集成 阿里 Mqtt

    因为公司业务需求,需要接入 阿里Mqtt,自己基于Spring写了一个小demo,记录下来,已备以后需要. 第一步 创建一个实体bean用来装载 MqttClient private MqttClie ...

  6. Spring Boot使用阿里云证书启用HTTPS

    1.到阿里云下载证书页面下载证书 2.根据页面内容,可以使用2种证书:PFX JKS 把对应证书放到src/main/resources目录下 在application.properties文件中加入 ...

  7. Spring boot集成Rabbit MQ使用初体验

    Spring boot集成Rabbit MQ使用初体验 1.rabbit mq基本特性 首先介绍一下rabbitMQ的几个特性 Asynchronous Messaging Supports mult ...

  8. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  9. (转)Spring Boot(十八):使用 Spring Boot 集成 FastDFS

    http://www.ityouknow.com/springboot/2018/01/16/spring-boot-fastdfs.html 上篇文章介绍了如何使用 Spring Boot 上传文件 ...

随机推荐

  1. shell模拟“多线程”

      shell中并没有真正意义上的多线程,要实现"多线程"可以启动多个子进程,并将子进程放入后台执行来模拟多线程,最大程度利用CPU性能. 循环中执行并行代码 #!/bin/bas ...

  2. IllegalArgumentException: requirement failed: Corrupt index found

    今天突然接到客户反映线上服务器发送消息异常,登录服务器查看是kafka服务出现了问题,想重启一下服务,结果重启出现一下报错 [2017-06-30 19:29:13,708] FATAL Fatal ...

  3. android应用搬家的实现

    android手机上的应用搬家功能,具体的介绍和原理参考: 系统目录及应用搬家的研究 应用搬家的实现 这里主要是作为一个补充,因为上面两篇文章虽然讲的挺好的,但是给出的例子不能直接运行,还是需要一些准 ...

  4. leetcode 之突然不做了

    最近心情也不好,学不会的东西太多,以前能懂为什么,现在完全不知道为什么,只能依葫芦画瓢了,所以我写出了的代码到底是会了吗?还是瓢画的好? 热血之三分钟热度小张发现leetcode里会做的好像都做了,剩 ...

  5. MahApps.Metro扁平化UI控件库(可修改主题色等)

    一.名词解释 使用MahApps.Metro扁平化UI控件库,可以使界面呈现更加美观.本文将总结MahApps.Metro的使用方法,及如何自定义修改其主题颜色等. 详细内容可参考官网:https:/ ...

  6. 毕业回馈-89C51之数码管的使用

    7段码的数码管由7个LED等共同组成,根据公共端的不同有共阴和共阳之分.现在很多数码管在7段码的基础上加了一个.即dp,其内部结构如下图所示: 公共端为LED灯的阴极,所以为共阴极接法: 公共端为阳极 ...

  7. winform :DataGridView添加一列checkbox

    #region 添加checkbox列   public void AddCheckBox()        { DataGridViewCheckBoxColumn columncb = new D ...

  8. Zookeeper之Curator(1)客户端基本的创建,删除,更新,查找操作api

    Curator Framework提供了简化使用zookeeper更高级的API接口.它包涵很多优秀的特性,主要包括以下三点: 自动连接管理:自动处理zookeeper的连接和重试存在一些潜在的问题: ...

  9. C#里面BLL、Model、DAL、UI层

    C# 三层架构分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL)再加上实体类库(Model) 1.实体类库(Model),主要存放数据库中的表字段. 操作: (1)先建立实体类库Mode ...

  10. 【BZOJ3456】轩辕朗的城市规划 EGF+多项式求ln

    我们构造$f(i)$和$g(i)$. 其中$f(x)$表示由$x$个节点构成的无向简单连通图的个数. $g(x)$表示有$x$个节点构成的无向简单图(不要求连通)的个数. 显然,由$x$个节点构成的无 ...