最近网站要加短信验证功能,不得不要折腾一番。好了,不多说了,说一下过程。首先是短信服务商的选择,以前没接触过,只能找度娘了,找了三家,对比一下。
价格:
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×tamp=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