6. jiace开放平台消息推送
6.1. 推送方式
嘉策开放平台向接入商推送实时的业务变更消息,保持数据的一致性以及同步,满足接入商业务需求,避免轮询。推送的数据消息,将以http post的方式向该推送地址发起调用,把数据推送给接入商。接入商接收失败时,消息中心会自动重发N次(一般3次)。如果还是失败,则将消息保存入库,接收方可通过补偿API来拉取接收失败的消息。失败消息一般保存7天,请及时拉走,否则消息会被丢弃。
推送消息格式
消息数据以Json格式发送,消息提供统一的模板;不同业务的消息,仅通过消息类型来区分,具体的业务消息内容,参考各个业务消息说明。属性 | 类型 | 说明 |
---|---|---|
msgId | Number | 消息ID,消息唯一性标识 |
gmtBorn | Number | 消息推送时间 |
data | String | 具体推送的业务消息数据,json格式,具体参数参考消息列表说明 |
userId | String | 用户id |
type | String | 消息类型,每个业务消息都唯一对应一个类型,参考业务消息的类型定义 |
6.2. 推送说明
httpCallback
http消息回调通道,isv提供一个http服务,配置url地址;开放平台采用短连接的方式调用http服务,推送消息,开放平台推送中心发送post请求,包含两个参数,编码格式统一为UTF-8,统一按照key/value格式推送,
参数说明:
属性 | 类型 | 说明 | 备注 |
---|---|---|---|
参数键值 | 参数值 | 说明 | 备注 |
message | 消息的json串 | 消息体 | 对接方获取这个参数的值,然后通过json的反序列化,就得到了消息模型,如210239 |
signature | 签名 | 针对消息的一个签名,可防篡改 | 1970.1.1到现在的毫秒数 |
消息签名说明
仅对消息内容进行签名计算,签名算法同开放平台的算法http 推送POST请求示例:
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Connection: close
Accept: */*
User-Agent: NING/1.0
Content-Length: 248
message={"data":{"key":"value"},"gmtBorn":1527556000,"msgId":70299002,"type":"PRODUCT_PRODUCT_EXPIRE","userId":"CBU_MemberId"}&signature=65F2AA13AE9C9C9DFE8682EFB90B32F37CB01BE1
推送成功说明
收到消息之后,只要设置返回的response http status code =200就认为是消息消费成功; 如果http status code!=200,就认为是消息消费失败,推送中心后续会重试,默认重试3次6.3. 消息补偿API
针对推送失败的消息,我们提供补偿API机制,让商家能够主动来查询失败消息列表,做一些补偿的逻辑。
商家请求开放平台接口获取失败的消息列表,获取的消息默认自动会做消费成功的确认。所以下次以相同条件调用获取的是剩下的数据,直至返回数据为空。
获取失败的消息列表API:
请求地址:https://open.jiacedata.com/v1/warehouse-service/message/getFailedMessage
签名方式:与签名规则相同
入参:
名称 | 类型 | 是否必须 | 描述 | 示例值 |
---|---|---|---|---|
createStartTime | java.util.Date | 否 | 消息创建时间查找范围开始 | 20130417000000000+0800 |
createEndTime | java.util.Date | 否 | 消息创建时间查找范围结束 | 20130417000000000+0800 |
quantity | int | 否 | 每次取的数据量,范围20-200,默认20 | 20 |
type | String | 否 | 消息类型 | ORDER_BUYER_MAKER |
userId | String | 否 | 用户Id | b2b-4137495171f2513 |
出参:
名称 | 类型 | 描述 | 示例值 |
---|---|---|---|
messageList | List | 推送消息列表 | ["",""] |
msgId | long | 消息唯一id | |
type | String | 消息类型 | |
userId | String | 消息关联的用户userId | |
data | java.util.Map | 消息内容 json格式,具体内容参考消息列表 | |
gmtBorn | long | 消息创建的时间戳,单位毫秒 |
json返回结果:
{
"pushMessageList":
[
{
"gmtBorn": 1399182274000,
"data":
{
"buyOfferId": 123,
"subUserId": 123
},
"msgId": 123456,
"type": "CAIGOU_MSG_BUYER_PUBLISH_BUYOFFER",
"userId": "userId"
}
]
}
6.4. 消息列表
消息名称 | 消息type | 请求示例 |
---|---|---|
商品修改 | PRODUCT_MODIFY |
|
商品价格变动消息 | PRODUCT_PRICE_MODIFY |
|
商品库存变更消息 | PRODUCT_INVENTORY_CHANGE |
|
订单发货 | ORDER_SENDGOODS n |
|
订单售后退款 |
ORDER_REFUND
|
|