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

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

价格:

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返回包体:


   
       00000
       913945fec0204b1e94baa75a5c013f59
       1
       
          13896543210 
          00111 
    
    


最核心的类是IndustrySMS

package com.miaodiyun.httpApiDemo;

import com.miaodiyun.httpApiDemo.common.Config;
import com.miaodiyun.httpApiDemo.common.HttpUtil;

/**
 * 验证码通知短信接口
 * 
 * @ClassName: IndustrySMS
 * @Description: 验证码通知短信接口
 *
 */
public class IndustrySMS
{
	private static String operation = "/industrySMS/sendSMS";

	private static String accountSid = Config.ACCOUNT_SID;
	private static String to = "1361305****";
	private static String smsContent = "【秒嘀科技】您的验证码是345678,30分钟输入有效。";

	/**
	 * 验证码通知短信
	 */
	public static void execute()
	{
		String url = Config.BASE_URL + operation;
		String body = "accountSid=" + accountSid + "&to=" + to + "&smsContent=" + smsContent
				+ HttpUtil.createCommonParam();

		// 提交请求
		String result = HttpUtil.post(url, body);
		System.out.println("result:" + System.lineSeparator() + result);
	}
}


你可能感兴趣的:(JAVA接入短信接口,实现短信验证码功能)