JAVA接入短信接口,实现短信验证码功能

Wesley13
• 阅读 360

最近网站要加短信验证功能,不得不要折腾一番。好了,不多说了,说一下过程。首先是短信服务商的选择,以前没接触过,只能找度娘了,找了三家,对比一下。

价格:

1、秒嘀科技 - 短信接口、短信验证码、语音验证码、短信平台

最低充值120,单价0.048元/条;一次性充值36000时,单价0.036/条

2、容联云通讯_提供通话、短信、视频、呼叫中心、IM、流量等通讯能力

基础价0.06元/条;当一年期帐内余额达到30000时,单价0.45/条

3、创蓝-253.com为您的每一条短信验证码负责!

最低充值3600,单价0.06元/条;一次性充值50000时,单价0.05/条

对java接口文档的支持,三家都还不错;短信接收速度都在十秒之内(测试期间),可以接受;由于是个人开发者,对于价格就很敏感了,一开始就充个万把千,顶不住啊。权衡之下,选择了秒嘀科技,价格相对便宜的多,短信接收速度也在伯仲之间。

下载 java 短信接口 DEMO,了解了下文档结构,短信接口是通过POST提交URL的形式对接的。

请求地址:

https://api.miaodiyun.com/20150822/industrySMS/sendSMS

请求方式:

POST

编码格式:

UTF-8

响应格式:

JSON,XML

请求包头:

Content-type:application/x-www-form-urlencoded

请求参数说明

参数名称

类型

约束

说明

accountSid

String

必选

开发者主账号ID(ACCOUNT SID)。由32个英文字母和阿拉伯数字组成的开发者账号唯一标识符。

smsContent

String

必选

短信内容。(短信签名+短信内容。如【秒嘀科技】您的验证码是345678,30分钟输入有效。)

to

String

必选

短信接收端手机号码集合。用英文逗号分开,每批发送的手机号数量不得超过100个。

portNumber

String

可选

平台分配给开发者的端口号,暂不支持。

timestamp

String

必选

时间戳。当前系统时间(24小时制),格式"yyyyMMddHHmmss"。时间戳有效时间为5分钟。

sig

String

必选

签名。MD5(ACCOUNT SID + AUTH TOKEN + timestamp)。共32位(小写)。

注意:MD5中的内容不包含”+”号。

respDataType

String

可选

响应数据类型,JSON 或 XML 格式。默认为JSON。

请求示例:

url:

    https://api.miaodiyun.com/20150822/industrySMS/sendSMS
    
post数据:

     accountSid=a14f6bfd43ce44c9b019de57f4e2de4b&smsContent=【秒嘀科技】】您的验证码是345678,30分钟输入有效。
     &to=13896543210&timestamp=20150821100312&sig=a14f6bfd43ue44c9b019du57f4e2ee4r&respDataType=JSON

返回参数说明

参数名称

类型

约束

说明

respCode

String

必选

请求状态码,取值00000(成功: 此步响应只表明客户的短信请求发送成功,不表明短信通道已经发送短信成功。) 具体可参照《附:返回状态码列表》

failCount

String

必选

表示验证码通知短信发送失败的条数。

failList

String

可选

失败列表,包含失败号码、失败原因。

smsId

String

必选

短信标识符。一个由32个字符组成的短信唯一标识符。

返回示例:

JSON返回包体:

{
    "respCode":"00000",
    "failCount":"1",
    "failList":
    [
        {
            "phone":"13896543210",
            "respCode":"00111"
        }
    ],
    "smsId":"913945fec0204b1e94baa75a5c013f59"
    }

XML返回包体:

<?xml version="1.0" encoding="utf-8"?>
   <result>
       <respCode>00000</respCode>
       <smsId>913945fec0204b1e94baa75a5c013f59</smsId>
       <failCount>1</failCount>
       <failList>
          <phone>13896543210 </phone>
          <respCode>00111 </respCode>
    </failList>
    </result>

最核心的类是IndustrySMS

点赞
收藏
评论区
推荐文章
秃头王路飞 秃头王路飞
5个月前
webpack5手撸vue2脚手架
webpack5手撸vue相信工作个12年的小伙伴们在面试的时候多多少少怕被问到关于webpack方面的知识,本菜鸟最近闲来无事,就尝试了手撸了下vue2的脚手架,第一次发帖实在是没有经验,望海涵。languageJavaScript"name":"vuecliversion2","version":"1.0.0","desc
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
技术小男生 技术小男生
5个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
光头强的博客 光头强的博客
5个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
小森森 小森森
5个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
Wesley13 Wesley13
1年前
thinkphp集成系列之短信验证码、订单通知
现在这个短信通知泛滥的年代;应用如果没有个短信注册;你都不敢说你是搞开发的;这个验证码搞起来是不难的;但是如果刚接触也是有点不知从哪下手的迷茫;先讲下概念;1:找一个靠谱的短信验证码平台;推荐如下使用过的;下面以容联云通讯为例;其他平台一个道理;    阿里大鱼:http://www.alidayu.com/service?spma314
liam liam
7个月前
如何读取redis的手机号验证码数据,实现自动化登录测试
1、案例描述用户选择短信登录!发送短信后,后端接口逻辑已把验证码缓存在redis,!在apifox上定义对应下发登录短信接口,短信登录接口下载地址:这时候问题就来了,怎么样才能让apifox自动获取下发登录短信接口对应的手机号的验证码,自动填充到短信登录接口的code字段?2、解决思路方案一:后端通过接口返回验证码
宙哈哈 宙哈哈
1星期前
【总结】Java实现短信验证码
Java是一种流行的编程语言,验证码是一种常用的网络安全技术。Java发展至今,网上也出现了各种各样的验证码,本人初学Java,下面是我用Java实现短信验证码的总结。