java开发小组件(2)- Java实现阿里云短信接口的示例
2022/2/7 11:12:56
本文主要是介绍java开发小组件(2)- Java实现阿里云短信接口的示例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
https://www.jb51.net/article/196597.htmhttps://www.jb51.net/article/196597.htm
import java.util.Random; 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.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; public class AliSendMessage { // 产品名称:云通信短信API产品,开发者无需替换 static final String product = "Dysmsapi"; // 产品域名,开发者无需替换 static final String domain = "dysmsapi.aliyuncs.com"; // 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找) // 申请位置:https://usercenter.console.aliyun.com/#/manage/ak static final String accessKeyId = "LTAILuuXpfiNhyVv"; static final String accessKeySecret = "e70HfClImAuCZ9DD1JZ6ZsQVfBO3TW"; /** * 功能描述:是否发送短信 * * @return boolean 是否发送短信 * @author cakin * @date 2020/8/18 */ public static boolean isSend() { /*String isSendStr = new PropertiesUtils().readProperty("is_send_message"); if (isSendStr != null && !isSendStr.isEmpty()) { return Boolean.valueOf(isSendStr); }*/ return true; } /** * 功能描述:发送短信内容 * * @param phone 电话号码 * @param validateNumber 短信验证码 * @return boolean 是否发送成功 * @author cakin * @date 2020/8/18 */ public static String sendContent(String phone, String validateNumber) throws ClientException { // 判断短信开关 /*if (!isSend()) { return true; }*/ // 可自助调整超时时间 System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); System.setProperty("sun.net.client.defaultReadTimeout", "10000"); // 初始化acsClient,暂不支持region化 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); IAcsClient acsClient = new DefaultAcsClient(profile); // 组装请求对象-具体描述见控制台-文档部分内容 SendSmsRequest request = new SendSmsRequest(); // 必填:待发送手机号 request.setPhoneNumbers(phone); // 必填:短信签名-可在短信控制台中找到 request.setSignName("礼物鸽"); // 必填:短信模板-可在短信控制台中找到 request.setTemplateCode("SMS_193510114"); // 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 // 尊敬的医物通用户,您好!欢迎使用医物通,您的短信验证码是:${validateNumber}。 request.setTemplateParam("{\"code\":\"" + validateNumber + "\"}"); // 选填-上行短信扩展码(无特殊需求用户请忽略此字段) // request.setSmsUpExtendCode("90997"); // 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者 // request.setOutId("yourOutId"); // hint 此处可能会抛出异常,注意catch SendSmsResponse response = acsClient.getAcsResponse(request); /*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());*/ return response.getMessage(); /*if (response.getCode().equals("OK")) return true; else return false;*/ } /** * 功能描述:发送短信内容 * * @param phone 电话号码 * @param productName 产品名 * @param time 时间 * @param area 区域 * @return boolean 是否发送成功 * @author cakin * @date 2020/8/18 * @description: IOException */ public static boolean sendContent(String phone, String productName, String time, String area) throws ClientException { // 判断短信开关 if (!isSend()) { return true; } // 可自助调整超时时间 System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); System.setProperty("sun.net.client.defaultReadTimeout", "10000"); // 初始化acsClient,暂不支持region化 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); IAcsClient acsClient = new DefaultAcsClient(profile); // 组装请求对象-具体描述见控制台-文档部分内容 SendSmsRequest request = new SendSmsRequest(); // 必填:待发送手机号 request.setPhoneNumbers(phone); // 必填:短信签名-可在短信控制台中找到 request.setSignName("cakinCtrans"); // 必填:短信模板-可在短信控制台中找到 request.setTemplateCode("SMS_174651072"); request.setTemplateParam("{\"ProductName\":\"" + productName + "\",\"Time\":\"" + time + "\",\"Area\":\"" + area + "\"}"); // 选填-上行短信扩展码(无特殊需求用户请忽略此字段) // request.setSmsUpExtendCode("90997"); // 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者 // request.setOutId("yourOutId"); // hint 此处可能会抛出异常,注意catch SendSmsResponse response = acsClient.getAcsResponse(request); 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()); if (response.getCode().equals("OK")) return true; else return false; } /** * 功能描述:发送短信内容 * * @param phone 电话 * @param clientName 客户姓名 * @param username 用户名 * @param date 日期 * @param cost 花费 * @param total 总量 * @return boolean 是否发送成功 * @author cakin * @date 2020/8/18 */ public static boolean sendCustomerMsg(String phone, String clientName, String username, String date, String cost, String total) throws ClientException { // 判断短信开关 if (!isSend()) { return true; } // 可自助调整超时时间 System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); System.setProperty("sun.net.client.defaultReadTimeout", "10000"); // 初始化acsClient,暂不支持region化 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); IAcsClient acsClient = new DefaultAcsClient(profile); // 组装请求对象-具体描述见控制台-文档部分内容 SendSmsRequest request = new SendSmsRequest(); // 必填:待发送手机号 request.setPhoneNumbers(phone); // 必填:短信签名-可在短信控制台中找到 request.setSignName("cakinCtrans"); // 必填:短信模板-可在短信控制台中找到 request.setTemplateCode("SMS_187939083"); request.setTemplateParam("{\"csoName\":\"" + clientName + "\",\"username\":\"" + username + "\",\"date\":\"" + date + "\",\"cost\":\"" + cost + "\",\"total\":\"" + total + "\"}"); // 选填-上行短信扩展码(无特殊需求用户请忽略此字段) // request.setSmsUpExtendCode("90997"); // 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者 // request.setOutId("yourOutId"); // hint 此处可能会抛出异常,注意catch SendSmsResponse response = acsClient.getAcsResponse(request); 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()); if (response.getCode().equals("OK")) return true; else return false; } /** * @param args 参数 * @throws ClientException */ public static void main(String[] args) throws ClientException { // 发送内容 // SmsUtils.sendContent("13389185673", "手机","2020-08-08",""); // AliSendMessage.sendCustomerMsg("13389185673", "客户:客户信息", "cakin", "2020年8月", "500000.00", "4000"); AliSendMessage.sendContent("13973041937","343433"); } }
这篇关于java开发小组件(2)- Java实现阿里云短信接口的示例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性