Springboot发送短信验证码

前言

短信验证码是通过发送验证码到手机的一种有效的验证码系统。主要用于验证用户手机的合法性及敏感操作的身份验证。

第三方短信发送平台有很多种,各个平台有各自的优缺点,在选择的时候可以根据自己的具体实际情况定夺。此篇文章讲述了Springboot集成SMS发送短信。

准备

  1.用户注册。百度SMS短信通,进入官方页面,注册账号;官网:http://sms.webchinese.cn/

  

  2.登陆获取必要信息

  

  3.记录下重要的信息

  账号 、密码、短信密钥。(编码时必要)

绑定手机、邮箱。(账号安全)

编码

1.搭建springboot项目。

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.测试。

//SendMessageUtil.send("SMS账户","接口秘钥","目标号码","发送内容");
使用junit测试,正确填写send方法的参数。无论成功失败都会返回响码,根据响应码判断是否成功,如果失败也可查出失败原因。

springboot+网建短信通发送短信相关推荐

  1. php对接短信宝,php使用短信宝发送短信的方法

    本文主要和大家分享php使用短信宝发送短信的方法,使用短信宝需要先在官网上注册一个用户名密码,希望能帮助到大家. 注意:如果没有购买短信,则只用来测试短信速度,短信内容不可编辑,只可修改验证码数字.. ...

  2. TP5 短信宝 发送短信验证码

    一.请求发送短信接口 public function sendCode(){//接收手机号$data['phone'] = input('get.phone');//判断是否接到手机号$validat ...

  3. Java调用SMSLib用单口短信猫发送短信详解

    技术园地 当前位置:短信猫网站主页 > 技术园地 > [转载]Java调用SMSLib用单口短信猫发送短信详解 发布时间:2017/02/09 点击量:620 SMSLib是Apache的 ...

  4. linux 短信功能,Android调用系统短信功能发送短信

    Android调用系统短信功能发送短信有两种方法: 第一种,设定发送的号码,和内容,界面没有联系人,群组组等按钮,如下图所示: 代码如下: Uri smsToUri = Uri.parse(" ...

  5. 安卓短信功能全解:调用系统短信功能发送短信、彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信。

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓短信功能全解:调用系统短信功能发送短信.彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信. 首先需要 ...

  6. 如何使用阿里巴巴短信服务发送短信验证码

    关于调用阿里巴巴短信服务发送短信验证的接口的方法: 用户的注册 1.首先我们需要在阿里大于(www.alidayu.com)注册一个账号登录 点击进入控制台 点击使用短信服务 然后需要你申请签名和模板 ...

  7. tp6框架结合阿里短信接口发送短信并记录redis

    tp6框架结合阿里短信接口发送短信并记录redis 1> 开通阿里云短信服务 2> 安装redis服务 3>config配置文件 创建sms.php 文件,配置阿里云短信信息 ret ...

  8. 使用阿里云的短信服务发送短信

    原文地址使用阿里云的短信服务发送短信 在给客户开发一个信息发送功能的时候,需要涉及到短信的发送,短信发送一般不同的厂商提供的接口不同,处理方式也不太一样,之前用的一个厂商的,提供了一个封装类就很容易发 ...

  9. 移动MAS短信平台发送短信

    MAS短信平台发送短信分为两种方式 参考文档下载 一.sdk调用 using mas.ecloud.sdkclient; using System;namespace 短信发送 {class Prog ...

最新文章

  1. 读Lodash源码——chunk.js
  2. 计算机网络测试两个主机连通性,计算机网络试卷A
  3. Jenkins Pipeline 语法
  4. 全连接神经网络_二十九.全连接神经网络原理
  5. 那些高曝光的Annotation(@ComponentScan、@PropertySource与@PropertySources、@Import与ImportResource)
  6. drools rule (二) LHS语法详解
  7. 苹果画画软件_入手新iPad,这几款绘画软件必不可少!
  8. java计算机毕业设计网上购物商城源码+系统+数据库+lw文档+mybatis+运行部署
  9. 亿图图示(试用版)无水印导出流程图【2021最新】
  10. Hexo及Next主题配置(最新版)
  11. 关于民族类型的下拉框
  12. 《如何学商学》及听课感想
  13. 阿里云OSS删除文件详细步骤
  14. 技术帖:如何把mobi文件转化成pdf
  15. JavaScript数据类型 - String类型
  16. Qt 5.7设置调试器
  17. 某IC卡加密方法初探
  18. Oracle数据库学习教程
  19. JavaWeb专栏之(一):什么是JavaWeb?
  20. 颜色的前世今生12·RGB显色系统详解(中)

热门文章

  1. java jcifs ntlm_JCIFS NTLM
  2. 狗语翻译器热销?神马玩意
  3. 呵呵,谢谢朋友们的关心
  4. git命令学习笔记2(路飞学城)
  5. 在Linux搭建Kafka集群
  6. 支持向量机之SMO算法
  7. centos 7 防火墙配置和白名单问题
  8. DGIOT国内首家轻量级物联网开源平台——水泵远程检测平台
  9. Xposed模块开发教程
  10. 伤仲永?一个高中生的自学编程经历。看完能少走很多弯路!