开发环境

idea + maven + jdk 1.8

maven 环境中添加短信通知依赖

<!--阿里短信服务相关jar包-->
<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>

开发者固定参数

/*** 产品名称: 云通信短信API产品,开发者无需替换*/
static final String PRODUCT = "Dysmsapi";/*** 产品域名,开发者无需更换*/
static final String DOMAIN = "dysmsapi.aliyuncs.com";/*** 开发者自己的AccessKeyID*/
static final String ACCESS_KEYID = "********";/*** 开发者自己的AccessKeySecret*/
static final String ACCESSKEY_SECRET = "********";/*** 短信签名--可在短信控制台中找到*/
static final String SIGN = "****";

发送短信所需参数

// 接收短信的手机号
String mobile,
// 发送模板里所需的json数据
JSONObject jsonObject,
// 短信模板,需要申请,后期根据业务务求,可将大量模板封装在一个封装类里
String templateCode

util工具类

前人栽树后人乘凉,此工具类在前人的基础上积累总结(不完全是照搬),看懂了可以搬下来直接用

package com.maoni.ssmtest.utils.aliSmsUtil;import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import net.sf.json.JSONObject;/*** @author ouj* 版本: 阿里云云通信* jar包: aliyun-java-sdk-core and aliyun-java-sdk-dysmsapi* 编码格式:UTF-8* 需要参数: 签名名称 / 模板code / RAM访问控制中的 AccessKeyID 和 AccessKeySecret*/
public class aliSmsUtil {// 所有参数,可自定义根据需求,配置成application.properties 用@value()注入/*** 产品名称: 云通信短信API产品,开发者无需替换*/static final String PRODUCT = "Dysmsapi";/*** 产品域名,开发者无需更换*/static final String DOMAIN = "dysmsapi.aliyuncs.com";/*** 开发者自己的AccessKeyID*/static final String ACCESS_KEYID = "********";/*** 开发者自己的AccessKeySecret*/static final String ACCESSKEY_SECRET = "********";/*** 短信签名--可在短信控制台中找到*/static final String SIGN = "*****";/*** IAcsClient是aliyun-java-sdk-green的Java客户端。使用aliyun-java-sdk-green Java SDK发起请求前,您需要初始化一个IAcsClient实例,并根据需要修改IClientProfile的配置项。*/public IAcsClient acsClient;/*** 配置超时时间,初始化acsClient** @return* @throws*/public IAcsClient getInstant() throws ClientException {if (acsClient == null) {// 配置超时时间System.setProperty("sun.net.client.defaultConnectTimeout", "10000");System.setProperty("sun.net.client.defaultReadTimeout", "10000");//初始化acsClient,暂不支持region化IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", ACCESS_KEYID, ACCESSKEY_SECRET);DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", PRODUCT, DOMAIN);return acsClient = new DefaultAcsClient(profile);}return acsClient;}/***  创建短信发送请求* @param mobile        手机号* @param jsonObject    json数据* @param templateCode  短信模板* @return* @throws ClientException*/public SendSmsResponse getSmsCodeClient(String mobile, JSONObject jsonObject, String templateCode) throws ClientException {//组装请求对象-具体描述见控制台-文档部分内容SendSmsRequest request = new SendSmsRequest();//修改数据提交方式request.setMethod(MethodType.POST);//修改数据交互格式request.setAcceptFormat(FormatType.JSON);//必填:待发送手机号request.setPhoneNumbers(mobile);//必填:短信签名-可在短信控制台中找到request.setSignName(SIGN);//必填:短信模板-可在短信控制台中找到request.setTemplateCode(templateCode);//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为request.setTemplateParam(jsonObject.toString());return getInstant().getAcsResponse(request);}/*** 发送短信** @param mobile       手机号码* @param jsonObject   json数据* @param templateCode 短信模板* @return*/public SendSmsResponse sendSms(String mobile, JSONObject jsonObject, String templateCode) {SendSmsResponse smsResponse = null;try{smsResponse = getSmsCodeClient(mobile,jsonObject,templateCode);} catch (ClientException e) {e.printStackTrace();}// 发生业务错误if ("isv.BUSINESS_LIMIT_CONTROL".equals(smsResponse.getCode())) {String message = smsResponse.getMessage();String limitNum = message.substring(message.length() - 1);if ("5".equals(limitNum)) {// 此处可自定义业务异常throw new RuntimeException("获取次数已达上线,请过一小时再试");} else if (limitNum.equals("0")) {throw new RuntimeException("获取次数已达上线,请明日再试");} else if (limitNum.equals("1")) {throw new RuntimeException("获取次数已达上线,请过一分钟再试");}}return smsResponse;}
}

测试类测试

package com.maoni.ssmtest.test;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.maoni.ssmtest.utils.aliSmsUtil.AliSmsUtil;
import net.sf.json.JSONObject;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;public class aliSmsTest {public static void main(String[] args) {SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");String sd = sdf.format(new Date());String phone = ""********";";String template = ""********";";String name = ""********";";Map map = new HashMap<>(4);map.put("transportNo",name);map.put("hour",sd);// 对象转jsonJSONObject jsonObject = JSONObject.fromObject(map);AliSmsUtil aliSmsUtil = new AliSmsUtil();// 发送短信SendSmsResponse sendSmsResponse = aliSmsUtil.sendSms(phone,jsonObject,template);if("OK".equals(sendSmsResponse.getCode())){System.out.println("发送成功");}else {System.out.println("发送失败");}}
}

DEBUG调式结果

分析 sendSmsResponse 请求响应的结果根据code状态处理结果

成功状态:

Java实现阿里云云通短信通知发送相关推荐

  1. java实现阿里云云通信短信通知发送

    在之前博客中介绍了阿里云短信通知,但是自从2017年7月后阿里大于搬家规划给阿里云云通信,故短信通知接口改变,新注册的短信通知模板用阿里大于不再使用,必须调用阿里云云通信接口才可以.以下介绍下阿里云云 ...

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

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

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

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

  4. java集成阿里大于第三方平台发送短信验证码

    闲话不多说,言归正传.今天我要分享的是利用阿里大鱼实现网站和APP的短信验证.  阿里大鱼开放了很多的消息通知服务,包括短信通知,语音通知等.  阿里大鱼的短信发送官方API:https://api. ...

  5. Java实现阿里短息服务发送功能

    1. 功能设置 a. 首先在阿里云平台开通短信服务功能: b. 在平台上,进行短信签名设置,短信签名需要平台人工审核: c. 进行短信模板设置,以验证码为例: 其中的code为变量,是程序传入的参数: ...

  6. java实现阿里大于短信发送服务

    这篇文章主要介绍一下手机号注册,发送短信验证码的功能 觉得有帮助的点赞支持一下吧. 这里我们采用的是阿里大于的服务来实现,链接如下:阿里云 界面描述还是比较详细的,展示了短信服务的完整流程快速学习短信 ...

  7. Java阿里云短信发送工具类

    短信服务API介绍 阿里云短信发送:调用SendSms发送短信_短信服务-阿里云帮助中心 <!--springboot项目阿里云发送短信--> <dependency>< ...

  8. Java 集成阿里大鱼平台短信服务发送验证码到手机

    点击前往:阿里大鱼 --- 短信接口调用错误码(错误原因及处理方式) 上一篇:阿里大鱼短信服务 --- 发送验证码.短信通知 下一篇:Java 集成阿里大鱼平台短信服务发送验证码 --- 补齐注册部分 ...

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

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

最新文章

  1. 以太坊公链私链_如何使用以太坊构建汽车制造供应链系统
  2. js+css实现骰子的随机转动
  3. 算法题——Cantor表
  4. phpword中设置间距_管道支、吊架的安装间距规范上如何规定?
  5. MySQL中的pid与socket是什么?
  6. Permission denied (publickey).
  7. 蜗牛学习正则表达式 教程 工具一网打尽
  8. 3d pdf reader android,3D PDF Reader
  9. switch开关 ~ 学习记录
  10. webkit内核的浏览器
  11. 如何用python读取表_Python读取MySQL表数据的方法介绍
  12. 时光 php,ctphp-php教程-时光划过那刹那-PHP教程--创业的风,吹向了年轻之长藤个人博客网站...
  13. 201632位matlab下载_Matlab 2016a下载
  14. C# 身份证号取年龄
  15. 倾斜摄影——3维建模软件PhotoScan教程(附安装包+教学视频)
  16. 【DeeCamp 优秀项目详解】从零开始到 AI 技术落地,只用三周
  17. win7怎样修改文件后缀名
  18. operators库
  19. Unity内置Shader解读1——Bumped Diffuse
  20. Tomcat服务器安装和替换阿里云免费ssl证书步骤(超详细)

热门文章

  1. 分不清?企业征信报告Or企业信用评级报告,差别大了去了!
  2. 微信扫一扫 扫普通链接二维码打开微信小程序
  3. 图片转文字怎么弄?图文转换方式说明
  4. 华尔街英语VVIP课程 科学“配方”让英语学习精致化
  5. 本地ASP.NET开发页面使用AzureAD(AAD)验证登录
  6. ASP.NET Core 集成AAD认证在Docker中运行时要注意的一个问题
  7. 在云端管理您的所有身份(AAD)-第二部分
  8. okhttp使用总结
  9. matlab学习—分段函数计算
  10. [脚本]用windows批处理文件自动化Python(虚拟)环境的配置