接口要求和细节

三方应用需要提供一个 HTTP 协议的通道,有需要推送的消息时,开放平台会按照约定格式,主动调用该接口,完成消息推送功能。

接口有以下要求:

  1. 请使用标准 HTTP 协议,非标私有实现可能会有一定的兼容问题,建议使用 HTTPS,如使用 HTTPS,需要保证 SSL 证书有效
  2. POST 请求,UTF-8 编码,HTTP 请求头中:Content-Type:application/json; charset=utf-8 ,Body 中存放 JSON 格式报文
  3. 接收方需要进行消息体验签和解密
  4. 接口响应时间不能超过 3 秒,否则开放平台会认为失败
  5. 应用在接收到推送后,在响应时需要 HTTP 状态码为 200,Header中指定 Content-Type:application/json; charset=utf-8,且在 Body 响应内容为如下的JSON 报文 ,不符合该两点要求的均会被认为推送失败
{
    "status": "success"
}
  1. 推送平台会在推送失败后间隔 1至 2 分钟再重试 1 次,再次失败后会间隔 3 至 5 分钟重试一次,总共推送 3 次
  2. 消息推送时,若接收方已经收到数据但是未及时响应,此时平台也会认为失败是需要重试。再次重试时,接收方需要根据消息中的消息 ID(msgId) 或业务数据中的时间戳来应对不可接收重推消息的场景,完成幂等处理
  3. 为了方便未来消息升级,应用需要兼容消息中当前尚未定义但未来可能会新增的字段
  4. 开放平台无法保证 100% 的消息触达率,对于最新的数据,请以接口开放平台查询的结果为准
  5. 如使用 curl 请求来描述该请求,则大致如下
curl --location --request POST 'http://3rd.xxapp.com/order/sync' \
--header 'User-Agent: SqbSmartOpenPlatform' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Connection: keep-alive' \
--data-raw '{
    "msgId": "123",
    "nonce": "456",
    "timestamp": 1684986985000,
    "businessData": "Kn4jMkBu1cGBLv2LZ7HEDNbA160NaLjLA7PMXvlxotkHMmbzTBFgoOFcJLPw1hEE4UwBXo6Ks52zAaQ47JBQ7LhiinKK==",
    "plainBusinessData": "{\"orderSn\":\"2100000003735908\",\"biz_timestamp\": 1684986985000 }",
    "signature": "65bc79f01729cb727638f16ad99937873c587c7c"
}'

results matching ""

    No results matching ""