- Content-Type: application/json;charset=utf-8
- 编码: UTF-8
- 推送地址: 客户需提供状态报告以及上行推送地址
- 推送频次: 推送失败将会在1分钟、5分钟、10分钟和1小时后再次尝试推送
- 推送结果: 客户正常处理后返回0。返回其他任何数据系统都会识别为推送失败
- 推送方式: 单条推送
  {
    "account": "api003",
    "ts": "1698632973036",
    "bizContent": "10e18d2ebaebdb485cae33dca2604e10706cfa2ba255ba0bedb7ec9f7099",
    "sign": "1f55c5a8b38bc37706bbed532940ae4190814a5c96fe2c3"
}
| 参数 | 数据类型 | 是否必填 | 字段解释 | 
|---|
| account | String | 是 | 对接账号(短信平台提供) | 
| ts | String | 是 | 时间戳。单位:毫秒 | 
| bizContent | String | 是 | 加密后的请求内容。原始数据对象先转为json字符串,然后使用AES进行加密。AES使用AES/ECB/PKCS5Padding模式加密,密钥长度128位。AES加密参考 AesUtil.java | 
| sign | String | 是 | 数字签名。 说明:参数(account,ts,appSecret,bizContent)按照升序拼接,再使用SHA256生成签名。 | 
import com.google.common.base.Joiner;
import org.apache.commons.codec.digest.DigestUtils;
public static String generateSign(String account, String ts, String  bizContent, 
                                            String appSecret) throws Exception {
    Map<String, String> params = new TreeMap<>();
    params.put("account", account);
    params.put("appSecret", appSecret);
    params.put("ts", ts);
    params.put("bizContent", bizContent);
    String str = Joiner.on("&").withKeyValueSeparator("=").join(params);
    return DigestUtils.sha256Hex(str);
}
原始内容拼接:
account=api003&appSecret=ba92fa4836984eb98156e6ec8a6b2454&bizContent=10e18d2ebaebdb485cae33dca2&ts=1698632973036
签名结果:
1f825da81826e47c4dbff9a5c785cb8c141dcb1a5343d3650bfe6794879ef400
{
    "stat": 6,
    "smsId": "03e2c9e81a54416ba2a046eac6f52b63",
    "phoneNumber": "17530663764",
    "statDes": "REJECTD",
    "revTime": 1698636405820
}
| 参数 | 数据类型 | 是否必填 | 字段解释 | 
|---|
| phoneNumber | String | 是 | 手机号 | 
| smsId | String | 是 | 消息Id | 
| stat | Int | 是 | 状态。 0:成功,其他为失败 | 
| statDes | String | 是 | 发送失败错误码 | 
| revTime | Int64 | 是 | 接收时间,毫秒 | 
{
    "phoneNumber": "17530663764",
    "content": "R",
    "subCode": "123",
    "smsId": "8b8a8939d5424bd0ad60aea59e995434"
}
| 参数 | 数据类型 | 是否必填 | 字段解释 | 
|---|
| phoneNumber | String | 是 | 手机号 | 
| content | String | 是 | 上行内容 | 
| subCode | String | 否 | 扩展码 | 
| smsId | String | 否 | 上行对应的短信消息ID。 更新于2025-03-14 |