### 1.消息说明
开放平台向接入商的系统实时推送业务变更消息,接入商系统收到消息后,进行相应的处理,实现数据同步,从而满足接入商系统业务功能。
### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#2%E6%8E%A8%E9%80%81%E6%96%B9%E5%BC%8F)2.推送方式
为避免接入商轮询,开放平台采用推送的方式,以`http post`的形式向商户指定的回调地址(自行在聚合供应链商户后台的应用上配置)进行推送。推送的消息数据(Body中除sign以外的部分)会进行消息摘要([详见签名规则](签名规则.md)),接收方收到数据后,需对数据进行验签,以保证数据的可靠性。接收方正常处理完消息后,需回执`SUCCESS`,若接收或处理失败,消息会自动重发(参见生命周期)
### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#3%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F)3.生命周期
正常情况下,每条消息最多会进行8次通知 (通知的间隔频率一般是:`立即`,`10s`,`30s`,`1m`,`2m`,`3m`,`4m`,`5m`)
### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#4%E5%B9%82%E7%AD%89%E5%A4%84%E7%90%86)4.幂等处理
由于网络原因、接入商系统原因,或接入商系统接收成功但未正常回执等,会触发消息的重试机制,接收方需要对同一个id的消息多次投递结果实现幂等。
### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#5%E6%8E%A8%E9%80%81%E6%95%B0%E6%8D%AE%E6%A0%BC%E5%BC%8F)5.推送数据格式
**请求方式:**`POST`
**请求参数**
Headers
| 参数名称 | 参数值 | 必填 | 类型 | 备注 |
| --- | --- | --- | --- | --- |
| Content-Type | application/json | 是 | String | |
Body
| 名称 | 类型 | 必须 | 示例值 | 备注 |
| --- | --- | --- | --- | --- |
| id | java.lang.Long | 是 | 1601051353780715520 | 消息唯一标识 |
| pushTime | java.lang.Long | 是 | 1670555403922 | 消息推送时间 |
| type | java.lang.String | 是 | order.status.change | 消息类型 |
| data | java.lang.String | 是 | {“dbyOrderId”:“1411601040867127328768”} | 推送数据 (json字符串) |
| sign | java.lang.String | 是 | 21A5C3C007A5998166602C6B1133E47C | 签名 |
示例
~~~json
{
"id":1601051353780715520,
"pushTime":1670555403922,
"type":"order.status.change",
"data":"{\"dbyOrderId\":\"1411601040867127328768\"}",
"sign":"21A5C3C007A5998166602C6B1133E47C"
}
~~~
> 基于`type`字段值,区分不同的消息类型,各种类型的消息,`data`字段对应的json字符串格式不同
## [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E6%B6%88%E6%81%AF%E7%B1%BB%E5%9E%8B)消息类型
* * *
### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%95%86%E5%93%81)商品
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%95%86%E5%93%81%E6%B1%A0%E6%B7%BB%E5%8A%A0%E5%95%86%E5%93%81)商品池添加商品
> type:`goods.pool.add`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| goodsIds | String\[\] | \[“50165434620”,“50165241120”\] | 商品skuCode数组 |
**收到消息后的处理方式:**
通过[查询商品详情](查询商品详情.md)接口,获取商品详细信息,保存到接入方系统商品库中
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%95%86%E5%93%81%E6%B1%A0%E7%A7%BB%E9%99%A4%E5%95%86%E5%93%81)商品池移除商品
> type:`goods.pool.remove`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| goodsIds | String\[\] | \[“50165434620”,“50165241120”\] | 商品skuCode数组 |
**收到消息后的处理方式:**
移除接入方系统商品库中对应的商品
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%95%86%E5%93%81%E4%B8%8A%E6%9E%B6)商品上架
> type:`goods.publish`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| goodsIds | String\[\] | \[“50165434620”,“50165241120”\] | 商品skuCode数组 |
**收到消息后的处理方式:**
变更对应商品的状态为`上架`。为避免因消息推送延迟,对应商品的最新状态已发生变化,建议在收到消息后,通过[查询商品上下架状态](查询商户商品上下架状态.md)接口,获取商品当前最新的上下架状态
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%95%86%E5%93%81%E4%B8%8B%E6%9E%B6)商品下架
> type:`goods.un.publish`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| goodsIds | String\[\] | \[“50165434620”,“50165241120”\] | 商品skuCode数组 |
**收到消息后的处理方式:**
变更对应商品的状态为`下架`。为避免因消息推送延迟,对应商品的最新状态已发生变化,建议在收到消息后,通过[查询商品上下架状态](查询商户商品上下架状态.md)接口,获取商品当前最新的上下架状态
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%95%86%E5%93%81%E4%BF%A1%E6%81%AF%E5%8F%98%E6%9B%B4)商品信息变更
> type:`goods.detail.alter`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| goodsIds | String\[\] | \[“50165434620”,“50165241120”\] | 商品skuCode数组 |
**收到消息后的处理方式:**
通过[查询商品详情](查询商品详情.md)接口,获取商品最新的信息进行更新
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%95%86%E5%93%81%E4%BB%B7%E6%A0%BC%E5%8F%98%E6%9B%B4)商品价格变更
> type:`goods.price.alter`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| goodsIds | String\[\] | \[“50165434620”,“50165241120”\] | 商品skuCode数组 |
**收到消息后的处理方式:**
通过[查询商品价格](查询商品价格.md)接口,获取商品最新的价格进行更新
### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E8%AE%A2%E5%8D%95)订单
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E8%AE%A2%E5%8D%95%E6%8B%86%E5%8D%95)订单拆单
> type:`order.split`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| dbyOrderId | String | 1411601121460812906496 | 小象订单号 |
**收到消息后的处理方式:**
通过[查询订单详情](查询订单详情.md)接口,获取订单最新的信息,将订单详情中的子订单列表,覆盖更新到接入方系统中。
`注意`:确认下单后,系统会进行异步拆单,推送拆单消息。但一个订单可能会出现**多次拆单**的情况(按渠道—>按商家—>按仓库…),每次收到拆单消息时,都应通过订单详情去获取最新的订单数据,和本地系统里的数据进行对比更新。例如:一批商品下单后,第一次拆单,通过订单详情查询到的子订单有\[1、2\],后续发生了二次拆单,此时订单详情查询到的子订单可能会是\[1、3、4\],子订单2 中的商品被再次拆分,变成了子订单3和4。接入商系统需要对数据做更新。**订单发货后,不会在再出现拆单的情况**。
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E8%AE%A2%E5%8D%95%E7%8A%B6%E6%80%81%E5%8F%98%E6%9B%B4)订单状态变更
> type:`order.status.change`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| dbyOrderId | String | 1411601121460812906496 | 小象订单号 |
**收到消息后的处理方式:**
通过[查询订单详情](查询订单详情.md)接口,获取订单最新的信息,将每个子订单的最新状态更新到接入方系统中,结合接入方系统的业务,对不同的状态做其他处理
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E8%AE%A2%E5%8D%95%E5%8F%91%E8%B4%A7)订单发货
> type:`order.deliver`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| dbyOrderId | String | 1411601121460812906496 | 小象订单号 |
**收到消息后的处理方式:**
通过[查询订单物流信息](查询订单物流信息.md)接口,获取子订单的物流信息
### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%94%AE%E5%90%8E)售后
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%94%AE%E5%90%8E%E7%8A%B6%E6%80%81%E5%8F%98%E6%9B%B4)售后状态变更
> type:`after-sales.status.change`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| afterSaleOrderId | String | 1411601149457016160256 | 售后订单号 |
**收到消息后的处理方式:**
通过[查询售后订单详情](查询售后订单详情.md)接口,获取售后订单的最新状态,更新到接入方系统中
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%94%AE%E5%90%8E%E9%80%80%E6%AC%BE)售后退款
> type:`after-sales.refund`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| afterSaleOrderId | String | 1411601149457016160256 | 售后订单号 |
**收到消息后的处理方式:**
通过[查询售后退款详情](查询售后退款详情.md)接口,获取售后订单的退款信息,结合接入方自身的业务逻辑,进行相应的退款操作
### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%9C%B0%E5%9D%80%E5%BA%93)地址库
#### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=f0d7549de2ab52f3eac45d6384c00476#%E5%9C%B0%E5%9D%80%E5%BA%93%E5%8F%98%E6%9B%B4)地址库变更
> type:`area-code.change`
* * *
**`data`字段对应的json数据格式:**
| 名称 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- |
| operation | Integer | 2 | 变动类型 2-修改 3-删除 |
| level | Integer | 4 | 当前变更的地址等级 |
| originalAreaCode | String | 11010100111 | 原来的地址编号 |
| changeAreaCode | String | 11010100112 | 改变后的地址编号 |
| parentAreaCode | String | 110101 | 改变后的上级地址编号 |
**收到消息后的处理方式:**
方案一(全量更新):
通过[省市区街道4级地址查询](省市区街道4级地址查询.md)接口,重新从一级地区开始,逐级同步最新的省市区code信息,保存到本地系统
方案二(局部更新):
基于变动类型,针对性处理
变动类型为`修改`: 根据 originalAreaCode 找到本地系统中对应的地址信息,将其地址code更新为 changeAreaCode,上级地址code更新为 parentAreaCode。如果当前变更的地址level不是4(县/街道),还需通过[省市区街道4级地址查询](省市区街道4级地址查询.md)接口,同步更新下级地址信息;
变动类型为`删除`: 根据 originalAreaCode 找到本地系统中对应的地址信息,删除对应的地址信息。如果当前变更的地址level不是4(县/街道),还需通过[省市区街道4级地址查询](省市区街道4级地址查询.md)接口,同步更新下级地址信息;
- 产品介绍
- 开发指南
- 实物商品对接流程
- 签名规则
- JAVA SDK使用
- PHP SDK使用
- 商品消息对接流程
- 虚拟商品对接流程
- 电影H5对接流程
- 卡密信息解密规范
- 错误码查询
- 商品API文档
- 商品
- 查询商品SPU详情
- 查询商品SPU深度分页
- 查询商品可售性
- 手机号所属运营商查询
- 查询商品详情
- 查询商户商品上下架状态
- 查询商品最小起订量
- 查询商品价格
- 根据SKU查询商品SPU详情
- 查询商品分类逐级获取
- 查询商品分类分页获取
- 订单
- 运费评估
- 确认收货
- 查询订单物流信息
- 查询订单详情
- 取消订单
- 确认下单
- 实物商品预下单
- 虚拟商品预下单
- 售后
- 查询售后退款详情
- 查询售后订单详情
- 取消售后申请
- 确认售后完成
- 提交运单信息
- 查询售后支持的物流
- 查询客户寄回地址
- 创建退款退货申请
- 上传商品售后凭证
- 批量查询商品售后权益
- 地址
- 详细地址转换成供应链地址编码
- 省市区街道4级地址查询
- 消息
- 消息通知
- 账户
- 查询商户账户信息
- 电影API文档
- 电影H5
- 电影H5首页免登录
- 设置商户价格策略
- 设置商户货币兑换比例
- H5电影订单详情
- H5电影订单确认
- H5电影订单列表
- 电影消息
- 电影消息通知