前段时间,写了一个调用阿里云短信接口发送短信的功能,今天就分享一下工具类

import java.util.HashMap;import net.sf.json.JSONObject;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;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.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;/*** 阿里云发送短信工具类* * @author Administrator* */
public class MobileMessageUtil {// 产品名称:云通信短信API产品,开发者无需替换private static final String product = "Dysmsapi";// 产品域名,开发者无需替换private static final String domain = "dysmsapi.aliyuncs.com";private static final Logger logger = LoggerFactory.getLogger(MobileMessageUtil.class);public static String getAccessKeyId() {return PropertyUtil.getProperty("accessKeyId");}public static String getAccessKeySecret() {return PropertyUtil.getProperty("accessKeySecret");}public static String getSignName() {return PropertyUtil.getProperty("signName");}public static String getDefaultConnectTimeout() {return PropertyUtil.getProperty("defaultConnectTimeout");}public static String getDefaultReadTimeout() {return PropertyUtil.getProperty("defaultReadTimeout");}public static String getDkSigningTempleteCode() {return PropertyUtil.getProperty("DKSIGNING");}public static String getDkRescissionTempleteCode() {return PropertyUtil.getProperty("DKRESCISSION");}public static SendSmsResponse sendSms(String mobile, String templateParam,String templateCode) {SendSmsResponse sendSmsResponse = null;logger.info("[发送短信工具类] 读取配文件参数为:accessKeyId="+ MobileMessageUtil.getAccessKeyId() + " accessKeySecret="+ MobileMessageUtil.getAccessKeySecret() + " signName="+ MobileMessageUtil.getSignName()+ " getDefaultConnectTimeout="+ MobileMessageUtil.getDefaultConnectTimeout()+ " defaultReadTimeout="+ MobileMessageUtil.getDefaultReadTimeout());try {logger.info("[发送短信工具类] 发送短信接收的参数为:mobile=" + mobile+ " templateParam=" + templateParam + " templateCode="+ templateCode);// 可自助调整超时时间System.setProperty("sun.net.client.defaultConnectTimeout",MobileMessageUtil.getDefaultConnectTimeout());System.setProperty("sun.net.client.defaultReadTimeout",MobileMessageUtil.getDefaultReadTimeout());// 初始化acsClient,暂不支持region化IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou",MobileMessageUtil.getAccessKeyId(),MobileMessageUtil.getAccessKeySecret());DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product,domain);IAcsClient acsClient = new DefaultAcsClient(profile);// 组装请求对象-具体描述见控制台-文档部分内容SendSmsRequest request = new SendSmsRequest();// 必填:待发送手机号request.setPhoneNumbers(mobile);// 必填:短信签名-可在短信控制台中找到request.setSignName(MobileMessageUtil.getSignName());// 必填:短信模板-可在短信控制台中找到request.setTemplateCode(templateCode);// 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为request.setTemplateParam(templateParam);// 选填-上行短信扩展码(无特殊需求用户请忽略此字段)// request.setSmsUpExtendCode("90997");// 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者request.setOutId("yourOutId");// hint 此处可能会抛出异常,注意catchsendSmsResponse = acsClient.getAcsResponse(request);} catch (Exception e) {logger.info("[发送短信工具类] 调用发送短信方法异常 异常信息为:" + e.getMessage());e.printStackTrace();}return sendSmsResponse;}public static void main(String[] args) {HashMap<String, String> params=new HashMap<String,String>();params.put("customerName", "张三");params.put("bizName", "崇文门");params.put("customerPhone", "1523****34");String templateParam=JSONObject.fromObject(params).toString(); // 发短信SendSmsResponse response = sendSms("152****334", templateParam,MobileMessageUtil.getDkSigningTempleteCode());System.out.println("短信接口返回的数据----------------");System.out.println("Code=" + response.getCode());System.out.println("Message=" + response.getMessage());System.out.println("RequestId=" + response.getRequestId());System.out.println("BizId=" + response.getBizId());}}

其中有一个读取配置文件Property的工具类 如下

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class PropertyUtil {private static final Logger logger = LoggerFactory.getLogger(PropertyUtil.class);private static Properties props;static{loadProps();}synchronized static private void loadProps(){logger.info("开始加载properties文件内容.......");props = new Properties();InputStream in = null;try {//第一种,通过类加载器进行获取properties文件流in = PropertyUtil.class.getClassLoader().getResourceAsStream("aliyun_sendmsg.properties");// <!--第二种,通过类进行获取properties文件流-->//in = PropertyUtil.class.getResourceAsStream("/jdbc.properties");props.load(in);} catch (FileNotFoundException e) {logger.error("jdbc.properties文件未找到");} catch (IOException e) {logger.error("出现IOException");} finally {try {if(null != in) {in.close();}} catch (IOException e) {logger.error("jdbc.properties文件流关闭出现异常");}}logger.info("加载properties文件内容完成...........");logger.info("properties文件内容:" + props);}public static String getProperty(String key){if(null == props) {loadProps();}return props.getProperty(key);}public static String getProperty(String key, String defaultValue) {if(null == props) {loadProps();}return props.getProperty(key, defaultValue);}}

阿里云发送短信工具类相关推荐

  1. 阿里大鱼发送短信(工具类)

    前言:需要去申请阿里大鱼的账号 点击跳转阿里大鱼平台 1.坐标 <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sd ...

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

    1. 注册短信平台(以阿里云为例) 常用短信服务平台:阿里云.华为云.腾讯云.京东.梦网.乐信等 2. 注册成功后,开通短信服务 3. 设置短信签名.短信模板.AccessKey AccessKey ...

  3. 阿里云发送短信代码、C++版

    最近使用VS2019 实测了一把阿里云发送短信接口,发现坑很多,好在最后全部通过 需要的自取下载 阿里云发送短信C++源码.实测通过-C++文档类资源-CSDN下载 #pragma warning(d ...

  4. 【阿里云短信服务SMS】使用阿里云发送短信

    使用阿里云发送短信 前期准备工作 1.添加签名 2.添加短信模板 3.创建子用户,得到密钥:AccessKeyId和 AccessKeySecret 4.给子用户添加权限 5.收集好之前步骤中的4个关 ...

  5. Java阿里云发送短信

    文章目录 前言 准备工作 短信服务API介绍 阿里云api发送短信 传送门 前言 短信服务,是阿里云为客户提供的一种通信服务的能力. 准备工作 需要申请一个阿里云账号 开通短信服务 添加签名和模板(需 ...

  6. 使用阿里云发送短信验证码

    目录 一.用户注册登录流程 二.使用阿里云发送短信验证码 ⭐生成密钥 ⭐将密钥配置到项目中 ⚪新建properties文件并填入相应信息 ⚪pom配置 ​⚪ 测试代码 ⚪添加签名 ​⚪添加短信发送的模 ...

  7. 使用阿里云发送短信验证码(JAVA实现)

    文章目录 准备工作 完成阿里云认证 生成秘钥 申请签名和模板 编写代码 需要引入的JAR包依赖 代码 充钱 准备工作 我们首先登陆阿里云 https://www.aliyun.com 完成阿里云认证 ...

  8. 新版阿里云发送短信验证码详解

    关与作者更多博客请访问云里云外开源社区 一.申请短信服务步骤 首先进入阿里云控制台,点击左侧产品与服务,找到短信服务. 第一次进入会有新手引导,这里主要介绍一下大致步骤和易错点 申请短信签名和模板 短 ...

  9. C# 使用阿里云发送短信

    最近有个项目,短信服务使用的是阿里云的,想要使用阿里云平台的短信服务,首先要注册一个阿里云账号,由于发送短信消息需要用到短信签名.短信模板ID(已添加并通过审核) 1.注册阿里云账号(地址:https ...

  10. 阿里云发送短信功能(环境搭建篇)

    前言 1.阿里云的开发文档写的很详细,仔细阅读文档就可以啦. 步骤 (1)第一步,需要注册阿里云账号,并且完成实名注册,发送短信验证功能需要充值.这个不仔细展开讲 (2)第二步,点击开通短信功能 并且 ...

最新文章

  1. 《Adobe Flash CS4中文版经典教程》——1.7 使用“工具”面板
  2. mysql5.5.28安装详最后一个步骤时为啥一直转_mysql5.7.28下载、安装、登陆步骤详解...
  3. Maven(四):定制库到Mave本地资源库 (Kaptcha)
  4. 大规模开发团队如何实现DevOps转型? 来自微软全球开发平台工程团队的实践经验
  5. [Leedcode][JAVA][第46题][全排列][回溯算法]
  6. 深入理解C++中的RVO
  7. 百度人脸识别:最简单的Python调用
  8. 大数据课程30天掌握 spark内存计算(python )-徐培成-专题视频课程
  9. 差速轮和舵轮的纯跟踪算法
  10. Kingbase8开发版,启动提示FATAL: XX000: max_connections should be less than orequal than 10
  11. CocosCreator接入穿山甲SDK(IOS)--激励视屏
  12. 016-打印菱形-【c语言版】
  13. 善用宝贝标题关键字 提高站内搜索流量
  14. 模仿Airbnb的悬浮搜索框动画
  15. html个人简历制作
  16. Matlab中创建、串联和扩展矩阵
  17. Notepad++ 代码格式化插件工具
  18. 我与陈景润的一次争论
  19. android 数据写入缓存bug
  20. 2012蓝桥杯C++本科 古堡算式

热门文章

  1. mysql评论回复表设计_数据库设计——评论回复功能
  2. 十年前加入互联网改变世界,十年后加入顶级微信团队一起炸屎
  3. 计算机电脑配置组装心得,自己如何组装电脑主机?diy电脑组装教程图解详细步骤+装机心得(4)...
  4. SVN提交文件失败:系统找不到指定路径
  5. mirrorlink
  6. Win10自动更新后桌面文件不见了怎么办?
  7. windows自动更新导致:无法访问网络位置*:\Program Files(x86)
  8. AOP核心概念,连接点(JoinPoint)切入点(Pointcut)通知(Advice)通知类切面(Aspect)
  9. java定时器定时发短信,定时任务(如:定时发送短信信箱等)
  10. 基于 IPO 经济理论模型对目前 ICO 的理论研究和分析