【springboot】SMS短信通实现手机验证码
1、准备
百度SMS短信通,进入官方页面,注册账号;官网:http://sms.webchinese.cn/
用户名需要记住 后面有用 密码会短信通知 密码会短信通知 密码会短信通知
登录以后在接口功能设置找到自己的短信密钥
2、依赖
<dependencies><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.1</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.4</version></dependency><dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.0.1</version></dependency>
</dependencies>
3、工具类
package com.wcl.test.utils;import java.util.Random;import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.junit.Test;public class SendMessageUtil {private static final String SMS_Url = "http://sms.webchinese.cn/web_api/";/*** @param Uid SMS用户id : lvfang123* @param Key 接口秘钥:SMS登录可查(非登录密码)* @param sendPhoneNum 短信发送目标号码* @param desc 短信内容* @return Integer(1:成功码,其他失败,具体参见注释)*/public static Integer send(String Uid,String Key,String sendPhoneNum,String desc){HttpClient client = new HttpClient();PostMethod post = new PostMethod(SMS_Url);post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");// 在头文件中设置转码//设置参数NameValuePair[] data = {new NameValuePair("Uid", Uid),new NameValuePair("Key", Key),//秘钥new NameValuePair("smsMob", sendPhoneNum),new NameValuePair("smsText", desc)};post.setRequestBody(data);try {client.executeMethod(post);} catch (Exception e) { e.printStackTrace(); }Header[] headers = post.getResponseHeaders();int statusCode = post.getStatusCode();System.out.println("statusCode:" + statusCode);for (Header h : headers) {System.out.println(h.toString());}String result ="";try {result = new String(post.getResponseBodyAsString().getBytes("gbk"));} catch (Exception e) { e.printStackTrace(); }post.releaseConnection();return Integer.parseInt(result);}/*** -1 没有该用户账户-2 接口密钥不正确 [查看密钥]不是账户登陆密码-21 MD5接口密钥加密不正确-3 短信数量不足-11 该用户被禁用-14 短信内容出现非法字符-4 手机号格式不正确-41 手机号码为空-42 短信内容为空-51 短信签名格式不正确接口签名格式为:【签名内容】-6 IP限制大于0 短信发送数量以上作为补充*/public static String getMessage(Integer code){String message;if(code > 0 ) {message = "SMS-f发送成功!短信量还有" + code + "条";}else if(code == -1){message = "SMS-没有该用户账户";}else if(code == -2){message = "SMS-接口密钥不正确";}else if(code == -21){message = "SMS-MD5接口密钥加密不正确";}else if(code == -3){message = "SMS-短信数量不足";}else if(code == -11){message = "SMS-该用户被禁用";}else if(code == -14){message = "SMS-短信内容出现非法字符";}else if(code == -4){message = "SMS-手机号格式不正确";}else if(code == -41){message = "SMS-手机号码为空";}else if(code == -42){message = "SMS-短信内容为空";}else if(code == -51){message = "SMS-短信签名格式不正确接口签名格式为:【签名内容】";}else if(code == -6){message = "SMS-IP限制";}else{message = "其他错误";}return message;}/*** 随机生成6位验证码* @return*/public static String getRandomCode(Integer code){Random random = new Random();StringBuffer result= new StringBuffer();for (int i=0;i<code;i++){result.append(random.nextInt(10));}return result.toString();}@Testpublic void testSendMessage(){//SendMessageUtil.send("SMS账户","接口秘钥","目标号码","发送内容");Integer resultCode = SendMessageUtil.send("疾风***","d41d8cd98f**********","159********","验证码:"+getRandomCode(6)); System.out.println(SendMessageUtil.getMessage(resultCode)); }
}
4、控制层调用
String code = SendMessageUtil.getRandomCode(6);
Integer resultCode = SendMessageUtil.send("用户名","密钥",“目标手机号”,"您的验证码为 "+code+" 请在三分钟内完成验证");
String message = SendMessageUtil.getMessage(resultCode); //发送后返回的信息
完成!
【springboot】SMS短信通实现手机验证码相关推荐
- java 实现注册调用短信验证码(网建SMS短信通)
一.首先,我们需要在 网建SMS短信通 上注册自己的帐号 二.登录成功之后我们可以在首页看到用户名以及短信剩余数量等信息 三.下载相关的jar包 commons-logging-1.1.1.jar c ...
- 阿里云短信平台实现手机验证码登录
阿里云短信平台实现手机验证码登录 首先创建一个工具类 工具类AliyunMessageUtil代码如下所示: public class AliyunMessageUtil {private stati ...
- 项目中发送短信--中国网建SMS短信通
中国网建SMS短信通官网 http://sms.webchinese.com.cn API:http://sms.webchinese.com.cn/api.shtml 官网API已经说得很详细了,这 ...
- SpringBoot——短信发送、手机验证码登录
目录 一.短信发送 1.1 阿里云短信服务 1.1.1 设置短信签名 1.1.2 模板管理 1.1.3 设置AccessKey 1.2 短信发送--代码开发 1.2.1 导入maven坐标 1.2.2 ...
- SMS短信通API下行接口参数
为什么80%的码农都做不了架构师?>>> JAVA发送手机短信 方法: (1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送, ...
- 【瑞吉外卖】day08:短信发送、手机验证码登录
目录 4. 短信发送编辑 4.1 短信服务介绍 4.2 阿里云短信服务介绍 4.3 阿里云短信服务准备 4.4 代码开发 5. 手机验证码登录 5.1 需求分析 5.2 数据模型 5.3 前端页面分 ...
- Java调用SMS短信通API实现发短信功能
今天想实现在Java程序中实现发送短信的功能,找了很多的短信平台,大多数都会有免费的体验短信数量,最后选择了中国网建的SMS短信平台,过程如下: 1.使用前需要注册,注册地址为:http://sms. ...
- 基于SMS短信平台给手机发送短信
JAVA发送手机短信,我知道的有三种方式,恰逢项目需求,自己整理了基于SMS的短信发送,其他两种这里就说说一下 使用webservice接口发送手机短信,这个可以使用sina提供的webservice ...
- SpringBoot+vue 使用阿里云的短信功能发送手机验证码
前言: 小编后端用的是Springboot 前端用的是vue ,小编主要是写后台,前端页面比较简陋,后期还要调优,写的不对处还望多多包涵. 环境: 需要先准备好阿里云的账号和一些必要的参数.详情见我的 ...
最新文章
- 企业的无线安全问题综合解决方案
- Django基础,Day3 - 编写 django admin
- MetInfo最新版代码审计漏洞合集
- java1.5以后新增的特性_jdk1.5之后的一些新特性
- oracle19c监听服务启动失败,Oracle19c安装(有失败成功记录)
- Zookeeper使用超级用户删除带权限的节点
- 软件定制开发,程序外包就在这
- 基于SpringBoot+Vue开发的一个知识社区分享平台
- 深入浅出计算机组成原理04 | 穿越功耗墙,我们该从哪些方面提升“性能”
- registry拉取dockerhub私有镜像
- 线程wait和notify方法
- 怎么利用外链快速上排名?
- 浙大OJ网址及ACM题目分类
- 【了解基本进位制】进制使用说明与学习
- 新一代信息技术(P56)
- 相对论【2】杆和钟的运动
- Bootstrap中的col-lg-*,col-md- *和col-sm- *有什么区别?
- echarts地图所需世界、中国、各省份的json、js数据
- Python俄罗斯方块
- 《设计模式:可复用面向对象软件的基础》——面向对象设计原则、创建型模式(笔记)
热门文章
- Centos8安装Tomcat8.5.55
- 125KHz 100cm ID 读卡电路_二维码门禁读卡器动态二维码扫描器二维码刷卡读头介绍...
- html 导航栏设计,在网页中设计导航菜单的三个原则(附案例)
- 【其他】结构技术优化算法--蚁群算法(ant colony optimization)
- autojs pro逍遥游模拟器vscode调试
- 游戏建模入门教程:绝地求生—PUBG的游戏模型制作流程
- Win10无法开机提示自动修复无法修复你的电脑的有效解决方法
- 用Python蹭别人家图片接口,做一个【免费图床】吧
- html5 图片羽化,html5+webgl仿ps羽化笔刷液态动画特效
- 乐高收割机器人_学习乐高机器人编程,孩子到底收获了什么?