在写注册接口时,需引入短信第三方接口,故使用了阿里云短信服务,在这里简单描述一下

1.引入依赖

 <!--手机发送短信验证码--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.1.0</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version></dependency>

2.短信控制台配置,这里我是使用别人注册好的,我就不在说明如何去注册了

3.代码实现

package com.tan.wwchat.common.util.sendmessage;public class StaticPeram {/*** 手机验证部分配置*/// 设置超时时间-可自行调整final static String defaultConnectTimeout  = "sun.net.client.defaultConnectTimeout";final static String defaultReadTimeout = "sun.net.client.defaultReadTimeout";final static String Timeout = "10000";// 初始化ascClient需要的几个参数final static String product = "Dysmsapi";// 短信API产品名称(短信产品名固定,无需修改)final static String domain = "dysmsapi.aliyuncs.com";// 短信API产品域名(接口地址固定,无需修改)// 替换成你的AK (产品密)final static String accessKeyId = "。。。。。";// 你的accessKeyId,填你自己的 上文配置所得  自行配置final static String accessKeySecret = "。。。。。。";// 你的accessKeySecret,填你自己的 上文配置所得 自行配置// 必填:短信签名-可在短信控制台中找到final static String SignName = "程序员旺blog";// 阿里云配置你自己的短信签名填入// 必填:短信模板-可在短信控制台中找到final static String TemplateCode = "SMS_171193247"; // 阿里云配置你自己的短信模板填入
}
package com.tan.wwchat.common.util.sendmessage;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.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;public class PhoneCode {private static String code ;/*** 阿里云短信服务配置* @param mobile* @return*/public static String getPhonemsg(String mobile) {/*** 进行正则关系校验*/System.out.println(mobile);if (mobile == null || mobile == "") {System.out.println("手机号为空");return "";}/*** 短信验证---阿里大于工具*/// 设置超时时间-可自行调整System.setProperty(StaticPeram.defaultConnectTimeout, StaticPeram.Timeout);System.setProperty(StaticPeram.defaultReadTimeout, StaticPeram.Timeout);// 初始化ascClient需要的几个参数final String product = StaticPeram.product;// 短信API产品名称(短信产品名固定,无需修改)final String domain = StaticPeram.domain;// 短信API产品域名(接口地址固定,无需修改)// 替换成你的AKfinal String accessKeyId = StaticPeram.accessKeyId;// 你的accessKeyId,参考本文档步骤2final String accessKeySecret = StaticPeram.accessKeySecret;// 你的accessKeySecret,参考本文档步骤2// 初始化ascClient,暂时不支持多regionIClientProfile profile = DefaultProfile.getProfile("cn-hangzhou",accessKeyId, accessKeySecret);try {DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product,domain);} catch (ClientException e1) {e1.printStackTrace();}//获取验证码code = vcode();IAcsClient acsClient = new DefaultAcsClient(profile);// 组装请求对象SendSmsRequest request = new SendSmsRequest();// 使用post提交request.setMethod(MethodType.POST);// 必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式request.setPhoneNumbers(mobile);// 必填:短信签名-可在短信控制台中找到request.setSignName(StaticPeram.SignName);// 必填:短信模板-可在短信控制台中找到request.setTemplateCode(StaticPeram.TemplateCode);// 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为// 友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败request.setTemplateParam("{ \"code\":\""+code+"\"}");  //此处的code和短信模板中的${code}对应// 可选-上行短信扩展码(无特殊需求用户请忽略此字段)// request.setSmsUpExtendCode("90997");// 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者request.setOutId("yourOutId");// 请求失败这里会抛ClientException异常SendSmsResponse sendSmsResponse;try {sendSmsResponse = acsClient.getAcsResponse(request);if (sendSmsResponse.getCode() != null&& sendSmsResponse.getCode().equals("OK")) {// 请求成功System.out.println("获取验证码成功!!!");} else {//如果验证码出错,会输出错误码告诉你具体原因System.out.println(sendSmsResponse.getCode());System.out.println("获取验证码失败...");}} catch (ServerException e) {e.printStackTrace();return "由于系统维护,暂时无法注册!!!";} catch (ClientException e) {e.printStackTrace();return "由于系统维护,暂时无法注册!!!";}return "true";}/*** 生成6位随机数验证码* @return*/public static String vcode(){String vcode = "";for (int i = 0; i < 6; i++) {vcode = vcode + (int)(Math.random() * 9);}return vcode;}
}
package com.tan.wwchat.common.util.sendmessage;import static com.tan.wwchat.common.util.sendmessage.PhoneCode.getPhonemsg;public class Test {public static void main(String[] args) {String phone = "18236926503";getPhonemsg(phone);}
}

java实现阿里云短信服务发送验证码相关推荐

  1. Java使用阿里云短信API发送验证码

    第一步:登录阿里云官网  控制台中找到短信服务然后开通. 第二步:获取AccessKey 设置权限 至此,accessKeyId以及accessKeySecret就已经创建好了. 第三步:创建签名和模 ...

  2. java对接阿里云短信服务详解(验证码,推广短信,通知短信)

    前言 小前提: - java:springboot框架,maven版本管理. - 阿里云:有账号,已经进行实名认证. java对接阿里云短信服务详解(验证码,推广短信,通知短信) 前言 1. 登录阿里 ...

  3. 腾讯云短信服务发送验证码

    腾讯云短信服务发送验证码 1.前言 2.进入短信服务控制台 3.创建签名 4.创建模板 5.短信-应用管理-应用列表 6.创建密钥 7.SpringBoot实现短信验证码发送 7.1 引入依赖 7.2 ...

  4. 阿里云 短信服务——开启验证码防盗刷监控

    阿里云 短信服务--短信发送频率限制 前言 系列博客 开启验证码防盗刷监控 操作步骤 添加联系人 补充(发送总量阈值和套餐包预警值) 如果博主的文章对您有所帮助,可以评论.点赞.收藏,支持一下博主!! ...

  5. 阿里云 短信服务——发送短信验证码图文教程

    阿里云短信服务 前言 配置阿里云短信服务 准备工作 1.获取Accesskey 1.2创建子账号 1.2为刚创建的用户分配短信服务的权限 2.1申请签名 2.2申请模板 2.3由于目前还没有使用到系统 ...

  6. 用阿里云短信服务--发送短信demo

    一. AccessKey管理 内容包括:开启子用户AccessKey,创建用户组,给用户组添加sms短信服务权限,创建用户,添加用户到用户组中. 详细操作: 登录阿里云,点击控制台右上角的头像,点击A ...

  7. Java 集成阿里云短信服务实现通过手机号码找回密码功能

    A. 概述 首先明确一下目标:做一个通过手机验证找回(修改)账户密码的功能,例如: 流程大致如下: 1)用户输入手机号码 2)点击获取验证码(这时候前端有一些任务,如验证手机号格式,时间倒计时,按钮状 ...

  8. 阿里云短信服务 发送短信验证码 区分业务场景

    总结: 配置好阿里云短信服务API调用所需配置项信息 按业务场景自定义标识码,做到正确发送不同场景的短信验证码 有一点需要特别注意:写这篇文章时,偶然发现阿里云短信服务API,在遇到以数字0开头的随机 ...

  9. Java后端阿里云短信平台发送短信

    最近做了关于阿里云平台发送短信的功能,记录下代码方便以后查阅: @Service public class ALiYunSMSServiceImpl implements ALiYunSMSServi ...

最新文章

  1. 通过grub硬盘安装centos7
  2. C++_泛型编程与标准库(六)
  3. 生产热更新技术_Reifenh?user引入新一代PET热成型板材生产线
  4. opencv画框返回坐标 python_python opencv鼠标事件实现画框圈定目标获取坐标信息
  5. 大连公交客运集团认真安排做好2007年防台防汛准备工作
  6. 学校计算机房的占地面积是78,国内哪所国际高中好,可以考取美国大学
  7. Ubuntu16.04安装matlab 2015b教程(含下载和激活文件)
  8. 3t中文 studio_studio 3t免费版
  9. 数学与泛型编程(7)置换算法
  10. C语言-1024小游戏
  11. Microsoft Visual SourceSafe 2005 简体中文版
  12. TruckSim Quick Start Guide(TruckSim快速入门)
  13. Combining Word and Entity Embeddings for Entity Linking
  14. 广度优先算法之狄克斯特拉算法
  15. MapReduce经典案例总结
  16. 光模块第一节之模块的制作和测试环境搭建
  17. C++中的运算符和运算符优先级总结
  18. Matlab中strcat函数使用
  19. 【起航计划 001】2015 起航计划 踏在起跑线上
  20. 淘宝客5.44+代理2.68+京东客5.1教程-解密全开版-附带小程序模版-微赞模版

热门文章

  1. SQL SERVER系统表
  2. Thinkpad Edge E440 Ubuntu14.04 无线网卡驱动 解决
  3. docker系列—聊一聊存储驱动Btrfs
  4. 硕士研究生开题报告ppT制作【转载】
  5. java 订单号 前缀_JAVA-生成有序自定义前缀加时间订单编号
  6. nrf52832概述
  7. [USACO08DEC]Patting Heads S题解
  8. 如何在JAVA项目中实现反向代理功能?
  9. java毕业设计基于JS的租房网站mybatis+源码+调试部署+系统+数据库+lw
  10. 微信回应了:这个功能我们永远不会做!