java阿里大鱼短信发送
项目需要用到发送短信进行验证、推送、通知,公司选用的是阿里大鱼短信服务,阿里家工程师封装的接口,可以说是很贴心了,下面开始我们集成短信之旅吧~
首先,我们需要先看文档:https://help.aliyun.com/document_detail/55284.html?spm=a2c4g.11186623.6.557.Kspbq8
从文档上可以看出,我们提交个各项申请后会得到的信息有:AccessKeyId 、AccessKeySecret、短信签名以及短信模板(即具体发送的短信内容)。
编写工具类
在编写之前我们需要下载光网提供的sdk:https://help.aliyun.com/document_detail/55359.html?spm=a2c4g.11186623.2.8.5MTyTB
好,拿到这些信息后,接下来我们就开始编写发送短信的工具类:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsResponse;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.dysmsapi.transform.v20170525.SendSmsResponseUnmarshaller;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.HttpResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;public class SmsUtil {//产品名称:云通信短信API产品,开发者无需替换static final String product = "Dysmsapi";//产品域名,开发者无需替换static final String domain = "dysmsapi.aliyuncs.com";// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)static final String accessKeyId = "这里填写你的AccessKeyId";static final String accessKeySecret = "这里填写你的AccessKeySecret";/*** 下面这个方法只需要传进去一个Map就可以进行短信的发送操作* 调用该方法必须给这个方法的参数map put进去下面四个参数* map的key说明:* number:收信人的手机号* signName:短信签名* templateCode:短信模板模板的ID* templateParam:模板中的变量以Json的形式赋值,例如:"{\"name\":\"Tom\", \"code\":\"123\"}"* 只发送一个参数时就传一个,例如"{\"code\":\"123\"}"-----》map.put("templateParam","{\"code\":\"123\"}")* * */public static void Senders(Map<String, Object> map) throws ClientException{//可自助调整超时时间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((String) map.get("number"));//必填:短信签名-可在短信控制台中找到request.setSignName((String) map.get("signName"));//必填:短信模板-可在短信控制台中找到request.setTemplateCode((String) map.get("templateCode"));//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为request.setTemplateParam((String) map.get("templateParam"));//选填-上行短信扩展码(无特殊需求用户请忽略此字段)//request.setSmsUpExtendCode("90997");//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者/* request.setOutId("yourOutId");*///hint 此处可能会抛出异常,注意catchtry {SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);System.out.println("短信接口返回的数据----------------");System.out.println("Code=" + sendSmsResponse.getCode());System.out.println("Message=" + sendSmsResponse.getMessage());System.out.println("RequestId=" + sendSmsResponse.getRequestId());System.out.println("BizId=" + sendSmsResponse.getBizId());Thread.sleep(1000L);//查明细if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {QuerySendDetailsResponse querySendDetailsResponse = querySendDetails(sendSmsResponse.getBizId());System.out.println("短信明细查询接口返回数据----------------");System.out.println("Code=" + querySendDetailsResponse.getCode());System.out.println("Message=" + querySendDetailsResponse.getMessage());int i = 0;for(QuerySendDetailsResponse.SmsSendDetailDTO smsSendDetailDTO : querySendDetailsResponse.getSmsSendDetailDTOs()){System.out.println("SmsSendDetailDTO["+i+"]:");System.out.println("Content=" + smsSendDetailDTO.getContent());System.out.println("ErrCode=" + smsSendDetailDTO.getErrCode());System.out.println("OutId=" + smsSendDetailDTO.getOutId());System.out.println("PhoneNum=" + smsSendDetailDTO.getPhoneNum());System.out.println("ReceiveDate=" + smsSendDetailDTO.getReceiveDate());System.out.println("SendDate=" + smsSendDetailDTO.getSendDate());System.out.println("SendStatus=" + smsSendDetailDTO.getSendStatus());System.out.println("Template=" + smsSendDetailDTO.getTemplateCode());}System.out.println("TotalCount=" + querySendDetailsResponse.getTotalCount());System.out.println("RequestId=" + querySendDetailsResponse.getRequestId());}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static QuerySendDetailsResponse querySendDetails(String bizId) throws ClientException {//可自助调整超时时间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);//组装请求对象QuerySendDetailsRequest request = new QuerySendDetailsRequest();//必填-号码request.setPhoneNumber("15000000000");//可选-流水号request.setBizId(bizId);//必填-发送日期 支持30天内记录查询,格式yyyyMMddSimpleDateFormat ft = new SimpleDateFormat("yyyyMMdd");request.setSendDate(ft.format(new Date()));//必填-页大小request.setPageSize(10L);//必填-当前页码从1开始计数request.setCurrentPage(1L);//hint 此处可能会抛出异常,注意catchQuerySendDetailsResponse querySendDetailsResponse = acsClient.getAcsResponse(request);return querySendDetailsResponse;}public static void main(String[] args) throws ClientException, InterruptedException {//发短信Map<String, Object> map = new HashMap<>();//用于设置发送短信的参数map.put("number", "发送目标的手机号");map.put("signName", "请填写阿里的短信签名");map.put("templateCode", "短信模板模板的ID");map.put("templateParam", "{\"code\":\"填写验证码,后面的\不要忘记加上\"}"); //到这里短信的参数就搞定了//下面进行的是短信的发送SmsUtil.Senders(map);}
}
java阿里大鱼短信发送相关推荐
- 阿里大鱼短信发送手把手教会
阿里大鱼短信发送 1.在阿里云平台上注册账号,并登陆 点击官网后,进入页面左下方有短信: 短信服务这一项,点击 这样就可以添加发送模板: 在这里可以模仿xxx的短信模板: 这样就编好了模板,会得到一个 ...
- 阿里大鱼短信发送平台
首先登陆阿里大鱼短息发送平台 http://www.alidayu.com/ (阿里巴巴旗下) 登陆后点击管理中心,进入后台的管理中心,如图所示 进入管理中心后,点击短信签名管理,建立短信签名模板(审 ...
- Java阿里云短信发送工具类
短信服务API介绍 阿里云短信发送:调用SendSms发送短信_短信服务-阿里云帮助中心 <!--springboot项目阿里云发送短信--> <dependency>< ...
- Java 阿里大鱼 短信
准备阶段 开发者在阿里平台注册 http://www.alidayu.com/?spm=a3142.8062825.1.d10001.Iyxv2U 创建应用短信模板 获取自己的 App key 和 ...
- 阿里大鱼--短信发送API
参考链接一 参考链接二 项目中运用了阿里大鱼来实现短信的发送.主要步骤如下 1)申请短信签名 在控制台完成模板与签名的申请 2)申请短信模板 在控制台完成模板与签名的申请 3) 第一部分,获取IAcs ...
- 阿里大鱼短信发送接口开发
一. API接口介绍 alibaba.aliqin.fc.sms.num.send (短信发送) 向指定手机号码发送模板短信,模板内可设置部分变量.使用前需要在阿里大于管理中心添加短信签名与短信模板. ...
- Java阿里大鱼短信接入
(这个是阿里云里面的哈,不是淘宝里面的两种还是不一样;阿里云后台 短信服务里面的) 短信推送在很多项目中都有用到,总结一下吧,下次直接copy代码!! 关于accesskeyId和key可以查看API ...
- 阿里大鱼php发送短信,阿里大鱼短信发送PHP代码
首先 请下载阿里大鱼的SDK短信代码 选择PHP版本的 然后应用如下代码即可 import("@.ORG.alidayu.TopSdk","",". ...
- php阿里大鱼短信接口,阿里大鱼短信发送接口demo
[实例简介]这是一个阿里大于的短信接口示例demo,修改代码中的 appkey 和 secretkey即可 发短信验证码 [实例截图] [核心代码] include "AlibabaAliq ...
最新文章
- C++ 关于方法传值
- linux进程中对信号的屏蔽,linux进程中的信号屏蔽
- VB-VB.NET中 从字符串“XX”到类型“Double”的转换无效
- T-SQL Enhancement in SQL Server 2005[下篇]
- Android 访问权限设置
- 【监控笔记】【2.2】扩展事件——死锁监控
- 通过VScode进行git的版本管理
- 提示java不是内部命令_Win7命令窗口提示“javac不是内部或外部命令”怎么解决?...
- android 支付宝第三方支付
- jsp网站用什么虚拟主机
- 腾讯云 接口验签 使用qcloud-java-sdk
- SFP光模块的多模和单模区别
- HTML+CSS+移动端前端
- 用JAVA编写MD5大写32位加密
- STM32 MFRC522 IC读卡 程序及原理图
- 计算机应用与英语教学的深度融合,浅谈计算机应用与英语教学的整合
- 【周志华机器学习】五、神经网络
- linux sh语法进入目录,Linux_常用的Linux shell命令详解收集整理,1 文件与目录操作命令 
1.1文 - phpStudy...
- stm32 软件怎么设置写保护_STM32 , 写保护问题! (amobbs.com 阿莫电子论坛)
- python网页版百度_python,_爬虫 页面不存在_百度搜索,python - phpStudy
热门文章
- 关于Job for network.service failed because the control process exited with error code.
- 使用certbot为你的网站免费上https
- linux数据恢复软件extunelete安装及实战讲解
- php对word文档进行操作,PHP操作Word文档
- MAVEN超详细教程
- Python查看微信共同好友
- ccf会议和期刊目录 (2019 年)
- 家居装修类APP开发需要开发什么功能?
- 优秀数智生态伙伴|长春乐为科技马小明:三年前,我就开始向客户深度经营转型...
- 24届近5年北京工业大学自动化考研院校分析