此接口为客户发送短链短信提供支持。
http://ip:port/inter/sendShortLinkSMS
| 参数 | 类型 | 传输方式 | 描述 |
|---|---|---|---|
| appId | String | http头信息传输 | 用户Appid(必填) |
| gzip | String | http头信息传输 | 是否启用GZIP压缩【非必填】 on :是 |
| encode | String | http头信息传输 | 字符集【非必填】 如果不填,默认UTF-8编码集,此字符集必须与实际传输数据字符集相同 |
| mobile | String | 13、将所有参数拼装成json串后; 14、将json串进行AES加密; 15、加密后的byte数组通过post直接传输; |
手机号(必填) 多个,最多500个 |
| customSmsId | String | 自定义消息ID(选填) 多个,与customSmsId一一对应 最长32位 |
|
| content | String | 短信内容(必填) | |
| url | String | 长连接 | |
| shortLinkRule | String | 值:1(普通规则),2(精确规则,能够定位到哪个手机号点击的) | |
| timerTime | String | 定时发送时间(选填,定时时间在90天之内) 格式:yyyy-MM-dd HH:mm:ss 如果不填,则为即时发送多条,与手机号一一对应 |
|
| extendedCode | String | 扩展码(选填) 最长支持12位,如果最终号码长度超长,会截取扩展码,请根据我司建议位数提交 多条,与手机号一一对应 |
|
| requestTime | long | 请求时间(必填) 格式:时间毫秒数 安全验证字段,防止同一个请求重复提交; 短信平台根据requestTime与requestValidPeriod共同判断请求是否有效,针对无效的请求,短信平台响应错误; 判断方法:请求时间 + 请求有效时间> 当前时间 ? 有效 : 无效; |
|
| requestValidPeriod | int | 请求有效时间(必填)[单位:秒] 描述同上 |
1、将参数拼装成json串
{
"url": "http://wwww.baidu.com",
"shortLinkRule": "1",
"smses": [{
"customSmsId": "1",
"mobile": "12100000000"
}, {
"customSmsId": "2",
"mobile": "12100000000"
}],
"content": "北京欢迎您,旅游详情请点击{#短网址#}",
"timerTime": "2020-06-27 09:10:10",
"extendedCode": "111",
"requestTime": 1593653637281,
"requestValidPeriod": 60
}
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);
| 参数 | 类型 | 传输方式 | 描述 |
|---|---|---|---|
| result | String | http头信息传输 | 请求状态码,详见本文档《接口状态码表》 当result不是SUCCESS时,不会响应下面参数数据。 |
| mobile | String | 传输过来的数据是加密后的byte数组 | 手机号 多个 |
| smsId | String | 消息ID 多个,与mobile一对一 |
|
| customSmsId | String | 客户自定义SMSID 多个,与mobile一对一 |
1、从http头信息获取请求状态,如果code不是SUCCESS,不用进行下面几步
String code = http.getHead("result");
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"
},{
"mobile":"15538850001",
"smsId":"20170392833833892100",
"customSmsId":"20170392833833891100"
}
]