11 订单推送
1.场景
商家提供推送接口URL,当订单状态变化时,系统自动推送订单报文至商家URL。
2.解密
数据解密方式与加密相反,请参考 公共参数 加密部分 与公共参数中不同的一点:外层没有数组格式
加密示例请求
Post Host
http://api.demohost.com/api/youpin/push
Post Body
{"partnerId":88,"data":"j13LTVgjjuFgcALcva0Kd+BeT+N02tfZf/Ral9e0fqcDMNzo0Bbuzii6RccPUV+hyQ5Qkh5snWVQw1dxeG/1Xd5ZW3rw8VeuexRJ2R56ROW1QdIwZ9cfbclMRhDtBS4pN6xoi6yd7uLnCcXL+p4tAj6es7xCHbh4i4l5lNEURL1lp20BhWz2RmwXC7yQ0enE6Bw/H7L5idfYxhZNTsGxQl39DhFD8NHeKInsb0s7K50z+2ZuZ1nWHbUmSk0hyxE/acFkgxkhNX+oPziylSZEFmUJzUyFuddrgEzum9QwkA1uFL0NV6xu6La7R+0kZ5OmqOIujbcQNg0kGmVxCzXfC5TJGM68DOuX/j9TmPYJDp76Lm+FqAPlVCxe0ovGYowngw4ZTWMxsREfMScXm4dwYDf36VR1ZIj5JrXC54cLJPvymm10v7dqNvmUihmD32T7Lf3OLwetBmnoptoftm/mIn7QH8cQHaV25EJzCyhL8iauICEvdS4kHcCnzw0FYCcD","sign":"36bdeca1de3cfd07a9cbbc7bb4c9b834","timestamp":"1586760155"}
注:
- 可参考附件中V2版解密demo
3.请求
3.1.请求参数
字段 | 类型 | 描述 |
---|---|---|
address | Address | 收货人信息:地址、电话等 |
consigneeIdCard | ConsigneeIdCard | 用户身份证信息(跨境电商专用) |
paymentInfo | PaymentInfo | 支付信息 (跨境电商专用) |
couponReduce | Long | 订单优惠券扣减金额(分) |
activityReduce | Long | 订单活动扣减金额(分) |
redPacketReduce | Integer | 红包扣减金额(分) |
ctime | Long | 订单创建时间,时间戳 |
consignor | Integer | 发货主体商户ID:65-有品配送,其他-自发货商家id |
description | String | 订单用户备注 |
ftime | Long | 订单支付时间,时间戳 |
invoiceType | Integer | 发票类型 |
invoiceTitle | String | 发票抬头 |
invoiceCompanyCode | String | 税号 |
invoicePhone | String | 发票开具通知号码 |
invoiceEmail | String | 发票开具通知邮箱 |
orderId | Long | 订单id |
orderType | Integer | 订单类型 |
uid | Long | 用户id |
shipFee | Long | 订单运费(分) |
totalPrice | Long | 订单支付总价(包含运费)(分) |
productList | List<Product> |
订单购买的产品详情列表 |
logisticsList | List<OrderLogisticsInfo> |
物流信息列表 |
Address
字段 | 类型 | 描述 |
---|---|---|
country | Country | 国家 |
province | Province | 省 |
city | City | 市 |
district | District | 区 |
area | Area | 街道 |
addressId | String | 地址id |
address | String | 详细地址 |
addressName | String | 地址名称 |
consignee | String | 收货人 |
tel | String | 电话号码 |
zipcode | String | |
addTime | Long | 创建时间,时间戳 |
updateTime | Long | 更新时间,时间戳 |
Country(其它地址类信息相同)
字段 | 类型 | 描述 |
---|---|---|
id | String | id |
name | String | 名称 |
ConsigneeIdCard(跨境专用)
字段 | 类型 | 描述 |
---|---|---|
cardId | String | 身份证号码 |
cardName | String | 身份证姓名 |
PaymentInfo(跨境专用)
字段 | 类型 | 描述 |
---|---|---|
importationType | List |
支付方式 |
Product
字段 | 类型 | 描述 |
---|---|---|
customizedInfo | String | 定制信息 |
count | Integer | 该pid商品数量 |
gid | Integer | 商品gid |
name | String | 商品名称 |
merchantId | Integer | 商家id |
pid | Long | 商品pid |
price | Long | 产品支付价格(pid支付金额小计),单位:分 |
productPrice | Long | 原价(市场价),单位:分 |
salePrice | Long | 下单时该商品售卖价格,单位:分 |
expressAvFee | Long | 商品分摊运费,单位:分 |
status | Integer | 订单状态 |
skuInfoList | List |
sku信息 |
SkuInfo
字段 | 类型 | 描述 |
---|---|---|
skuId | Integer | skuId |
count | Integer | 数量 |
OrderLogisticsInfo
字段 | 类型 | 描述 |
---|---|---|
bizCode | String | 物流公司编码 |
companyName | String | 物流公司名称 |
expressSn | String | 物流单号 |
deliveryTime | Long | 发货时间 |
acceptTime | Long | 收货时间 |
itemList | List<LogisticsItem> |
包裹信息 |
LogisticsItem
字段 | 类型 | 描述 |
---|---|---|
pid | Long | pid |
skuId | Long | skuId |
count | Integer | 数量 |
3.2.推送示例
{
"orderId": 4200309201900540, // 订单ID
"orderType": 6, // 订单类型 6-有品普通订单,13-普通众筹,16-定金预售订单,17-海淘跨境, 23-换货单
"originOrderId": 0, // 若订单类型是换货单的,展示原单单号。对于A->B->C的,展示A单单号
"uid": 222548368, // 用户id
"ctime": 1477352886, // 订单创建时间,时间戳
"ftime": 1477352915, // 订单支付时间,时间戳
"consignor": 65, // 发货主体 (65为有品配送,非65为商家自发)
"description": "", // 订单用户备注
"address":{ // 订单收货人信息
"country":{
"id":"1",
"name":"中国"
},
"province":{
"id":"2",
"name":"北京"
},
"city":{
"id":"36",
"name":"北京市"
},
"district":{
"id":"377",
"name":"东城区"
},
"area":{
"id":"377001",
"name":"安定门街道"
},
"address":"测试请勿发货",
"addressId":"10160717960900847",
"addressName":"",
"consignee":"测试",
"tel":"15011577075",
"zipcode":"100011",
"addTime":1581995815,
"updateTime":1581995815,
},
"consigneeIdCard": { // 用户身份证信息(跨境电商专用)
"cardId": "100214199001010113", // 身份证号码
"cardName": "张三" // 身份证姓名
},
"paymentInfo": { // 支付信息 跨境电商专用
"importationType": ["WEIXIN"], // 保税仓金控订单支付类型,不符合业务需求的支付方式为空,微信: WEIXIN, 支付宝: ALIPAY,
},
"couponReduce": 0, // 订单优惠券扣减金额(分)
"activityReduce": 0, // 订单活动扣减金额(分)
"redPacketReduce": 0, // 红包扣减金额(分)
"shipFee": 0, // 订单运费(分)
"totalPrice": 16900, // 订单支付总价(包含运费)(分)
"invoiceTitle": "String(发票抬头)",
"invoiceType": 0, // 0-无发票,1-个人纸质普票,2-企业纸质普票,4-电子发票(旧版),5-个人电子普票,6-企业电子普票
"invoiceCompanyCode": "String(税号)",
"invoicePhone": 13800000001, // 发票开具通知号码
"invoiceEmail": "test@163.com", // 发票开具通知邮箱
"productList": [{// 订单购买的产品详情列表
"gid": 101364, // 商品GID
"pid": 8624, // 产品PID
"name": "90分银离子抗菌T恤 男款 黑白 165/84A", // pid商品名称
"count": 1, // 该pid商品数量
"packagePid": 0, // 套装pid
"packageCount": 0, // 套装购买数量
"packageName": "", // 套装名称
"status": 4, // 订单商品状态,见下表
"merchantId": 28, // 商品所属的商户ID,
"price": 349900, // 产品支付价格(pid支付金额小计),单位:分
"salePrice": 7900, // 下单时该商品售卖价格,单位:分
"productPrice": 17900, // 原价(市场价),单位:分
"expressAvFee": 0, // 商品分摊运费,单位:分
"skuInfoList": [{
"skuId": 3055298, // skuid
"count": 1 // 单个pid对应的skuid 数量
}],
"customizedInfo": "{\"individual\":{\"collar\":\"1\",\"sleeve\":\"8\",\"pocket\":\"57\",\"pattern\":\"61\",\"word_location\":\"17\"},\"size\":{\"abdomen_para\":\"normal\",\"chest_para\":\"corpulent\",\"shoulder_para\":\"normal\",\"stance_para\":\"normal\",\"height\":\"170\",\"weight\":\"60\"},\"individual_word\":\"\"}" // 商品定制信息
"promiseDeliveryTime": 1477439315, // 承诺发货时间,时间戳(秒)
"virtualType": 0 // 商品虚拟类型: 0-实物, 1-安装服务, 2-会员
}],
"logisticsList": [{
"bizCode": "zhongtong",
"companyName": "中通快递",
"expressSn": "zt000000002",
"deliveryTime": 1553740458,
"acceptTime": 0,
"itemList": [{
"pid": 8624,
"skuId": 0,
"count": 1
}]
}]
}
3.3.返回
为了有品售后更好协助商家监控推送服务,请按接收demo统一返回值
处理成功
{
"code":0, // 0-成功,非0-失败
"message": "ok"
}
处理失败
code | message |
---|---|
110 | 签名校验失败 |
120 | AES解密失败 |
130 | JSON解析错误 |
210 | 服务异常 |
310 | 推送数据错误(可以正常处理数据,但不是商家所需要的数据) |
4.订单状态
状态码(status) | 状态名称 | 描述 |
---|---|---|
4 | 已支付 | 已支付,待发货 |
6 | 已发货 | 已发货,待揽收 |
50 | 已揽收 | |
17 | 申请退款 | 未发货,用户申请售中退款 |
37 | 退款中 | 未发货,商家已经同意退款,退款中 |
39 | 退款中 | 退款完成(售中、拒收、售后) |
18 | 订单取消 | 未支付或支付超时导致的订单取消 |
5.注意
- 有品商品暂不支持外部编码,商家入驻有品创建商品时会生成统一的商品skuid,skuid需要商家ERP维护。
- 有品订单中的最小售卖单位是pid。skuId 是仓库库存单位,套装商品上线后,pid与skuId的关系为1对1。升级详情见 套装商品升级指南
- gid是产品站编号,一个gid下有多个pid。
- pid-skuid 关系也可以通过 productlist 接口获取。
- 商品(pid)优惠计算:sale_price * count - price
- 推送维度为pid
6.联调测试和上线流程
为保值接口质量,商家接口开发完成后,在上线前需与有品联调。
联调流程:发送邮件到 youpin-openapi@xiaomi.com(请使用公司邮箱发送)
测试换新联调
主题:申请有品openapi订单推送联调测试
环境:测试
商家公司名称:
商户ID:
计划联调时间:
推送地址:
版本: V2(只支持V2)
对接联系人:
电话:
邮箱:
上线
主题:申请有品openapi订单推送上线
环境:线上
商家公司名称:
商户ID:
计划上线时间:
推送地址:
版本: V2(只支持V2)