java实现发送手机验证码

Java实现发送手机验证码

原创 2017年08月26日 21:01:07

· 标签:

· java /

· 源代码 /

· 阿里云 /

· 验证码

· 1969

向手机发送验证码在用户注册等等业务中会用到,下面我来介绍如何用Java实现向手机发送验证码。

笔者此处使用的是阿里云的短信服务,首先需要登录阿里云官方网站,找到并开通短信服务,然后需要申请短信签名和模版,

扫描二维码关注公众号,回复: 2217030 查看本文章

短信签名即一般短信开头用【】扩起的内容,填写完成后申请,一般都能申请通过,个人申请最多只能申请一个短信签名。接下来申请短信模版,

申请短信模版需按照一定的格式,格式在阿里云官网上有详细说明,此处不再赘述。

申请成功后,查看短信模版的模版CODE,在稍后的源代码中需要用到这个信息。

在得到上述模版CODE后,还需要获得Access Key ID 和Access Key Secret ,获得的方法是在页面的右上角用户名处有一个AccessKeys ,点击就可以看到自己的Access Key ID和Access Key Secret .

阿里云提供了Java短信服务的API,但是看起来稍有些麻烦, 在网上有一些方法介绍要创建一个APPKey的方法,目前阿里云主页已经改版,这种方法不再适用。万事具备,下面就来分享和介绍源代码。

[java] view plain copy

1. import com.aliyuncs.DefaultAcsClient;  

2. import com.aliyuncs.IAcsClient;  

3. import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest;  

4. import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsResponse;  

5. import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;  

6. import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;  

7. import com.aliyuncs.dysmsapi.transform.v20170525.SendSmsResponseUnmarshaller;  

8. import com.aliyuncs.exceptions.ClientException;  

9. import com.aliyuncs.http.FormatType;  

10. import com.aliyuncs.http.HttpResponse;  

11. import com.aliyuncs.profile.DefaultProfile;  

12. import com.aliyuncs.profile.IClientProfile;  

13. import java.nio.charset.Charset;  

14. import java.text.SimpleDateFormat;  

15. import java.util.Date;  

16. import java.util.UUID;  

17.   

18. public class SendCode {  

19.     public static SendSmsResponse sendSms(String phoneNumber,String code) throws ClientException {  

20.         System.setProperty("sun.net.client.defaultConnectTimeout""10000");//不必修改  

21.         System.setProperty("sun.net.client.defaultReadTimeout""10000");//不必修改  

22.         IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou""**********""*********");//"***"分别填写自己的AccessKey IDSecret  

23.         DefaultProfile.addEndpoint("cn-hangzhou""cn-hangzhou""Dysmsapi""dysmsapi.aliyuncs.com");//不必修改  

24.         IAcsClient acsClient = new DefaultAcsClient(profile);//不必修改  

25.         SendSmsRequest request = new SendSmsRequest();//不必修改  

26.         request.setPhoneNumbers(phoneNumber);//****处填写接收方的手机号码  

27.         request.setSignName("孙大大通讯");//此处填写已申请的短信签名  

28.         request.setTemplateCode("SMS_79105048");//此处填写获得的短信模版CODE  

29.         request.setTemplateParam("{\"code\":\""+code+"\"}");//笔者的短信模版中有${code}, 因此此处对应填写验证码   

30.         SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);//不必修改  

31.         return sendSmsResponse;  

32.     }  

33.     public static void main(String[] args) throws ClientException, InterruptedException {  

34.         SendSmsResponse response = sendSms(phoneNumber,code);  

35.     }  

36. }  


引用上述源代码需要导入两个jar包,以下是jar包的下载地址:点击打开链接,提取密码为kldm。
最后在阿里云短信服务里充值上两元钱,就可以成功的通过Java向手机发送验证码了!

猜你喜欢

转载自blog.csdn.net/qq_40606932/article/details/79462843