支持批量发送短信、单条发送短信。

查询短信发送状态等接口。

<dependency><groupId>com.aliyun</groupId><artifactId>dysmsapi20170525</artifactId>
</dependency>
package com.dpxdata.backend.sms.aliyun;import com.alibaba.fastjson.JSON;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.*;import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;/*** 阿里云短信发送* @author Lish**/
public class AliyunSmsSend {/*** 单条短信发送* @param phoneNumbers 接收短信的手机号码,多个用英文逗号隔开* @param signName 短信签名名称,eg: "阿里云"* @param templateCode 短信模板CODE* @param templateParam 短信模板变量对应的实际值,eg:{"code":"1234"}* @return sendResp.body.bizId可用于查询短信发送结果* @throws Exception*/public static SendSmsResponse send(String phoneNumbers, String signName, String templateCode, String templateParam) throws Exception {com.aliyun.dysmsapi20170525.Client client = AliyunSmsBase.createClient("accessKeyId", "keySecret");SendSmsRequest sendReq = new SendSmsRequest().setPhoneNumbers(phoneNumbers).setSignName(signName).setTemplateCode(templateCode).setTemplateParam(templateParam);SendSmsResponse sendResp = client.sendSms(sendReq);String code = sendResp.body.code;if (!com.aliyun.teautil.Common.equalString(code, "OK")) {throw new RuntimeException("错误信息: " + sendResp.body.message + "");}return sendResp;}public static SendSmsResponse send(com.aliyun.dysmsapi20170525.Client client, String phoneNumbers, String signName, String templateCode, String templateParam) throws Exception {SendSmsRequest sendReq = new SendSmsRequest().setPhoneNumbers(phoneNumbers).setSignName(signName).setTemplateCode(templateCode).setTemplateParam(templateParam);SendSmsResponse sendResp = client.sendSms(sendReq);String code = sendResp.body.code;if (!com.aliyun.teautil.Common.equalString(code, "OK")) {throw new RuntimeException("错误信息: " + sendResp.body.message + "");}return sendResp;}/*** 批量短信发送* @param phoneNumberJson  接收短信的手机号码,JSON 数组格式,eg: ["1590***0000","13500***000"]* @param signNameJson 短信签名名称,JSON 数组格式,eg: ["阿里云","阿里巴巴"]* @param templateCode 短信模板CODE* @param templateParamJson 短信模板变量对应的实际值,JSON 数组格式,eg:[{"code":"1234"},{"code":"2345"}]* @return sendResp.body.bizId可用于查询短信发送结果* @throws Exception*/public static SendBatchSmsResponse batchSend(String phoneNumberJson, String signNameJson, String templateCode, String templateParamJson) throws Exception {com.aliyun.dysmsapi20170525.Client client = AliyunSmsBase.createClient("accessKeyId", "keySecret");SendBatchSmsRequest sendReq = new SendBatchSmsRequest().setPhoneNumberJson(phoneNumberJson).setSignNameJson(signNameJson).setTemplateCode(templateCode).setTemplateParamJson(templateParamJson);SendBatchSmsResponse sendResp = client.sendBatchSms(sendReq);String code = sendResp.body.code;if (!com.aliyun.teautil.Common.equalString(code, "OK")) {throw new RuntimeException("错误信息: " + sendResp.body.message + "");}return sendResp;}/*** 单条短信发送 多个手机号发送结果查询* @param phoneNumbers 接收短信的手机号码* @param bizId 发送回执ID,即发送流水号。调用发送接口SendSms或SendBatchSms发送短信时,返回值中的BizId字段。* @param pageSize 分页查看发送记录,指定每页显示的短信记录数量 取值范围为1~50* @param currentPage 分页查看发送记录,指定发送记录的当前页码。* @return Map集合 key:手机号value返回结果*/public static Map<String, QuerySendDetailsResponse> sendResultMany(String phoneNumbers, String bizId, String date, Long pageSize, Long currentPage) throws Exception {com.aliyun.dysmsapi20170525.Client client = AliyunSmsBase.createClient("accessKeyId", "keySecret");Map<String, QuerySendDetailsResponse> map = new ConcurrentHashMap<>();java.util.List<String> phoneNums = Arrays.asList(phoneNumbers.split(","));for (String phoneNum : phoneNums) {QuerySendDetailsRequest queryReq = new QuerySendDetailsRequest().setPhoneNumber(com.aliyun.teautil.Common.assertAsString(phoneNum)).setBizId(bizId).setSendDate(date).setPageSize(pageSize).setCurrentPage(currentPage);QuerySendDetailsResponse queryResp = client.querySendDetails(queryReq);
//            java.util.List<QuerySendDetailsResponseBody.QuerySendDetailsResponseBodySmsSendDetailDTOsSmsSendDetailDTO> dtos = queryResp.body.smsSendDetailDTOs.smsSendDetailDTO;
//            // 打印结果
//            for (QuerySendDetailsResponseBody.QuerySendDetailsResponseBodySmsSendDetailDTOsSmsSendDetailDTO dto : dtos) {
//                if (com.aliyun.teautil.Common.equalString("" + dto.sendStatus + "", "3")) {
//                    System.out.println("" + dto.phoneNum + " 发送成功,接收时间: " + dto.receiveDate + "");
//                } else if (com.aliyun.teautil.Common.equalString("" + dto.sendStatus + "", "2")) {
//                    System.out.println("" + dto.phoneNum + " 发送失败");
//                } else {
//                    System.out.println("" + dto.phoneNum + " 正在发送中...");
//                }
//            }map.put(phoneNum, queryResp);}return map;}/*** 根据日期获取统计数据* @param isGlobe 1:国内 2:2:国际/港澳台短信发送记录。* @param startDate 开始日期,格式为yyyyMMdd,例如20181225。* @param endDate 结束日期,格式为yyyyMMdd,例如20181225。* @param pageIndex 页码。默认取值为1。* @param pageSize 页数。取值范围:1~50。* @return*/public static QuerySendStatisticsResponse getSendStatistics(Integer isGlobe, String startDate, String endDate, Integer pageIndex, Integer pageSize) {Client client = null;try {client = AliyunSmsBase.createClient("accessKeyId", "keySecret");QuerySendStatisticsRequest query = new QuerySendStatisticsRequest();query.setIsGlobe(isGlobe);query.setStartDate(startDate);query.setEndDate(endDate);query.setPageIndex(pageIndex);query.setPageSize(pageSize);QuerySendStatisticsResponse querySendStatisticsResponse = client.querySendStatistics(query);return querySendStatisticsResponse;} catch (Exception e) {e.printStackTrace();}return null;}
}
package com.dpxdata.backend.sms.aliyun;import com.aliyun.teaopenapi.models.*;public class AliyunSmsBase {/*** 使用AK&SK初始化账号Client* @param accessKeyId* @param accessKeySecret* @return Client* @throws Exception*/public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {Config config = new Config()// 您的AccessKey ID.setAccessKeyId(accessKeyId)// 您的AccessKey Secret.setAccessKeySecret(accessKeySecret);// 访问的域名config.endpoint = "dysmsapi.aliyuncs.com";return new com.aliyun.dysmsapi20170525.Client(config);}
}

JAVA 发送阿里云短信相关推荐

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

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

  2. java对接阿里云短信服务详解(验证码,推广短信,通知短信)

    前言 小前提: - java:springboot框架,maven版本管理. - 阿里云:有账号,已经进行实名认证. java对接阿里云短信服务详解(验证码,推广短信,通知短信) 前言 1. 登录阿里 ...

  3. java实现阿里云短信验证注册--详细教程

    java实现阿里云短信验证注册–详细教程 .项目中先引入依赖 <!--阿里云短信包--><dependency><groupId>com.aliyun</gr ...

  4. python发送阿里云短信教程

    python发送阿里云短信教程 1.开通云短信 注册阿里云,开通短信服务. 2.快速学习 进入控制台后,点击左边的快速学习,申请签名,申请模板 签名与模板的生成需要审核,需等待,注意签名与模板作用范围 ...

  5. JAVA 实现阿里云短信申请模板以及批量发送短信

    添加pom.xml依赖 <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java ...

  6. JAVA 实现阿里云短信发送功能

    目录 1.引入依赖 2.添加.yml配置 3.短信接口开发 4.接口调用 1.引入依赖 引入阿里云短信依赖jar包 <!--阿里云服务sdk --> <dependency>& ...

  7. Java实现阿里云短信发送功能(保姆级!!!搞懂短信功能,这一篇就够了!)

    目录 一.准备工作 1)功能如何切入? 2)为什么要用阿里云来实现? 二.阿里云部分 三.代码部分 OK,分享结束!收! 一.准备工作 1)功能如何切入? 第一步:分析业务需求,想要实现短信通知功能那 ...

  8. (短信服务)java SpringBoot 阿里云短信功能实现发送手机验证码

    一.阿里云准备工作 1.阿里云短信服务-注册账号 阿里云官网: https://www.aliyun.com/ 点击官网首页注册按钮. 2.阿里云短信服务-设置短信签名(阿里云提供测试的签名,暂时可以 ...

  9. Java后端阿里云短信平台发送短信

    最近做了关于阿里云平台发送短信的功能,记录下代码方便以后查阅: @Service public class ALiYunSMSServiceImpl implements ALiYunSMSServi ...

最新文章

  1. 衡量微型计算机的性能指标参数有哪些,衡量计算机性能的主要技术指标有哪些?...
  2. 未来3大趋势:人工智能 产业互联网 大数据与算法
  3. 原来R语言还有这些不为人知的用处!
  4. Delicious Apples
  5. 下载安装Redis+使用
  6. 【语音分离】基于matlab FastICA语音信号采集+混合+分离【含Matlab源码 008期】
  7. 高通WLAN框架学习(22)-- WPA3
  8. python io多路复用
  9. 执行python代码的方式_涨见识了,在终端执行 Python 代码的 6 种方式!
  10. Distiller:神经网络压缩研究框架
  11. 从华为起诉三星 看中国知识产权建设
  12. 分析及解决:虚拟机无法连接虚拟设备idel 0:1 问题
  13. 100元的C 软件开发培训班
  14. BZOJ4627: [BeiJing2016]回转寿司
  15. AB1756-L71固件下载(1)
  16. 她对他的爱,隔了万水千山
  17. Windows笔记本本地摄像头提供Rtsp视频流服务
  18. 从0基础学习MySQL数据库(三)
  19. 在c语言如何对拨码开关编程,实验四 指示灯和拨码开关实验_百度文库(15页)-原创力文档...
  20. 安徽计算机水平模拟考试系统准考证号,2019安徽计算机等考准考证打印入口

热门文章

  1. jupyter在windows中的快捷启动设置
  2. 学习记录---8255A简介及使用方法
  3. win10的计算机服务器,Tomcat服务器怎么在Win10系统上搭建-电脑自学网
  4. 哪些收入需要交个人所得税
  5. 图片批量下载软件-全网图片免费批量下载软件
  6. Python每日一个知识点5----多张图片合成GIF动态图
  7. 金蝶云星空常用数据表
  8. 解决华为云CentOS 7 SSH 远程连接不上的问题
  9. 计算机毕业设计SSM大学生创新创业项目活动管理平台【附源码数据库】
  10. Pythonic algorithm