阿里云短信验证_基于阿里云OpenAPI实现

Posted fench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云短信验证_基于阿里云OpenAPI实现相关的知识,希望对你有一定的参考价值。

阿里云短信服务

背景简介:

短信验证以及短信通知,目前已经应用的非常广泛,最近因项目需要,需要将原来的短信接口换成阿里云的的短信服务,原项目集成的短信服务能够实现短信的发送以及短信的验证整个过程,简单的来说,原来的短息服务,只需应用申请获取短信,短息服务器会发送短信到指定的手机,用户将验证码发送到短信服务商的服务器,服务器做出验证返回是否通过,而阿里云仅提供短信发送服务,需要自己开发短信的验证。下面简单的介绍一下:

1.获取阿里云AccessKey

用户->Accesskeys:需要自己创建一个AccessKey

技术图片

2.创建短信签名:

阿里云控制台->短信服务->国内短信->签名管理: 创建自己的签名(签名主要是指应用的名字,如:中国移动,建设银行)

技术图片

3.创建短信模板:

国内短信->模板管理:创建自己的短信通知模板(如:您正在申请手机注册,验证码为:$code,5分钟内有效!)

技术图片

 

 技术图片

4.基于阿里云openAPI实现短信发送模块

注意:这里项目中需要导入aliyun-java-sdk-core-4.1.0.jar,额外注意:javaweb项目中,需要将aliyun-java-sdk-core-4.1.0.jar 以及gson-2.8.5.jar 导入到tomcat 的lib目录下,不然会出错。

 1 package Surpport;
 2 import com.aliyuncs.CommonRequest;
 3 import com.aliyuncs.CommonResponse;
 4 import com.aliyuncs.DefaultAcsClient;
 5 import com.aliyuncs.IAcsClient;
 6 import com.aliyuncs.exceptions.ClientException;
 7 import com.aliyuncs.exceptions.ServerException;
 8 import com.aliyuncs.http.MethodType;
 9 import com.aliyuncs.http.ProtocolType;
10 import com.aliyuncs.profile.DefaultProfile;
11 
12 
13 /*
14 pom.xml
15 <dependency>
16   <groupId>com.aliyun</groupId>
17   <artifactId>aliyun-java-sdk-core</artifactId>
18   <version>4.0.3</version>
19 </dependency>
20 */
21 
22 /****
23  *  阿里云短信验证工具
24  *  调用示例:
25  *  SmsUtil sednMessage = new SmsUtil();
26  *  sednMessage.SendSMS("手机号", "需要发送的验证码");
27  * @author finch
28  *
29  */
30 public class SmsUtil 
31     
32     
33     /*************阿里云短信验证参数*****************/
34     /******
35      * 参考 阿里云 OpenAPI
36      * 
37      */
38     public String accessKeyId ="创建的AccessKeyId";     //AccessKeyId
39     public String accessSecret="获取的AccessKeySecret";  //AccessKeySecret
40     public String  SignName ="短信签名";                    //短信签名名称
41     public String  TemplateCode ="SMS_短信模板ID";         //短信模板ID
42     
43     
44      
45     public void SendSMS(String PhoneNumber,String RandomCode) 
46 
47 
48  DefaultProfile profile = DefaultProfile.getProfile("default",
49  accessKeyId,accessSecret); IAcsClient client = new DefaultAcsClient(profile);
50 
51     CommonRequest request = new CommonRequest();
52     request.setProtocol(ProtocolType.HTTPS);
53     request.setMethod(MethodType.POST);
54     request.setDomain("dysmsapi.aliyuncs.com"); request.setVersion("2017-05-25");
55     request.setAction("SendSms"); //短信发送类型:
56     request.putQueryParameter("PhoneNumbers", PhoneNumber); //接受短信的号码
57     request.putQueryParameter("SignName", SignName); //短信签名
58     request.putQueryParameter("TemplateCode",TemplateCode ); //短信模板id
59     request.putQueryParameter("TemplateParam", "\\"code\\":\\""+RandomCode+"\\""); //随机验证码
60    try  CommonResponse response = client.getCommonResponse(request);
61         System.out.println(response.getData()); //调用结果显示 
62           catch (ServerException e)
63        
64             e.printStackTrace(); 
65         catch (ClientException e) 
66     e.printStackTrace(); 
67 
68     
69 

 

5.实现短信验证流程

技术图片

 

以上是关于阿里云短信验证_基于阿里云OpenAPI实现的主要内容,如果未能解决你的问题,请参考以下文章

阿里云发送短信验证码失败

Android实现阿里云短信业务获取验证码-后端SSM+redis

JAVA实现《阿里云发送短信验证码以及短信通知》

java实现阿里云发送短信验证码

java实现阿里云发送短信验证码

新版阿里云短信服务之发送验证码接口快速实现