短信接口是什么东西?

Python018

短信接口是什么东西?,第1张

我来给你介绍一下短信接口就是短信SDK、API,以下就是我编辑的java短信接口,已经测试请求步骤。

单条短信接口:此接口为客户发送单条短信提供支持

安全接口

安全接口的数据传输经过加密、压缩,能够保障数据传输安全,如果有安全性要求,建议选用安全接口;

安全接口所接收、响应的数据,均经过AES加密,在数据加密前允许使用gzip算法压缩数据。

数据加密方式:AES;

加密算法:AES/ECB/PKCS5Padding;

压缩算法:gzip 【建议进行数据压缩】

请求

链接

http://ip:port/inter/sendSingleSMS

参数

参数类型传输方式描述appIdStringhttp头信息传输用户Appid(必填)gzipStringhttp头信息传输是否启用GZIP压缩【非必填】

on :是encodeStringhttp头信息传输字符集【非必填】

如果不填,默认UTF-8编码集,此字符集必须与实际传输数据字符集相同mobileString1、将所有参数拼装成json串后;

2、将json串进行AES加密;

3、加密后的byte数组通过post直接传输;手机号(必填)contentString短信内容(必填)timerTimeString定时发送时间(选填,定时时间在90天之内)

格式:yyyy-MM-dd HH:mm:ss

如果不填,则为即时发送customSmsIdString自定义消息ID(选填)

最长32位extendedCodeString扩展码(选填)

最长支持12位,如果最终号码长度超长,会截取扩展码,请根据我司建议位数提交requestTimelong请求时间(必填)

格式:时间毫秒数

安全验证字段,防止同一个请求重复提交;

短信平台根据requestTime与requestValidPeriod共同判断请求是否有效,针对无效的请求,短信平台响应错误;

判断方法:请求时间 + 请求有效时间>当前时间 ? 有效 : 无效;requestValidPeriodint请求有效时间(必填)[单位:秒]

描述同上示例

1、将参数拼装成json串

{

"mobile":"15538850000",

"content":"【清华大学】 i love you ! ",

"timerTime":"2017-03-15 12:00:00",

"extendedCode":"112",

"customSmsId":"2017010709302911",

"requestTime":1490588340964,

"requestValidPeriod":30

}

2、将json串转化为UTF-8编码的byte数组

Byte[] data = json.toBytes["UTF-8"]

3、如果需要gzip压缩,则压缩数据,并放入标示,[非必需步骤]

data =gzip.com (data)

http.setHead("gzip","on")

4、通过AES加密

data = AES. encryption (secretKey,data,算法)

5、将appId放入http head

http.setHead("appId",appId)

6、通过http post方法传输

Byte[] response = http.post(url,data)

响应

参数

参数类型传输方式描述resultStringhttp头信息传输请求状态码,详见本文档《接口状态码表》

当result不是SUCCESS时,不会响应下面参数数据。mobileString传输过来的数据是加密后的byte数组手机号smsIdString消息IDcustomSmsIdString客户自定义SMSID示例

1、从http头信息获取请求状态,如果code不是SUCCESS,不用进行下面几步

String code = http.getHead("reasult")

2、从响应流获取响应数据,并解密

Byte[] data = Response.getdata()

data = AES. decryption (secretKey, data,算法)

3、如果请求信息中有压缩标示,返回的数据也是压缩过的,需要解压缩;[非必须步骤]

data = GZIP.dcom(data)

4、将数据转换成JSON串

String json = new String(data,"UTF-8")

{

"mobile":"15538850000",

"smsId":"20170392833833891100",

"customSmsId":"20170392833833891100"

接入指导

步骤一:登录亿美软通官网

步骤二:注册并获取客户标识(AppId)和客户密钥(secretKey)账号

步骤三:参照接口文档和DEMO,对接接口并测试

步骤四:测试通过,正式上线,充值使用

这个首先你要确定一下短信平台,他们会给你提供短信实现的接口文档。

比如:

public static String doPost(String reqUrl, Map parameters, String recvEncoding)

{

HttpURLConnection url_con = null

String responseContent = null

try

{

StringBuffer params = new StringBuffer()

Iterator iter = parameters.entrySet().iterator()

while (iter

.hasNext())

{

Map.Entry element = (Map.Entry)iter.next()

params.append(element.getKey().toString())

params.append("=")

params.append(URLEncoder.encode(element.getValue().toString(),

requestEncoding))

params.append("&")

}

if (params.length() >0)

{

params = params.deleteCharAt(params.length() - 1)

}

URL url = new URL(reqUrl)

url_con = (HttpURLConnection)url.openConnection()

url_con.setRequestMethod("POST")

System.setProperty("sun.net.client.defaultConnectTimeout",

String.valueOf(connectTimeOut))

System.setProperty("sun.net.client.defaultReadTimeout",

String.valueOf(readTimeOut))

url_con.setDoOutput(true)

byte[] b = params.toString().getBytes()

url_con.getOutputStream().write(b, 0, b.length)

url_con.getOutputStream().flush()

url_con.getOutputStream().close()

InputStream in = url_con.getInputStream()

BufferedReader rd = new BufferedReader(

new InputStreamReader(in,

recvEncoding))

String tempLine = rd.readLine()

StringBuffer tempStr = new StringBuffer()

String crlf = System.getProperty("line.separator")

while (tempLine != null)

{

tempStr.append(tempLine)

tempStr.append(crlf)

tempLine = rd.readLine()

}

responseContent = tempStr.toString()

rd.close()

in.close()

}

catch (IOException localIOException)

{

}

finally

{

if (url_con != null)

{

url_con.disconnect()

}

}

return responseContent

}

public static String sendTelCode(String mobile,String telcode){

Map<String ,String>map = new HashMap<String ,String>()

map.put("account", "Babo")

map.put("mobile", mobile)

map.put("pswd", "D3dddD")

try {

map.put("msg", java.net.URLEncoder.encode("您的验证码是"+telcode+",若非本人操作请忽略","utf-8"))

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

String getValue = doPost("http://www.ibabo.cn:7788/msg/HttpSendSM", map, "UTF-8")

System.out.println(getValue)

return getValue

}