阿里大于短信验证码简单实现
在进行短信验证码的发送之前需要先进行前期的准备工作:
1、获取阿里云访问密钥,秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。(阿里大于申请)
2、短信签名和短信模板(需要短信签名的名称和短信模板的模板code)
下面是阿里大于下载的demo,里面你很详细的说明了需要依赖的jar包。由于maven中没有相关jar包,需要我们先下载jar包并导入到本地库中。
导jar包到本地库
package com.alicom.dysms.api;
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.UUID;
/**
* Created on 17/6/7.
* 短信API产品的DEMO程序,工程中包含了一个SmsDemo类,直接通过
* 执行main函数即可体验短信产品API功能(只需要将AK替换成开通了云通信-短信产品功能的AK即可)
* 工程依赖了2个jar包
* 1:aliyun-java-sdk-core.jar
* 2:aliyun-java-sdk-dysmsapi.jar
*
* 备注:Demo工程编码采用UTF-8
* 国际短信发送请勿参照此DEMO
*/
public class SmsDemo {
//产品名称:云通信短信API产品,开发者无需替换
static final String product = "Dysmsapi";
//产品域名,开发者无需替换
static final String domain = "dysmsapi.aliyuncs.com";// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
static final String accessKeyId = "**yourAccessKeyId**";
static final String accessKeySecret = "**yourAccessKeySecret**";public static SendSmsResponse sendSms() 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("**15000000000**");//必填:短信签名-可在短信控制台中找到request.setSignName("**云通信**");//必填:短信模板-可在短信控制台中找到request.setTemplateCode("**SMS_1000000**");//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为//此处需要传入json串,可以使用map集合put相应的参数,再由JSON.toJSONString()转为json串request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");//选填-上行短信扩展码(无特殊需求用户请忽略此字段)//request.setSmsUpExtendCode("90997");//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者request.setOutId("yourOutId");//hint 此处可能会抛出异常,注意catchSendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);return sendSmsResponse;
}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 {//发短信SendSmsResponse response = sendSms();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());Thread.sleep(3000L);//查明细if(response.getCode() != null && response.getCode().equals("OK")) {QuerySendDetailsResponse querySendDetailsResponse = querySendDetails(response.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());}}
}
阿里大于短信验证码简单实现相关推荐
- egg.js 调用阿里云(阿里大于)短信验证码服务
1.开通阿里云短信服务 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 可以免费申请 企业短信验证码 200条 重点是: 签名名称:接收验证码内容时,[]里的文字. 短信模板code:相当于 ...
- 阿里大于短信验证码 发送失败的两类情况(触发天级流控、黑名单)
使用时,有两种发送失败的现象 第一种:开发者可以捕捉到的 比如阿里大于有一个业务限流,如下图 发送频率超过图中限制时,会返回错误码及错误信息如下: 引起这种可捕捉的错误情况很多,详细请查看阿里大于AP ...
- asp.net mvc 接入阿里大于 短信验证码发送
项目前端页面实例 第1步:登录阿里大于控制台 https://www.alidayu.com/center/user/account?spm=0.0.0.0.P1K1jG 第2步:创建应用 第3步:配 ...
- 阿里大于短信验证码接口
1.发送验证码失败 code==0 2.发送验证码成功 code==1 3.已发送验证码 code==1 4.手机号已注册 阿里大于的接口 注意:阿里大 ...
- 阿里短信 ajax,阿里大于-短信验证码接口
申请配置信息: 1.短信验证:阿里大鱼(http://www.alidayu.com/) 2.创建应用 3.下载nodejs的sdk 一.下载super-alidayu短信验证组建 npm insta ...
- 阿里大于短信平台Python版教程
阿里大于短信验证码: 阿里大于介绍: 阿里大于是一个通信平台,通过这个平台,中小企业及开发者可以在最短的时间内实现短信验证码发送.短信服务提醒.语音验证码.语音服务通知.IVR及呼叫中心.码号.后向流 ...
- 阿里大于短信——发送手机验证码
使用阿里大于的短信服务需要先去开通相应服务,具体过程:https://www.jb51.net/article/171902.htm,https://www.cnblogs.com/shubs/p/1 ...
- Java 阿里大于短信功能
最近做了阿里大于短信的功能,记录一下 创建应用,并记录下应用的KeyId 及 KeySecret 下载sdk 准备完毕,直接上代码 随便弄个 controller @ApiOperation(&qu ...
- 阿里大于短信发送调用
阿里大于使用文档 Sdk 所需sdk文件:taobao-sdk-java-auto_1455552377940-20160607.jar 下载地址:https://www.alidayu.com/ce ...
最新文章
- Spring MVC拦截器实现
- Last-Modified、If-Modified-Since 实现缓存和 OutputCache 的区别
- jQuery中.html(“xxx”)和.append(xxx)的区别和不同
- 训练softmax分类器实例_第四章.模型训练
- Android 插件化原理解析——插件加载机制
- HBase 1.x Coprocessor使用指南
- esp32 cam工作电流_我如何在家工作:Cam的生产力之痛
- 查看linux电脑总内存,如何查看Linux系统中的内存使用情况的命令呢?
- java jsp ajax_ajax的json传值方式在jsp页面中的应用
- quickreport 加急!!!
- (二)golang数组和切片
- minGW, cygwin, GnuWin32【C++的跨平台交叉编译问题】
- HDFS文件权限不足导致Sqoop执行失败
- 并发与计算机体系结构
- Linux下编写 makefile 详细教程
- 1.Kettle下载与安装
- jenkins停止僵尸作业Click here to forcibly terminate running steps
- LimeWire Basic 4.8.1 for Linux(转)
- 网络类型NAT3改NAT1 基于(联通)光猫桥接、路由器红米AX5、win10系统
- Cross Domian iFrame Exceptions 跨域iFrame屏蔽例外