消息推送
消息推送由企得宝ERP系统主动向开发者配置的推送地址推送消息,共 8 种推送类型。
推送说明
推送方式
- 请求方式: HTTP POST
- Content-Type:
application/json;charset=UTF-8
推送签名规则
- 所有参数(除 sign)按照字典序排列
- 排序好的参数(除 sign)根据参数名称+参数值直接拼接(key1value1key2value2)
- 拼接完成后字符串两端加上当前企业的
secret 进行 MD5 加密并转小写
返回结果
接收方处理完成后,返回字符串 success 认为推送成功,返回其他认为失败。
推送类型列表
1. 库存推送
推送时机: ERP系统中商品库存发生变更时触发
请求参数
| 参数名 |
必选 |
类型 |
说明 |
| productId |
否 |
String |
平台商品Id |
| skuId |
否 |
String |
平台商品SkuId |
| skuCode |
否 |
String |
平台商品Sku编码 |
| shopId |
否 |
String |
当前商品所属店铺ID |
| quantity |
否 |
String |
根据店铺选择的上传类型×上传比例 |
| modifyDate |
否 |
String |
库存变更时间 |
| timestamp |
否 |
String |
时间戳(毫秒) |
| sign |
否 |
String |
签名 |
响应参数
| 参数名 |
必选 |
类型 |
说明 |
| state |
否 |
boolean |
响应结果:true-成功;false-失败 |
| code |
否 |
int |
响应码:0-成功;1-错误 |
| message |
否 |
String |
错误信息 |
2. 发货推送(旧版)
推送时机: 发货时触发
推送须知: 推送成功后,如果当前订单在对方系统是整单发货,请调用 foonsu.erp.orders.save 接口同步当前订单为已发货;如果是部分发货可同步成部分发货。
请求参数
| 参数名 |
必选 |
类型 |
说明 |
| orderKind |
否 |
String |
订单类别 |
| logisticsCompanyCode |
否 |
String |
物流公司编码 |
| tradeNo |
否 |
String |
交易单号 |
| logisticsNo |
否 |
String |
运单号 |
| timestamp |
否 |
String |
时间戳(毫秒) |
| sign |
否 |
String |
签名 |
返回结果: 返回 success 认为推送成功。
3. 发货推送(新)
推送时机: 发货时触发(对接此推送方式需要联系对接负责人员为企业开启)
推送须知: 推送成功后,如果当前订单在对方系统是整单发货,请调用 foonsu.erp.orders.save 接口同步当前订单为已发货。
请求参数
| 参数名 |
必选 |
类型 |
说明 |
| pushJson |
否 |
String |
推送内容Json字符串 |
| timestamp |
否 |
String |
时间戳(毫秒) |
| sign |
否 |
String |
签名 |
pushJson 推送内容参数
| 参数名 |
必选 |
类型 |
说明 |
| logisticsCompanyCode |
否 |
String |
物流公司编码 |
| externalStorageCode |
否 |
String |
外部仓库编码 |
| tradeNo |
否 |
String |
交易单号 |
| logisticsNo |
否 |
String |
运单号 |
| orderKind |
否 |
String |
订单类别 |
| addLogistcisNo |
否 |
String |
追加运单号 |
| subLogistcisNo |
否 |
String |
子运单号 |
| payAmount |
否 |
BigDecimal |
付款金额 |
| postAmount |
否 |
BigDecimal |
运费 |
| deliveryOrderParentGoodsList |
否 |
List[Object] |
发货父商品列表 |
| deliveryOrderGoodsList |
否 |
List[Object] |
发货商品列表 |
| packages |
否 |
List[Object] |
订单包裹信息 |
deliveryOrderParentGoodsList 参数
| 参数名 |
类型 |
说明 |
| goodsId |
String |
商品id |
| goodsCode |
String |
系统商品编码 |
| goodsName |
String |
商品名称 |
| goodsQuantity |
BigDecimal |
商品数量 |
| goodsUnit |
String |
商品单位 |
| goodsPlatformCode |
String |
平台商品编码 |
| platformGoodsCode |
String |
平台商品id |
| platformQuantity |
BigDecimal |
平台数量 |
| payAmount |
BigDecimal |
付款金额 |
| batchList |
String |
唯一码/序列号列表,多个逗号隔开 |
deliveryOrderGoodsList 参数
| 参数名 |
类型 |
说明 |
| goodsId |
String |
商品id |
| parentGoodsId |
String |
父商品id |
| goodsCode |
String |
商品编码 |
| goodsName |
String |
商品名称 |
| goodsQuantity |
BigDecimal |
商品数量 |
| goodsUnit |
String |
商品单位 |
| goodsPlatformCode |
String |
平台商品编码 |
| platformGoodsCode |
String |
平台商品id |
| platformQuantity |
BigDecimal |
平台数量 |
| payAmount |
BigDecimal |
付款金额 |
| batchList |
String |
唯一码/序列号列表,多个逗号隔开 |
packages 参数
| 参数名 |
类型 |
说明 |
| expressCode |
String |
运单号 |
| items |
List[Object] |
商品列表 |
| packageCode |
BigDecimal |
包裹编号 |
| batchCode |
String |
唯一码/序列号列表,多个逗号隔开 |
items 参数
| 参数名 |
类型 |
说明 |
| itemCode |
String |
商品编码 |
| itemId |
String |
商品仓储系统编码 |
| quantity |
Long |
包裹内该商品的数量 |
推送示例
{
"pushJson": "{\"addLogistcisNo\":\"SF1040358886694,SF1040358886709,SF1310010989521\",\"deliveryOrderGoodsList\":[{\"goodsCode\":\"S1110\",\"goodsName\":\"测试商品\",\"goodsQuantity\":2.4,\"batchList\":\"A0001,A0002\"}],\"logisticsCompanyCode\":\"01\",\"logisticsNo\":\"SF1310010946622\",\"subLogistcisNo\":\"\",\"tradeNo\":\"2999\",\"packages\":[{\"expressCode\":\"fake_data\",\"items\":[{\"itemCode\":\"fake_data\",\"itemId\":\"fake_data\",\"quantity\":66}],\"packageCode\":\"fake_data\",\"batchCode\":\"A0001,A0002\"}],\"externalStorageCode\":\"121212\"}",
"sign": "58c3f00cc3792c9ad6f0c7575154a518",
"timestamp": "1611562103183"
}
4. 路由推送
推送时机: 物流路由信息更新时触发(如揽件、中转、派送、签收等)
请求参数
| 参数名 |
必选 |
类型 |
说明 |
| routePushList |
否 |
String |
路由消息集合(JSON数组字符串) |
| timestamp |
否 |
String |
时间戳(毫秒) |
| sign |
否 |
String |
签名 |
routePushList 对象参数
| 参数名 |
类型 |
说明 |
| acceptAddress |
String |
路由发生的地点 |
| acceptTime |
Date |
路由发生的时间 |
| exceptionType |
String |
路由异常状态:0-正常;1-揽件超时;2-中转超时;3-派送超时;4-虚假签收;5-问题件;6-退件;7-拒收 |
| logisticsNo |
String |
运单号 |
| parcelType |
String |
路由包裹状态:1-已发货未揽件;2-已揽收未中转;3-已中转未派送;4-已派送未签收;5-已派送已签收;6-异常单;7-拒收;8-已送达 |
| remark |
String |
备注 |
| expressman |
String |
派送员姓名(目前只有顺丰路由才有该字段) |
| expressmanMobile |
String |
派送员电话(目前只有顺丰路由才有该字段) |
| tradeNo |
String |
交易单号 |
请求示例
{
"sign": "695eca7dcadd9fac7cc678f284553862",
"routePushList": "[{\"acceptAddress\":\"深圳市\",\"acceptTime\":\"2020-04-15 21:50:18\",\"exceptionType\":\"0\",\"logisticsNo\":\"SF1011737074881\",\"parcelType\":\"5\",\"remark\":\"已派送已签收\"},{\"acceptAddress\":\"深圳市\",\"acceptTime\":\"2020-04-15 20:50:18\",\"exceptionType\":\"0\",\"logisticsNo\":\"SF1011737074881\",\"parcelType\":\"4\",\"remark\":\"已派送未签收\"}]",
"timestamp": "1590042103647"
}
5. 入库推送
推送时机: 退货商品入库时触发
请求参数
| 参数名 |
必选 |
类型 |
说明 |
| orderNo |
否 |
String |
退货单编号 |
| afterSaleOrderId |
是 |
String |
平台售后单号(平台退货单编号) |
| tradeNo |
是 |
String |
平台交易单号 |
| warehouseId |
否 |
Long |
仓库ID |
| warehouseName |
否 |
String |
仓库名称 |
| stockType |
否 |
String |
入库类型:1-退货入库 |
| statusDate |
否 |
String |
入库时间 |
| timestamp |
否 |
String |
时间戳(毫秒) |
| sign |
否 |
String |
签名 |
请求示例
{
"orderNo": "DRO274201560000",
"warehouseId": "9900100000000082",
"stockType": "1",
"sign": "2f045f4e12b37bb8bafc5f4785f36f56",
"warehouseName": "深圳仓",
"timestamp": "1655284940722"
}
6. 订单流程消息推送
推送时机: 订单流程状态变更时触发(接单、客审、打印物流单、打印发货单、外仓操作等)
请求参数
| 参数名 |
必选 |
类型 |
说明 |
| shopId |
否 |
String |
店铺Id |
| tradeNo |
否 |
String |
交易单号 |
| status |
否 |
String |
状态:1-已接单;2-已客审;3-已打印物流单;4-已打印发货单;5-外仓已接单;6-外仓已拣货;7-外仓已打包;8-外仓已发货;9-订单已同步外仓;10-订单已从外仓取消;11-订单异常;12-订单已作废 |
| exceptionMessage |
否 |
String |
订单异常信息 |
| operationDate |
否 |
String |
操作时间 |
| operationTimestamp |
否 |
String |
操作时间戳(毫秒级) |
| timestamp |
否 |
String |
当前时间戳(毫秒) |
| sign |
否 |
String |
签名 |
响应参数
| 参数名 |
必选 |
类型 |
说明 |
| state |
否 |
boolean |
响应结果:true-成功;false-失败 |
| code |
否 |
int |
响应码:0-成功;1-错误 |
| message |
否 |
String |
错误信息 |
7. 发货单推送
推送时机: 发货单创建或状态变更时触发
请求参数
| 参数名 |
类型 |
说明 |
| deliveryOrdersId |
String |
发货单ID |
| deliverOrderNo |
String |
发货单号 |
| orderNo |
String |
订单编号 |
| shopId |
String |
当前商品所属店铺ID |
| outShopId |
String |
外部店铺ID |
| tradeNo |
String |
平台交易单号 |
| deliveryDate |
String |
发货时间 |
| sourceCreateDate |
String |
订单创建时间 |
| postAmount |
BigDecimal |
运费 |
| goodsWeight |
BigDecimal |
重量 |
| systemLogisticsCompanyCode |
String |
快递公司编码 |
| logisticsNo |
String |
快递单号(运单号) |
| logisticsCompanyNameZh |
String |
快递公司 |
| orderKind |
String |
订单类别 |
| expressType |
String |
业务类型 |
| payAmount |
BigDecimal |
付款金额 |
| platformPromotionAmount |
BigDecimal |
店铺让利金额 |
| orderAgioAmount |
BigDecimal |
平台让利金额 |
| shopArrivalAmount |
BigDecimal |
店铺到账金额 |
| receiverName |
String |
收件人名称 |
| receiverMobile |
String |
收件人手机 |
| receiverPhone |
String |
收件人电话 |
| receiverProvince |
String |
收件人省份 |
| receiverCity |
String |
收件人城市 |
| receiverDistrict |
String |
收件人区/县级市 |
| receiverAddress |
String |
收件人地址 |
| payDate |
String |
付款时间 |
| operationDate |
String |
操作时间 |
| orderStatus |
String |
单据状态 |
| platformCode |
String |
平台编号 |
| deliveryStatus |
String |
发货状态 |
| warehouseName |
String |
发货仓库 |
| warehouseId |
Long |
发货仓库id |
| outWarehouseId |
Long |
外部仓库ID |
| oriChangeOrderNo |
String |
当前发货单原换货单号 |
| remark |
String |
系统备注 |
| sellerMessage |
String |
卖家留言 |
| buyerMessage |
String |
买家留言 |
| sendName |
String |
发件人名称 |
| sendProvince |
String |
发件人省份 |
| sendCity |
String |
发件人城市 |
| sendDistrict |
String |
发件人区/县级市 |
| sendAddress |
String |
发件人地址 |
| sendMobile |
String |
发件人手机 |
| sendPhone |
String |
发件人电话 |
| sendZipCode |
String |
发件人邮编 |
| bicOrderCode |
String |
BIC订单码 |
| shopCode |
String |
店铺编码 |
| platformWarehouseCode |
String |
平台仓库编码 |
| externalStorageCode |
String |
仓储仓库代码 |
| desensitizeReceiverName |
String |
脱敏后的收件人名称 |
| desensitizeReceiverMobile |
String |
脱敏后的收件人手机 |
| desensitizeReceiverPhone |
String |
脱敏后的收件人电话 |
| desensitizeReceiverAddress |
String |
脱敏后的收件人地址 |
| merchantSubsidyAmount |
String |
卖家承担的优惠金额 |
| enterpriseId |
String |
企业号 |
| shopName |
String |
店铺名称 |
| logisticsCompanyCode |
String |
物流公司编码 |
| insuranceType |
String |
保价类型 |
| insureFlag |
String |
是否保价 |
| insuranceAmount |
BigDecimal |
保价金额 |
| postAmountPromotion |
BigDecimal |
运费优惠 |
| deliveryOrdersGoodsList |
array |
发货订单商品明细列表 |
| ordersPayList |
array |
发货单支付方式列表 |
| ordersInvoice |
array |
订单发票明细列表 |
发货订单商品明细参数
| 参数名 |
类型 |
说明 |
| outGoodsId |
Long |
外部商品ID |
| outKindId |
Long |
外部类别ID |
| outUnitId |
Long |
外部单位ID |
| goodsCode |
String |
商品编码 |
| goodsName |
String |
商品名称 |
| unit |
String |
商品单位 |
| goodsSpecs |
String |
商品规格 |
| quantity |
BigDecimal |
购买数量 |
| realPrice |
BigDecimal |
实际售价 |
| payAmount |
BigDecimal |
实际金额 |
| taxRate |
BigDecimal |
税率 |
| taxType |
String |
税率类型:0-含税;1-免税;2-未税 |
| combinationFlag |
String |
商品组合类型:0-普通商品;1-组合父商品;2-组合子商品 |
| tradeNo |
String |
交易单号 |
| deliverOrderNo |
String |
发货单号 |
| agioAmount |
BigDecimal |
折扣金额 |
| afterAgioAmount |
BigDecimal |
让利后金额 |
| platformGoodsName |
String |
平台商品名称 |
| platformGoodsSpecs |
String |
平台商品规格 |
| gift |
String |
是否赠品:1-赠品;0-不是赠品 |
| authorId |
String |
直播主播id(达人id) |
| authorName |
String |
直播主播名称(达人姓名) |
| picUrl |
String |
图片链接 |
| ordersBatchs |
List[String] |
商品唯一码列表 |
| useGovSubsidy |
String |
是否使用国补:0-否;1-是 |
| ordersBatchsAndSn |
array |
商品唯一码和SN码列表 |
| supplierShopId |
String |
销售公司ID |
| supplierShopName |
String |
销售公司名称 |
| platformPromotionAmount |
BigDecimal |
平台优惠金额 |
| shopPromotionAmount |
BigDecimal |
店铺优惠金额 |
| govPromotionAmount |
BigDecimal |
电商国补金额 |
| paymentPromotionAmount |
BigDecimal |
支付渠道国补金额 |
| platformPaymentPromotionAmount |
BigDecimal |
支付渠道优惠(平台承担) |
| shopPaymentPromotionAmount |
BigDecimal |
支付渠道优惠(商家承担) |
| externalDetailNo |
String |
外部系统单据行号 |
订单发票明细参数
| 参数名 |
类型 |
说明 |
| invoiceKind |
String |
发票种类:1-增值专用发票;2-增值普通发票 |
| invoiceTitleKind |
String |
发票种类:1-个人;2-企业 |
| invoiceTitleType |
String |
发票类型:1-纸质发票;2-电子发票 |
| invoiceTitle |
String |
发票抬头 |
| invoiceContent |
String |
发票内容 |
| taxpayerNumber |
String |
纳税人识别号 |
| depositBank |
String |
开户行 |
| invoiceAmount |
BigDecimal |
发票金额 |
| phone |
String |
电话 |
| address |
String |
地址 |
| remark |
String |
备注 |
| unvoiceAmount |
BigDecimal |
未开票金额 |
| accounts |
String |
帐号 |
支付方式参数
| 参数名 |
类型 |
说明 |
| payTypeCode |
String |
支付方式编码:1-支付宝;2-微信;3-线下支付;4-在线支付;5-代收货款;6-银行转账 |
| payTypeName |
String |
支付方式名称 |
| orderNo |
String |
订单编号 |
商品唯一码和SN码列表明细
| 参数名 |
类型 |
说明 |
| batchNo |
String |
唯一码 |
| sn |
String |
sn码 |
8. 退货单推送
推送时机: 退货单创建或状态变更时触发
请求参数
| 参数名 |
类型 |
说明 |
| shopPlatformCode |
String |
平台编码 |
| deliverReturnOrderId |
String |
退货单ID |
| deliverOrderNo |
String |
发货单号 |
| deliverReturnOrderNo |
String |
退货单号 |
| orderNo |
String |
订单编号 |
| tradeNo |
String |
平台交易单号 |
| shopId |
String |
当前商品所属店铺ID |
| outShopId |
String |
外部店铺ID |
| shopName |
String |
店铺名称 |
| platformReturnNo |
String |
平台退货单号 |
| orderSourceCode |
String |
建单类型:1-手工建单;2-平台单 |
| returnWarehouseId |
String |
退回仓库id |
| returnWarehouseName |
String |
退回仓库 |
| changeWarehouseId |
String |
换货的仓库id |
| changeWarehouseName |
String |
换货仓库 |
| returnLogisticsCompanyId |
String |
退回物流公司Id |
| changeLogisticsCompanyId |
String |
换出物流公司id |
| returnLogisticsNo |
String |
退回运单号 |
| refundAmount |
String |
退款金额 |
| returnDate |
String |
退回入仓时间 |
| remark |
String |
备注 |
| receiverName |
String |
收件人名称 |
| receiverMobile |
String |
收件人手机 |
| receiverPhone |
String |
收件人电话 |
| receiverProvince |
String |
收件人省份 |
| receiverCity |
String |
收件人城市 |
| receiverDistrict |
String |
收件人区/县级市 |
| receiverAddress |
String |
收件人地址 |
| encryptReceiverCode |
String |
加密收件人编码 |
| refundReason |
String |
退款原因 |
| agreeToReturn |
String |
审核状态 |
| urgentOrder |
String |
加急订单 |
| status |
String |
收货入仓状态 |
| createDate |
String |
创建时间 |
| statusDate |
String |
收货入仓时间 |
| agreeDate |
String |
审核时间 |
| creator |
String |
创建人 |
| returnType |
String |
退货类别 |
| shopCode |
String |
店铺编码 |
| platformWarehouseCode |
String |
平台仓库编码 |
| externalStorageCode |
String |
仓储仓库代码 |
| returnKind |
String |
退货类别 |
| platformReturnStatus |
String |
平台退货状态 |
| refundableAmount |
String |
应退金额 |
| returnOrdersGoodsList |
array |
退回商品列表 |
| changeOrdersGoodsList |
array |
换出商品列表 |
退货/换货商品明细
| 参数名 |
类型 |
说明 |
| tradeNo |
String(50) |
交易单号 |
| goodsCode |
String(50) |
商品编码 |
| outGoodsId |
Long(20) |
外部商品ID |
| goodsName |
String(400) |
商品名称 |
| unit |
String(100) |
商品单位 |
| goodsSpecs |
String(100) |
规格名称 |
| quantity |
BigDecimal |
商品数量 |
| price |
BigDecimal |
标准售价 |
| amount |
BigDecimal |
标准金额 |
| realPrice |
BigDecimal |
实际售价 |
| payAmount |
BigDecimal |
实际金额 |
| agioAmount |
BigDecimal |
折扣金额 |
| taxRate |
BigDecimal |
税率 |
| taxType |
String |
税率类型:0-含税;1-免税;2-未税 |
| remark |
String(100) |
备注 |
| ordersBatchs |
List[String] |
商品唯一码列表 |
| useGovSubsidy |
String |
是否使用国补:0-否;1-是 |
| ordersBatchsAndSn |
array |
商品唯一码和SN码列表 |
响应参数
| 参数名 |
必选 |
类型 |
说明 |
| state |
否 |
boolean |
响应结果:true-成功;false-失败 |
| code |
否 |
int |
响应码:0-成功;1-错误 |
| message |
否 |
String |
错误信息 |