需求

需要有发送手机短信的平台,这里以阿里云为例。如果没有,就不要试了,不会成功的。

创建一个java项目,直接上代码。

第一种书写方式:

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;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", "LTAIhbdKGluLaFhY", "gt7DJEk6j8Xh4pVlfbTuU7XUt6jCc3");//后两个分别填写自己的AccessKey ID和Secret        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Dysmsapi", "dysmsapi.aliyuncs.com");//不必修改        IAcsClient acsClient = new DefaultAcsClient(profile);//不必修改        SendSmsRequest request = new SendSmsRequest();//不必修改        //此处填写接收方的手机号码        request.setPhoneNumbers(phoneNumber);        //此处填写已申请的短信签名        request.setSignName("活动验证");        //此处填写获得的短信模版CODE        request.setTemplateCode("SMS_12830503");                //此处为模板中的变量替换JSON串,根据自己模板样式改动        request.setTemplateParam("{\"product\":\"老王\", \"code\":"+code+"}");        //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)        //request.setSmsUpExtendCode("90997");        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者        //request.setOutId("yourOutId");   SendSmsResponse sendSmsRes = acsClient.getAcsResponse(request);//不必修改        return sendSmsRes;
}    public static void main(String[] args) throws ClientException, InterruptedException {        // 前一个参数为接收短信的手机号、后一个参数为短信验证码        SendSmsResponse response = sendSms("*******", "66666");    }
}

第二种书写方式:

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;public class SendNote {public static void main(String[] args) throws 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产品域名(接口地址固定,无需修改)//替换成你的AKfinal String accessKeyId = "LTAIhbdKGluLaFhY";//你的accessKeyId,final String accessKeySecret = "gt7DJEk6j8Xh4pVlfbTuU7XUt6jCc3";//你的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个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如“0085200000000”request.setPhoneNumbers("********");//必填:短信签名-可在短信控制台中找到request.setSignName("活动验证");//必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版request.setTemplateCode("SMS_12830503");//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为//友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败request.setTemplateParam("{\"product\":\"老王\", \"code\":\"666666\"}");//可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)//request.setSmsUpExtendCode("90997");//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者request.setOutId("yourOutId");//请求失败这里会抛ClientException异常SendSmsResponse sendSmsResponse  = acsClient.getAcsResponse(request);if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {//请求成功System.out.println("短信发送成功");System.out.println(sendSmsResponse);}}}

两种方式基本差不多,看你选哪种了。

短信模板一定要和你自己的一样,否则也不会成功。

java 实现 手机接收短信验证码功能相关推荐

  1. Java演示手机发送短信验证码功能实现

    我们这里采用阿里大于的短信API 第一步:登陆阿里大于,下载阿里大于的SDK a.在阿里大于上创建自己的应用 b.点击配置管理中的验证码,先添加签名,再配置短信模板 第二步:解压相关SDK,第一个为j ...

  2. 手机接收短信验证码生成(纯数字)

    手机接收短信验证码生成--纯数字 Random类中的nextInt( )方法 nextInt() 纯数字短信验证码生成 Random类中的nextInt( )方法 nextInt() 不带参数,不带参 ...

  3. java + maven 实现发送短信验证码功能

    如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenzikj.com/doc/sdk.html ...

  4. Java用户注册服务器发送短信验证码功能实现

    <–start–> 当客户端发送了http的请求给服务器之后,服务器获取手机号然后调用短信平台给该手机号发送短信验证码. 给服务器发送请求的js代码: <script type=&q ...

  5. 使用中国网建实现Java向手机发送短信的功能

    公司需要使用向指定手机发送验证码的功能,在网上搜了一下,有使用'短信猫'的,有使用WebService的,有使用第三方的,我使用的是中国网建提供的API来实现: 中国网建注册送五条短信和三条彩信做测试 ...

  6. Java开发完整的短信验证码功能

    现代互联网项目中,很多场景下都需要使用一种叫做验证码的技术,常用的有图片验证码,滑块验证码,短信验证码等,本文章描述的就是短信验证码的一个使用教程,从0开始完成一个验证码功能的开发. 版权说明 本文中 ...

  7. Java实现手机发送短信验证码

    发送短信验证码首先要在互亿无线短信平台去开通短信服务,地址"ihuyi.com" 一定要留好自己申请的API ID,API key和模板 参数说明: 代码示例: pom导包 < ...

  8. Java利用Redis实现短信验证码功能

    本文将详情介绍从Redis+阿里云注册短信服务到后端调用等过程. 这个功能比较实用的地方就是注册用户的时候,防止一个用户多个账户注册,因为手机号毕竟有限 短信服务 首先,打开你的阿里云 话不多说,第一 ...

  9. 阿里云——Java实现手机短信验证码功能

    目录 如何实现短信验证码功能 1.准备工作 1.1 注册 阿里云 账号,并完成实名认证.找到短信服务功能. 1.2 开通短信服务 1.3 签名与模板 1.4 获取AccessKey 1.5 打开短信控 ...

最新文章

  1. 怎么在大学当院系负责人呢?一个case study
  2. 深入探究ConvNets vs. Transformers,哪种预训练模型的可迁移性更好?
  3. 关闭 php opcache
  4. apt mysql 5.1_linux下apt安装mysql导致mysql.user table is damaged
  5. 哪吒U Pro试驾:透明A柱超实用、满电500公里保底续航
  6. linux sd卡空间,充分利用树莓派中的SD卡空间
  7. DeeCamp,(可能是)全球最好的 AI 夏令营
  8. matlab求解数学题,实验二Matlab求解数学问题
  9. 【工具】[Listary]好用到哭的快速搜索工具
  10. C语言如何打开shx文件,shx文件怎么打开 .shx格式打开方式解答
  11. 苹果妙控鼠标二代(Magic Mouse 2 )如何连接到 Window 10系统
  12. ubuntu安装WPS字体缺失的解决办法
  13. linux服务器上有些文件看不到,linux执行脚本时找不到文件怎么解决
  14. linux/android中aplay/arecord用法以及命令
  15. linux awk 打印最后一列,使用awk打印从第n个到最后一个的所有列
  16. android和夜神模拟器哪个好,天天模拟器和夜神安卓模拟器哪个好 两者功能对比...
  17. gdal gdal2tiles.py 的使用
  18. java 山寨qq源代码_求一个山寨qq的源代码,要java语言的~谢谢
  19. 用Java输出100内的质数和合数(包含100)
  20. 这款开源终端工具逼格更高!比 Xshell 好用

热门文章

  1. 【java多线程学习】多线程的基本概念
  2. pdf转ppt在线转换网站
  3. 文件上传漏洞的小总结
  4. windows10纯净版系统安装/重装详细教程
  5. LORA大模型加速微调和训练算法
  6. Python 输入任意整数,打印输入的数字是几位数
  7. JavaSwing_2.8: JTextArea(文本区域)
  8. Android FTP功能开发基于swiftp
  9. 重载和重写的区别是什么
  10. 【Spring】AOP(二)自定义来实现AOP