Fork me on GitHub

aliyu短信验证

基于阿里大于的短信平台验证,实现项目中注册的验证,为什么选他,价格便宜,一条短信0.045元。

准备

注册

有淘宝账号的直接登录
,没有就注册。

短信签名,短信模板



签名这一栏里是你收到短信中的标题,自己填写合适的,一般只要不是敏感的词汇,审核都会过的,接下来是一个短息模板,就是短信的主体内容,搞完之后就等审核通过就可以用了

1
2
3
短信发到手机上了,我就不截图了
格式就像下面格式一样
:[签名]短息模板

申请访问有云产品API的访问权限秘钥

进到里面生成一个就好

代码编写

架包

依赖的jar包下载

下载后解压,这个不用我说吧,,,

测试代码

总结一下:主要有是5个位置要改accessKeyId,accessKeySecret,短信签名,短信模板,接收短信的手机;如果你短信模板中有多个变量,改那个json就行了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//这是我从阿里的demo中拷过来的,自行封装成个工具类,提供一个code,和phone,就OK了
public static void main(String[] args) throws ServerException, ClientException {
//设置超时时间-可自行调整
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化ascClient需要的几个参数
final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
//替换成你的AK,这个就
final String accessKeyId = "";//你的accessKeyId
final String accessKeySecret = "";//你的accessKeySecret
//初始化ascClient,暂时不支持多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();
//使用post提交
request.setMethod(MethodType.POST);
//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
request.setPhoneNumbers("11111111111");
//必填:短信签名-可在短信控制台中找到(刚才的短信签名)
request.setSignName("????");
//必填:短信模板-可在短信控制台中找到
request.setTemplateCode("????);
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
//友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
request.setTemplateParam("{\"name\":\"tom\",\"code\":\"123\"}");
//可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
//request.setSmsUpExtendCode("90997");
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
// request.setOutId("yourOutId");
//请求失败这里会抛ClientException异常
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
//请求成功
}

jar包导入maven的本地仓库

配置mvn的环境变量,将maven目录的bin目录配入环境变量中,和jdk环境配置相似配完后mvn -version测试环境
Dfile : 导入到maven仓库的jar包路径
DgroupId : 关联到本地maven仓库的父级文件夹名()
DartifactId : 导入jar包中的上层文件夹名
Dversion : 命名的版本号
mvn install:install-file -Dfile=”E:\github\dysms_java\java\api_demo\alicom-dysms-api\libs\aliyun-java-sdk-core-3.3.1.jar” -DgroupId=com.aliyun -DartifactId=aliyun-java-sdk-core -Dversion=3.3.1 -Dpackaging=jar
这是我的jar包分别把这两个架包导入本地仓库,我只示范一个。


-------------本文结束感谢您的阅读-------------