阿里大鱼异步发送短信
pom引用
<!--阿里大鱼--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.4.5</version></dependency><!--阿里大鱼-->
异步线程发送短信
package com.sxapp.message.handler;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.sxapp.message.constant.SmsTemplateCodeEnum;
import com.sxapp.message.constant.SmsType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;/*** @author Dirk* @Description* @Date Create at 2019-07-09 14:04*/
public class SendSmsHandler implements Runnable {private static final Logger log = LoggerFactory.getLogger(SendSmsHandler.class);private String phone;private String templateParam;private SmsType type;public SendSmsHandler(String phone, String templateParam, SmsType type) {this.phone = phone;this.templateParam = templateParam;this.type = type;}/*** 阿里大鱼发送短信** @param phone 手机号* @param templateParam 短信模板变量* @param type 验证码类型*/private void sendSms(String phone, String templateParam, SmsType type) {String regionId = "";String accessKeyId = "";String accessSecret = "";String signName = "";DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessSecret);IAcsClient client = new DefaultAcsClient(profile);CommonRequest request = new CommonRequest();request.setSysMethod(MethodType.POST);request.setSysDomain("dysmsapi.aliyuncs.com");request.setSysVersion("2017-05-25");request.setSysAction("SendSms");request.putQueryParameter("PhoneNumbers", phone);request.putQueryParameter("SignName", signName);request.putQueryParameter("TemplateCode", SmsTemplateCodeEnum.getTemplateCode(type));request.putQueryParameter("TemplateParam", templateParam);CommonResponse response = null;try {response = client.getCommonResponse(request);} catch (ClientException e) {e.printStackTrace();return;}if (response == null) {log.error("send sms failed! phone is {}, type is {}", phone, type);return;}JSONObject jsonObject = JSONObject.parseObject(response.getData());String statusCode = jsonObject.getString("Code");// 发送成功的状态码String ok = "OK";if (!ok.equals(statusCode)) {log.error("send sms failed! phone is {}, response is {}", phone, response.getData());return;}log.info("send sms success. phone is {}, response is {}", phone, response.getData());}@Overridepublic void run() {sendSms(phone, templateParam, type);}public static class TemplateParamBuild {private String code;private String name;private String phone;public TemplateParamBuild code(String code) {this.code = code;return this;}public TemplateParamBuild name(String name) {this.name = name;return this;}public TemplateParamBuild phone(String newPhone) {this.phone = newPhone;return this;}public String getCode() {return code;}public String getName() {return name;}public String getPhone() {return phone;}public String build() {return JSON.toJSONString(this);}}
}
调用
public void sendSms(SmsRequest smsRequest) {// 异步发送短信SendSmsHandler handler = new SendSmsHandler(smsRequest.getPhone(),new SendSmsHandler.TemplateParamBuild().code(smsRequest.getCode()).name(smsRequest.getName()).phone(smsRequest.getPhone()).build(),smsRequest.getSmsType());threadPoolTaskExecutor.execute(handler);}
SmsType
是对外暴露枚举,SmsTemplateCodeEnum
是对应的带有TemplateCode
属性的枚举
阿里大鱼异步发送短信相关推荐
- 阿里大鱼php发送短信,阿里大鱼短信发送PHP代码
首先 请下载阿里大鱼的SDK短信代码 选择PHP版本的 然后应用如下代码即可 import("@.ORG.alidayu.TopSdk","",". ...
- Java使用阿里大鱼实现发送短信
获取 AccessKey ID 和 Access Key Secret 获取 签名名称 和 模版CODE 阿里云官网 如何使用? 1.首先导报 <dependency><groupI ...
- 手机异步发送短信验证码解决方案-Celery+redis
Celery介绍和使用 一.Celery介绍: 一个简单.灵活且可靠.处理大量消息的分布式系统,可以在一台或者多台机器上运行. Celery是一个功能完备即插即用的任务队列 单个 Celery 进程每 ...
- node.js实现阿里云配置发送短信验证码
目录 开始 签名添加 模板添加 测试短信 项目中使用 Core accessKeyId | accessKeySecret params PhoneNumbers SignName TemplateC ...
- 阿里大鱼进行发短信业务---使用详细步骤-Java操作
文章目录 前言 一.开通短信服务 二.快速学习 三.签名管理 1. 何为签名 2. 添加签名 四.模板管理 1. 何为模板 2. 添加模板 五.Java中使用阿里大鱼 1. 开发文档 2. 用到的依赖 ...
- 使用容联云Celery异步发送短信验证码
文章目录 Celery/容联云 安装与命令 安装 celery启动命令 一.Celery 1.配置Celery 2.创建任务文件 二.容联云 1. 配置容联云 settings.py 2. 使用Sms ...
- java调用阿里云api发送短信验证服务
1.先在maven构建需要的jar包 <dependency><groupId>com.aliyun</groupId><artifactId>aliy ...
- Java项目使用阿里云平台发送短信说明
一.前言 项目上通过阿里云短信平台API发送短信是十分便捷的,主要是其官网使用方便,文档全面完善,因此,本篇文章重点不在于说明如何接入使用.现在各短信平台都加强了审核,导致在服务的申请和使用上存在着很 ...
- 阿里云~简单发送短信
简单三步骤:轻松发送短信 一:阿里云 1.创建一个阿里云账号 2.创建一个签名,创建模板 3.创建一个秘钥(用自己的秘钥id,以及密码) 二:代码 1.引入俩个依赖 <!-- https://m ...
最新文章
- 解决jenkins控制台中文乱码问题
- 压力测试网站_一行命令就能网站压力测试和网站故障排除
- 免疫优化算法 matlab,基于人工免疫克隆选择算法的调度优化MATLAB源码
- MYSQL数学函数哪些事
- python写一个简单的CMS识别
- System Repair Engineer (SREng) 2.6 正式发布
- Coder中的Templates
- Incapsula reese84 分析与破解
- WPS 页面设置和纸张大小无法设置的处理方法
- background-color覆盖范围
- Gated Multiple Feedback Network for Image Super-Resolution(GMFN SISR BMVC2019)
- SAP中“管理/寄售移动被无值记账”提示问题分析处理实例
- 我的地盘,我做主!~
- python登陆界面代码_Python-PyQt5-第一个小项目--登录框--login
- 普通计算机怎么改闹铃的音乐,怎么设置闹钟铃声为自己喜欢的音乐
- python小工具:文件批量改名
- 目标检测经典论文——YOLOv2论文翻译(纯中文版):YOLO9000:更好、更快、更强
- 使用wacom数位板配套的笔无法利用按键实现滚动的问题
- beego+GoLand
- python群发手机短信_Python实现向手机号发送短信
热门文章
- JS惯性滚动,加速滚动
- 2021.02.04——用爬虫爬取nga ow区1-10页的帖子并生成词云图
- java实现网站错别字搜索对的结果_自媒体文章错别字检测工具,给你检查文章错别字,方便又省事...
- 美国西北大学计算机科学排名,2020年西北大学排名TFE Times美国最佳计算机科学硕士专业排名第35...
- 电脑上的文件夹怎么加密 文件夹加密方法
- python培训班 合肥
- CreateMutex、WaitForSingleObject、ReleaseMutex——创建互斥对象
- IDC:容器新势力,市场新动力
- 出租车智能终端与外设通讯实践
- 在Ubuntu上安装hadoop(截图太多,干脆来个大截图)