阿里大鱼异步发送短信

2023-12-02 16:18

本文主要是介绍阿里大鱼异步发送短信,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

这篇关于阿里大鱼异步发送短信的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/445992

相关文章

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

js异步提交form表单的解决方案

1.定义异步提交表单的方法 (通用方法) /*** 异步提交form表单* @param options {form:form表单元素,success:执行成功后处理函数}* <span style="color:#ff0000;"><strong>@注意 后台接收参数要解码否则中文会导致乱码 如:URLDecoder.decode(param,"UTF-8")</strong></span>

Android中如何实现adb向应用发送特定指令并接收返回

1 ADB发送命令给应用 1.1 发送自定义广播给系统或应用 adb shell am broadcast 是 Android Debug Bridge (ADB) 中用于向 Android 系统发送广播的命令。通过这个命令,开发者可以发送自定义广播给系统或应用,触发应用中的广播接收器(BroadcastReceiver)。广播机制是 Android 的一种组件通信方式,应用可以监听广播来执行

阿里云服务器ces

允许公网通过 HTTP、HTTPS 等服务访问实例 https://help.aliyun.com/document_detail/25475.html?spm=5176.2020520101.0.0.3ca96b0b3KGTPq#allowHttp

LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio

引言 模型概述 模型架构 训练方法 性能评估 实战演示 总结 引言 金山挂月窥禅径,沙鸟听经恋法门。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩,今天这篇小作文主要是介绍阿里巴巴的语音多模态大模型Qwen2-Audio。近日,阿里巴巴Qwen团队发布了最新的大规模音频-语言模型Qwen2-Audio及其技术报告。该模型在音频理解和多模态交互

AsyncTask 异步任务解析

1:构建AsyncTask 子类的回调方法: A:doInBackground:   必须重写,所有的耗时操作都在这个里面进行; B: onPreExecute:     用户操作数据前的调用; 例如:显示一个进度条 等 ; C: onPostExecute:    当doInBackground 执行完成后;会自动把数据传给onPostExecute方法;也就是说:这个方法是处理返回的数据的方法

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait,能根据用户提供的文本描述,快速生成既忠实于原图又能灵活调整的个性化人像,用户甚至可以通过简单的句子来描述多个不同的人物,而不需要一一指定每个人的位置。这种设计大大简化了用户的操作,提升了个性化生成的效率和效果。 UniPortrait以统一的方式定制单 ID 和多 ID 图像,提供高保真身份保存、广泛的面部可编辑性、自由格式的文本描述,并且无需预先确定的布局。

使用Node-API进行异步任务开发

一、Node-API异步任务机制概述         Node-API异步任务开发主要用于执行耗时操作的场景中使用,以避免阻塞主线程,确保应用程序的性能和响应效率。         1、应用场景: 文件操作:读取大型文件或执行复杂的文件操作时,可以使用异步工作项来避免阻塞主线程。网络请求:当需要进行网络请求并等待响应时,可以使用异步工作项来避免阻塞主线程,从而提高应用程序的响应性能。数据库操

61.以太网数据回环实验(4)以太网数据收发器发送模块

(1)状态转移图: (2)IP数据包格式: (3)UDP数据包格式: (4)以太网发送模块代码: module udp_tx(input wire gmii_txc ,input wire reset_n ,input wire tx_start_en , //以太网开始发送信