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属性的枚举

阿里大鱼异步发送短信相关推荐

  1. 阿里大鱼php发送短信,阿里大鱼短信发送PHP代码

    首先 请下载阿里大鱼的SDK短信代码 选择PHP版本的  然后应用如下代码即可 import("@.ORG.alidayu.TopSdk","",". ...

  2. Java使用阿里大鱼实现发送短信

    获取 AccessKey ID 和 Access Key Secret 获取 签名名称 和 模版CODE 阿里云官网 如何使用? 1.首先导报 <dependency><groupI ...

  3. 手机异步发送短信验证码解决方案-Celery+redis

    Celery介绍和使用 一.Celery介绍: 一个简单.灵活且可靠.处理大量消息的分布式系统,可以在一台或者多台机器上运行. Celery是一个功能完备即插即用的任务队列 单个 Celery 进程每 ...

  4. node.js实现阿里云配置发送短信验证码

    目录 开始 签名添加 模板添加 测试短信 项目中使用 Core accessKeyId | accessKeySecret params PhoneNumbers SignName TemplateC ...

  5. 阿里大鱼进行发短信业务---使用详细步骤-Java操作

    文章目录 前言 一.开通短信服务 二.快速学习 三.签名管理 1. 何为签名 2. 添加签名 四.模板管理 1. 何为模板 2. 添加模板 五.Java中使用阿里大鱼 1. 开发文档 2. 用到的依赖 ...

  6. 使用容联云Celery异步发送短信验证码

    文章目录 Celery/容联云 安装与命令 安装 celery启动命令 一.Celery 1.配置Celery 2.创建任务文件 二.容联云 1. 配置容联云 settings.py 2. 使用Sms ...

  7. java调用阿里云api发送短信验证服务

    1.先在maven构建需要的jar包 <dependency><groupId>com.aliyun</groupId><artifactId>aliy ...

  8. Java项目使用阿里云平台发送短信说明

    一.前言 项目上通过阿里云短信平台API发送短信是十分便捷的,主要是其官网使用方便,文档全面完善,因此,本篇文章重点不在于说明如何接入使用.现在各短信平台都加强了审核,导致在服务的申请和使用上存在着很 ...

  9. 阿里云~简单发送短信

    简单三步骤:轻松发送短信 一:阿里云 1.创建一个阿里云账号 2.创建一个签名,创建模板 3.创建一个秘钥(用自己的秘钥id,以及密码) 二:代码 1.引入俩个依赖 <!-- https://m ...

最新文章

  1. 解决jenkins控制台中文乱码问题
  2. 压力测试网站_一行命令就能网站压力测试和网站故障排除
  3. 免疫优化算法 matlab,基于人工免疫克隆选择算法的调度优化MATLAB源码
  4. MYSQL数学函数哪些事
  5. python写一个简单的CMS识别
  6. System Repair Engineer (SREng) 2.6 正式发布
  7. Coder中的Templates
  8. Incapsula reese84 分析与破解
  9. WPS 页面设置和纸张大小无法设置的处理方法
  10. background-color覆盖范围
  11. Gated Multiple Feedback Network for Image Super-Resolution(GMFN SISR BMVC2019)
  12. SAP中“管理/寄售移动被无值记账”提示问题分析处理实例
  13. 我的地盘,我做主!~
  14. python登陆界面代码_Python-PyQt5-第一个小项目--登录框--login
  15. 普通计算机怎么改闹铃的音乐,怎么设置闹钟铃声为自己喜欢的音乐
  16. python小工具:文件批量改名
  17. 目标检测经典论文——YOLOv2论文翻译(纯中文版):YOLO9000:更好、更快、更强
  18. 使用wacom数位板配套的笔无法利用按键实现滚动的问题
  19. beego+GoLand
  20. python群发手机短信_Python实现向手机号发送短信

热门文章

  1. JS惯性滚动,加速滚动
  2. 2021.02.04——用爬虫爬取nga ow区1-10页的帖子并生成词云图
  3. java实现网站错别字搜索对的结果_自媒体文章错别字检测工具,给你检查文章错别字,方便又省事...
  4. 美国西北大学计算机科学排名,2020年西北大学排名TFE Times美国最佳计算机科学硕士专业排名第35...
  5. 电脑上的文件夹怎么加密 文件夹加密方法
  6. python培训班 合肥
  7. CreateMutex、WaitForSingleObject、ReleaseMutex——创建互斥对象
  8. IDC:容器新势力,市场新动力
  9. 出租车智能终端与外设通讯实践
  10. 在Ubuntu上安装hadoop(截图太多,干脆来个大截图)