Java实现发送手机验证码
来源:互联网 发布:虚与委蛇 知乎 编辑:程序博客网 时间:2024/05/01 23:55
向手机发送验证码在用户注册等等业务中会用到,下面我来介绍如何用Java实现向手机发送验证码。
笔者此处使用的是阿里云的短信服务,首先需要登录阿里云官方网站,找到并开通短信服务,然后需要申请短信签名和模版,
短信签名即一般短信开头用【】扩起的内容,填写完成后申请,一般都能申请通过,个人申请最多只能申请一个短信签名。接下来申请短信模版,
申请短信模版需按照一定的格式,格式在阿里云官网上有详细说明,此处不再赘述。
申请成功后,查看短信模版的模版CODE,在稍后的源代码中需要用到这个信息。
在得到上述模版CODE后,还需要获得Access Key ID 和Access Key Secret ,获得的方法是在页面的右上角用户名处有一个AccessKeys ,点击就可以看到自己的Access Key ID和Access Key Secret .
阿里云提供了Java短信服务的API,但是看起来稍有些麻烦, 在网上有一些方法介绍要创建一个APPKey的方法,目前阿里云主页已经改版,这种方法不再适用。万事具备,下面就来分享和介绍源代码。
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;public class SendCode {public static SendSmsResponse sendSms(String phoneNumber,String code) throws ClientException {System.setProperty("sun.net.client.defaultConnectTimeout", "10000");//不必修改System.setProperty("sun.net.client.defaultReadTimeout", "10000");//不必修改 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "**********", "*********");//"***"分别填写自己的AccessKey ID和SecretDefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Dysmsapi", "dysmsapi.aliyuncs.com");//不必修改IAcsClient acsClient = new DefaultAcsClient(profile);//不必修改SendSmsRequest request = new SendSmsRequest();//不必修改request.setPhoneNumbers(phoneNumber);//****处填写接收方的手机号码request.setSignName("孙大大通讯");//此处填写已申请的短信签名request.setTemplateCode("SMS_79105048");//此处填写获得的短信模版CODErequest.setTemplateParam("{\"code\":\""+code+"\"}");//笔者的短信模版中有${code}, 因此此处对应填写验证码 SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);//不必修改return sendSmsResponse;}public static void main(String[] args) throws ClientException, InterruptedException {SendSmsResponse response = sendSms(phoneNumber,code);}}
引用上述源代码需要导入两个jar包,以下是jar包的下载地址:点击打开链接,提取密码为kldm。
最后在阿里云短信服务里充值上两元钱,就可以成功的通过Java向手机发送验证码了!
阅读全文
1 0
- java实现手机发送验证码
- java实现发送手机验证码
- Java实现发送手机验证码
- java发送手机验证码
- 用户登录,实现发送手机验证码。
- js实现手机验证码发送
- java功能模块--给手机发送验证码
- java给手机发送验证码思路
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- HDU3874
- extern的总结
- 浅谈数据治理
- Demo_JDBC_CRUD(在MyEcilpse中对MySQL的数据进行增删改查)
- bzoj 2286 虚树
- Java实现发送手机验证码
- 【c++】c++模板类,实现二叉树非递归遍历
- ios面试, 工作葵花宝典之OC最实用的runtime总结
- tensorflow判断两个tensor是否完全相同
- Android 开机自动启动App
- Java线程面试题 Top 50
- 笔试笔记(八)
- 使用Django建站
- No qualifying bean of type [com.jj.mapper.UserMapper] found for dependency