Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
物料平台 openApi 接口文档
修改记录
版本 修改日期 修改记录 修改者V1.0 2017/06/16 创建 在东
2017/07/17 1. 配送指令创建时间字段为:
create_date
2. 更新各字段和数据库一致.
在东
2017/07/20 1. 增加配送地址信息数据结构AssetDeliveryAddress
2. 增加物流单信息数据结构LogisticsInfo
3. 配送指令增加物料信息, 配送数量,
申请单 id.
3. 其他字段更新说明等.
在东
2017/07/25 配送指令中物流信息改成单数,
logistics_info 只在个性码生产时有一个
在东
2017/07/31 物料生产流程图更新 在东2017/08/07 AssetDeliveryAddress 加”区”的字
段: district, 比如西湖区在东
2017/08/09 AssetDeliveryAddress 的 district 拼写错误改正.
在东2017/08/15 生产指令 asset_resource 字段格式定 在东
义说明(目前用于获取空码备货的码值文件地址.).
2017/08/18 生产指令 asset_resource, key 值附录6.2 说明.
在东2017/10/23 1.生产指令新增 3 个字段, 用于透传:
生产单号(key 为 produce_order), 备注(key 为 memo), 业务渠道(key 为biz_tag).
2.个性码的生产指令 asset_resource
中会新增个性码码值, key 为PERSONAL_QRCODE.
在东
2017/12/4 1. 添加环境介绍2. 添加流程介绍3. 附录中添加 demo
4. 配送指令新增字段业务渠道(key
为 biz_tag).
欧阳岩松
2017/12/19 1.增加 supplier_name, 和 supplier_id
一起标识对应供应商的信息.
在东2018/02/05 新增 3.8 – 物料信息反馈接口 在东2018/02/05 机具序列号反馈格式为数组. 在东2018/03/01 增加 3.4,3.7 - 暂不支持分批反馈说
明.
增加 3.8 - 接口反馈节点说明.
在东
1 概述
1.1 术语
术语 描述物料供应商(商户) 物料生产方物流供应商(商户) 负责物流的供应商物料平台 支付宝物料设计、生产、运输的信息平台.
开放平台 支付宝开放平台(open.alipay.com),通过开放平台网关提供开放 api 给第三方调用
1.2 整体流程介绍
商家通过物料平台进行物料生产和配送, 操作生产单的读取和更新, 配送单的读取和更新.
物料生产流程
物料配送流程
1.3 错误码
错误码 错误描述ILLEGAL_PARAMS 参数不合法SYSTEM_ERROR 系统繁忙
INVALID_OP 非法操作SIGN_CHECK_FAIL 验签失败PAGE_SIZE_ILLEGAL 请求订单数量不在指定范围PRODUCE_ORDER_QUERY_FAILED 获取生产指令异常HAS_NO_ASSIGN_ITEM 供应商名下无此分配记录ASSET_PRODUCE_PROCESS_EXCEPTION 配送反馈更新失败异常注意: 仅列出部分, 后面更新, 待增加.
2 接入流程
2.1 开放平台接入
接入指南详细步骤: 详见【物料平台商家接入开放平台】.
线上(生产)环境由供应商按照文档指南进行接入.
开发或测试环境由物料平台接口人负责提供账号进行联调.
2.2环境介绍
1. stable 环境也叫开发环境, 供应商接入时开发联调在该环境进行, 测试 app 信息由物料平台接口人提供.
openapi 网关地址: http://openapi.stable.dl.alipaydev.com/gateway.do
2. sit 环境:SIT 环境即 TEST 环境, 和开发环境一样属于线下环境.
开发环境联调通过之后, 由物料平台接口人决定, 供应商是否需要接入该环境进行联调.
openAPI 网关地址: http://openapi.sit.dl.alipaydev.com/gateway.do
3. 预发布环境这是上线前的必须在该环境进行验收 , 供应商需要在此前按照[物料平台上架接入开放平台]申请好线上账号.
如何连接预发:
- 供应商绑定 hosts 103.52.199.48 openapipre.alipay.com
- 然后访问 openapipre.alipay.com , 网关地址为 https://
openapipre.alipay.com/gateway.do.
注意:
预发布环境的数据库跟线上生产环境是同一套,服务器是跟线上隔离的,PD/
开发/测试在该环境下用真实的线上账号进行本次需求内容的测试验收.
预发环境供应商必须走线下实际流程,必须实际在生产线上生产,然后送货至物流商,反馈实际的物流信息和物料信息。物流商也必须按照实际流程进行配送。完成流程以后预发才算通过。4. 线上环境预发验证通过之后, 业务方确认后可以开启线上流量.
线上网关: https://openapi.alipay.com/gateway.do
2.3 调用说明
该章节说明 openAP 请求参数格式以及返回结果的格式 , 物料平台提供的 api 接口详情参照下一章节.
(1) 基本参数所有 API 接口都必须传入的参数如下:
参数名 参数名称 参数类型 必填
描述 范例app_id 开 发 者 的
Appid
String(32) Y 支 付 宝 分 配 给 开发者的应用 Id
20140723000
07148
method 接口名称 String(128
)Y
接口名称 alipay.trade.pa
y
charset参 数 字符编码 String(10) Y
请 求使用 的编码格 式 , 如 utf-
8,gbk,gb2312 等
utf-8
sign_type 签名类型 String(10) Y
商 户 生 成 签 名 字符串所使用 的 签名算法类型, 目前支持 RSA
RSA
sign 签名 String(256
)Y
商 户 请 求 参 数 的签名串
详见签名生成规则
timestamp 时间戳 String Y
发 送 请 求 的 时间 , 格 式“yyyy-
MM-dd
HH:mm:ss”
2014-07-24
03:07:50
version接 口 版 本号 String Y
调 用 的 接 口 版本,固定为:1.0
1.0
notify_url接 口 异 步通知 url
String(256
) N
支 付 宝 服 务 器主动通知商 户 服 务器里指 定 的页面http路径
http://
api.test.alipay.
net/
atinterface/
receive_notify.
htm
biz_conten
t
业务参数 String Y JSON 格 式 , 具体包含的 内 容 参见各 个 接 口 的 业 务
详见各业务接口
参数描述(2) 业务参数每个 API 接口还有一些其他业务参数,可以在下文每个接口的详细介绍中查到相关的接口参数说明,例如查询生产指令接口, 业务参数在 biz_content 字段:
(3) 接口返回结果成功结果:
{
"ant_merchant_expand_assetproduce_assign_query_response": {
"code": "10000",
"msg": "Success",
"asset_produce_items": [
{
"apply_order_id": "AO232323232323232323",
" assign_item_id ": "2017031620076002000006742800",
"biz_tag": "{"ch_tag01":"服务商-开户"}",
"template_id": "234",
"template_name": "A6 个性码套装挂牌组",
"create_date": "2017-12-14 15:24:30",
"count": "1",
"apply_date": "2017-05-12 16:20:22",
"receiver_name": "收货人姓名",
"receiver_mobile": "联系人电话",
"receiver_address": "收货人地址",
"province": "浙江",
"city": "杭州",
"district": "西湖区",
"postcode": "postcode",
"supplier_pid": "208812312313","asset_resource":
"{"PERSONAL_QRCODE_URL":"http://mmtcdp.stable.alipay.net/wsdk/img?
fileid=A*aHOHTo8vGhkAAAAAAAAAAABjAQAAAA&t=1iJyrP341c3Q5W
OE498k2gAAAABkJyAAAAAA&bz=am_afts_mrchasset&zoom=origi
nal","PERSONAL_QRCODE":”https://qr.alipay.com/
tsx06551jwxxcwxbvvh2j7c"}",
}
],
"has_next_page": true
},
"sign": " CwMoJ6Nu...MWKg=="
}
失败结果:
{
"ant_merchant_expand_assetproduce_assign_query_response": {
"code": "40004",
"msg": "Business Failed",
"sub_code": "PAGE_SIZE_ILLEGAL",
"sub_msg": "业务异常, 请求生产指令数量有误"
},
"sign": "CwMoJ6Nu...MWKg=="
}
接口调用失败时,返回消息中一定存在 code、msg、sub_code、sub_msg,其中sub_code 和 sub_msg表示业务定义的错误码, 具体参考【1.3 错误码】.
接口返回各参数含义可参考[FAQ5.1/5.2]
3 详细接口
3.1 接口列表
接 口编号
API 名称 接口含义3.2 ant.merchant.expand.assetproduce.assign.query 获取生产指令接口3.3 ant.merchant.expand.assetproduce.assign.sync 生产指令接收反馈
接口3.4 ant.merchant.expand.assetproduce.complete.sync 物料生产完成反馈
接口3.5 ant.merchant.expand.assetdelivery.assign.query 获取配送指令3.6 ant.merchant.expand.assetdelivery.assign.sync 配送指令接收反馈3.7 ant.merchant.expand.assetdelivery.complete.sync 配送完成反馈3.8 ant.merchant.expand.assetinfo.sync 物料信息反馈接口
3.2 生产指令获取接口
- API名称:ant.merchant.expand.assetproduce.assign.query (获取生产指令接口)- API应用场景说明:获取某个供应商需要处理的生产指令, 包含所有物料的生产指令(个性码,空码,基础物料).
- 参数详细说明:- 入参:
参数 类型 是否必填 最大长度 描述 示例page_size Number 是 10 一 次 请 求
获 取 数 量 可选值 为[1,200]
100
- 响应参数参数 类型 是
否必填
最大长度
描述 示例
has_next_page Boolean 是 - 是否有下一页 true
code String 是 返回结果 code 10000
msg String 是 返回接口描述 Success
asset_produce_items AssetProduceIte
m[]
是 - 生产指令集合 -
+ assign_item_id String 是 64 订单明细 ID PI2017031620076002
+ apply_order_id String 是 64 申请单号 AO201608012007600
+ template_id String 是 64 模板 ID 160
+ template_name String 是 256 模板名称,线下约定的物料名
转账 码吊牌、窗贴10*10贴纸-推荐使用支付宝
+asset_resource String 是 4000 生产资料大字段, 用于提供物料供应商生产所需资料.
比如空码地址:
{
"QRCORE_FILE_URL": {
"x-0.txt":
"https://alipay.com/os/t
est0.txt",
"x-1.txt":
"https://alipay.com/os/t
est1.txt"
}
}
取出对应的 txt 地址值就好. 更多详情见:
+ count String 是 128 数量 1000
+ apply_date String 是 - 申请日期, 格式:
yyyy-MM-dd HH:mm:ss
2017-04-12 19:12:57
+ create_date String 是 - 订单创建日期, 格式:
yyyy-MM-dd HH:mm:ss
2017-05-01 19:12:57
+ province String 是 256 省 浙江省+ city String 是 256 city 杭州市+ district String 是 256 区 西湖区+ postcode String 否 128 收件人地址邮编; 310000
+ supplier_pid String 是 1024 供应商 id. 2088302083288280
+ data_version String 是 64 数据版本, 目前来说只会是 data_verion == 2.
1:旧模式,需要在生产完成后反馈运单号 2:新模式:不需要在生产完成后反馈运单号
+ produce_order String 是 64 生产单号 PO2017101202096225
+ memo String 否 500 备注 业务方下达生产的备注
+ biz_tag String 是 500 业务渠道 {"ch_tag07":"红包码套装-天猫销售"}
- 错误码业务错误码 错误描述 解决方案PAGE_SIZE_ILLEGAL 业务异常请求生
产指令数量有误设置正确的 page_size, 范围为[1, 200].
PRODUCE_ORDER_QU
ERY_FAILED
业务异常生产指令获取异常
需要联系物料平台排查具体原因.
3.3 生产指令下达反馈接口
- API名称:ant.merchant.expand.assetproduce.assign.sync (生产指令接收反馈接口)- API应用场景说明:当调用方调用了生产指令下达接口后,并且供应商系统处理成功后调用该接口,保证再次获取生产指令接口时不会拉取到重复数据。- 参数详细说明:- 入参
参数 类型 是否必填
最大长度
描述 示例asset_results AssetResult [] 是 - 生 产 指 令
接 收 情况,最多200条
-
+ success Boolean 是 64 接 口处理结果
true
+ assign_item_id String 是 64 订 单 明 细 201703162007600200000674280
ID 0
+ error_code String 否 64 错误码 error_code
+ error_desc 否 否 128 error_desc 错误描述- 响应参数
参数 类型 是 否必填
最大长度
描述 示例asset_results AssetResult[] 是 1000 生 产 指 令 反
馈结果-
+ success Boolean 是 64 接 口处理结果
true
+ assign_item_id String 是 64 订单明细 ID 201703162007600200000674280
0
+ error_code String 否 64 错误码 HAS_NO_ASSIGN_ITEM
+ error_desc String 否 128 error_desc 供应商名下无此分配记录
- 错误码业务错误码 错误描述 解决方案PAGE_SIZE_ILLEGAL 业务异常请求生
产指令数量有误设置正确的 page_size, 范围为[1, 200].
HAS_NO_ASSIGN_ITEM 供应商名下无此分配记录
确认订单明细 ID 是否正确;
如果确实无误, 那么需要联系物料平台排查具体原因.
注意:
(1)接口返回结果 code 不是 ”10000” (比如”20000”, “40004’) 时表示接口调用出现异常, 商家需要对所有订单重新进行反馈.
(2) 接口返回结果 code 是”10000”, 表示接口调用成功, 商家需要从接口返回的结果中判断每个生产单是否更新成功, 取 AssetResult 中的 success判断该订单是否处理成功, 商家需要对 success 为 false 的订单重新反馈.
3.4 生产订单完成反馈接口
- API名称:ant.merchant.expand.assetproduce.complete.sync (物料生产完成反馈接口)- API应用场景说明:当生产的物料已经完成时,调用该接口。- 参数详细说明:- 入参
参数 类型 是 否必须
最大长度
描述 示例值
asset_produce_details AssetProduceDetail
[]
是 - 物 料 生产 单完成 后制定 物 流信息
-
+ assign_item_id String 是 64 订 单 明细 ID
201703162007600200000674280
0
(只能填写一条)
- 响应参数参数 类型 是否必须 最大长度 描述 示例值asset_results AssetResult[] 是 - 物 料 订 单
更 新 结果信息
-
+ success Boolean 是 64 true true
+ error_code String 否 64 errorCode HAS_NO_ASSIGN_ITEM
+ error_desc String 否 64 错误描述 供应商名下无此分配记录
+assign_item_id String 是 64 订 单 明 细ID
订单明细 ID
- 错误码业务错误码 错误描述 解决方案HAS_NO_ASSIGN_ITEM 供应商名下无此
分配记录确认订单明细 ID 是否正确;
如果确实无误, 那么需要联系物料平台排查具体原因.
ASSET_PRODUCE_PRO
CESS_EXCEPTION
配送反馈更新失败异常
先进行重试, 如果仍然有问题, 需要联系物料平台排查具体原因.
注意:
(1)接口返回结果 code 不是 ”10000” (比如”20000”, “40004’) 时表示接口调用出现异常, 商家需要对所有订单重新进行反馈.
(2) 接口返回结果 code 是”10000”, 表示接口调用成功, 商家需要从接口返回的结果中判断每个生产单是否更新成功, 取 AssetResult 中的 success判断该订单是否处理成功, 商家需要对 success 为 false 的订单重新反馈.
(3) 该接口暂不支持分批反馈, 比如一个生产指令生产完成之后, 调该接口一次性反馈.
3.5 获取配送指令
- API名称:ant.merchant.expand.assetdelivery.assign.query (获取配送指令接口)- API应用场景说明:
用于给物流服务商主动获取物料配送订单.
Note: 获取配送订单之后, 需要调用”3.6 配送指令接收反馈” 接口进行反馈.
参数详细说明:- 入参:
参数 类型 是否必填 最大长度 描述 示例page_size Number 是 10 一 次 请 求
获 取 数 量 可选值 为[1,200]
100
- 响应参数参数 类型 是
否必填
最大长度
描述 示例
has_next_page Boolean 是 - 是否有下一页 true
asset_delivery_items AssetDeliveryItem[] 是 - 配送指令集合 -
+ assign_item_id String 是 64 配送订单唯一Id
201703162007600200000674280
0
+
assign_out_order_id
String 是 64 配送流水号,可用于对账
支付宝内部的配送流水号, 可供物料商和物流商用于对账.
+ apply_order_id String 是 64 申请单号 AO2018020512345678
+ supplier_id String 是 64 对应供应商 id. 对应供应商 id, 比如生产商需要把货物配送至物流商仓库, 那么该 id
为对应物流供应商的 id.
+ supplier_name String 是 64 对应供应商名称
和 supplier_id 对应+ gmt_assign String 是 - 配送指令生成
日期, 格式:
2017-05-01 19:12:57
yyyy-MM-dd
HH:mm:ss
+ item_id String 是 - 物料 id
+ item_name String 是 - 物料名称+ amount String 是 - 配送数量+ from_address AssetDeliveryAddre
ss
是 - 发送地址+ + province String 是 256 省 浙江省+ + city String 是 256 市 杭州市++ district String 是 256 区 西湖区+ + address String 是 256 地址 黄龙时代小邮局 2楼+ + contact_name String 是 64 联系人 赵四+ + contact_phone String 是 64 联系电话 18012345678
+ + zip_code String 否 64 邮编 31000
+ to_address AssetDeliveryAddre
ss
是 - 接收地址+ + province String 是 256 省 浙江省+ + city String 是 256 市 杭州市++ district String 是 256 区 余杭区+ + address String 是 256 地址 青青花园 302楼+ + contact_name String 是 64 联系人 闲林 baby
+ + contact_phone String 是 64 联系电话 18899999999
+ + zip_code String 否 64 邮编 31000
+ logistics_info LogisticsInfo 否 - 物流信息+ + logistics_no String 是 64 物流单号 400012131
+ + logistics_name String 是 64 物流公司名称 顺丰速运+ + logistics_code String 是 64 物流公司 code SF
+ memo String 否 256
+ biz_tag String 是 500 业务渠道 {"ch_tag07":"红包码套装-天猫销售"}
+ print_data String 否 500
0
菜鸟电子面单信息(仅供对接了菜鸟的供应商)
{“encryptedData”:”AES:bQclwcq3Vs
N
GgrVAW5dqQ1T0HpsJjLiR…
gbD+3Y5
mwJsHb”,”signature”:”MD:t5….==”,”
te
mplateURL”:”http://
cloudprint.cainia
o.com/print/resource/123 “}
+ action_type String 否 128 SEND,RECEIVE SEND - 发货指令(执行向目的地进行发货动作) , RECEIVE - 收货指令(执行从来源地进行收货动作)
默认值为 SEND. (如果为空, 也应该视为 SEND, 发货指令.)
- 错误码业务错误码 错误描述 解决方案PAGE_SIZE_ILLEGAL 业 务 异 常 , 请 求
配送指令数量有误
设置正确的 page_size, 范围为[1, 200].
PRODUCE_ORDER_QU
ERY_FAILED
业 务 异 常 , 配 送指令获取异常
需要联系物料平台排查具体原因.
3.6 配送指令接收反馈
- API名称:ant.merchant.expand.assetdelivery.assign.sync (配送指令接收反馈接口)- API应用场景说明:当调用方调用了配送指令下达接口(3.5)后,并且供应商系统处理成功后调用该接口,保证再次获取配送指令接口时不会拉取到重复数据。- 参数详细说明:- 入参
参数 类型 是否必填
最大长度
描述 示例delivery_results AssetResult [] 是 - 配 送 指 令
接 收 情况,最多200条
-
+ success Boolean 是 64 接 口处理结果
true
+ assign_item_id String 是 64 配 送 订 单明细 ID
201703162007600200000674280
0
+ error_code String 否 64 错误码 error_code
+ error_desc String 否 128 error_desc 错误描述- 响应参数
参数 类型 是 否必填
最大长度
描述 示例delivery_results AssetResult [] 是 1000 配 送 指 令 反
馈结果-
+ success Boolean 是 64 接 口处理结果
true
+ assign_item_id String 是 64 订单明细 ID 201703162007600200000674280
0
+ error_code String 否 64 错误码 HAS_NO_ASSIGN_ITEM
+ error_desc String 否 128 error_desc 供应商名下无此分配记录
- 错误码业务错误码 错误描述 解决方案HAS_NO_ASSIGN_ITEM 供应商名下无此
分配记录确认订单明细 ID 是否正确;
如果确实无误, 那么需要联系物料平台排查具体原因.
注意:
(1)接口返回结果 code 不是 ”10000” (比如”20000”, “40004’) 时表示接口调用出现异常, 商家需要对所有订单重新进行反馈.
(2) 接口返回结果 code 是”10000”, 表示接口调用成功, 商家需要从接口返回的结果中判断每个生产单是否更新成功 , 取 DeliveryResult 中的 success判断该订单是否处理成功, 商家需要对 success 为 false 的订单重新反馈.
3.7 配送完成反馈
- API名称:ant.merchant.expand.assetdelivery.complete.sync (物料配送完成反馈接口)- API应用场景说明:当物料配送已经完成时,调用该接口。空码类型,需要回传递物流单号,物流公司信息。
- 参数详细说明:- 入参
参数 类型 是否必须
最 大长度
描述 示例值asset_delivery_details AssetDeliveryDetail
[]
是 - 物 料 配送 单 完成 后 指定 物 流信息
-
+ assign_item_id String 是 64 订 单 明细 ID
20170316200760020000067428
00
+ amount Integer 是 128 配送量+ logistics_infos LogisticsInfo 否 - 物 流 信
息可以为多个物流单,若配送给用户则需要必须传
+ + logistics_no String 否 64 物流单号
400012131
+ + logistics_name String 否 64 物 流 公司名称
顺丰速运(见附录 6.3)+ + logistics_code String 否 64 物 流 公
司 code
SF(见附录 6.3)
- 响应参数参数 类型 是否必须 最大长度 描述 示例值delivery_results AssetResult[] 是 - 物 料 订 单
更 新 结果信息
-
+ success Boolean 是 64 true true
+ error_code String 否 64 errorCode HAS_NO_ASSIGN_ITEM
+ error_desc String 否 64 错误描述 供应商名下无此分配记录
+assign_item_id String 是 64 订 单 明 细ID
订单明细 ID
- 错误码业务错误码 错误描述 解决方案HAS_NO_ASSIGN_ITEM 供应商名下无此
分配记录确认订单明细 ID 是否正确;
如果确实无误, 那么需要联系物料平台排查具体原因.
ASSET_DELIVERY_PRO
CESS_EXCEPTION
配送反馈更新失败异常
先进行重试, 如果仍然有问题, 需要联系物料平台排查具体原因.
注意:
(1)接口返回结果 code 不是 ”10000” (比如”20000”, “40004’) 时表示接口调用出现异常, 商家需要对所有订单重新进行反馈.
(2) 接口返回结果 code 是”10000”, 表示接口调用成功, 商家需要从接口返回的结果中判断每个生产单是否更新成功, 取 AssetResult 中的 success判断该订单是否处理成功, 商家需要对 success 为 false 的订单重新反馈.
(3) 该接口暂不支持分批反馈, 在一个配送指令完成之后, 调该接口一次性反馈(供应商可自行分批发货, 分多个包裹, 然后把所有物流单号反馈上来. 数量不要超过 35 个. ).
3.8 物料信息反馈接口
- API名称:ant.merchant.expand.assetinfo.sync (物料信息反馈接口)- API应用场景说明:该接口用于向物料平台同步生产或配送完成的物料信息 , 包括但不限于序列号,
mac 地址等.
- 参数详细说明:- 入参
参数 类型 是否必须
最 大长度
描述 示例值asset_infos AssetInfoItem [] 是 - 传 入 需
要 反 馈的 物 料信 息 对象列表.
-
+ assign_item_id String 是 64 订 单 明细 ID
DI2017031620076002,
PI2018020412324552
+ type String 是 64 PRODU
CE 或者DELIVE
RY
生产资料或配送资料
+ sub_type String 是 128 具 体 物料 信 息类型, 定义 见 附录 6.4.
MC_SN_NOS - 机具序列号.
+ value String 是 3000 物料信息,长度限制为3000,
格式按照附录6.4约定.
机具序列号:
["SN12312312312321",
"SN99988889FE898"]
- 响应参数参数 类型 是否必须 最大长度 描述 示例值info_results AssetResult[] 是 - 物 料 订 单
更 新 结果信息
-
+ success Boolean 是 64 true true
+ error_code String 否 64 errorCode HAS_NO_ASSIGN_ITEM
+ error_desc String 否 64 错误描述 供应商名下无此分配记录
+assign_item_id String 是 64 订 单 明 细ID
DI2017031620076002,
PI2018020412324552
- 错误码业务错误码 错误描述 解决方案HAS_NO_ASSIGN_ITEM 供应商名下无此
分配记录确认订单明细 ID 是否正确;
如果确实无误, 那么需要联系物料平台排查具体原因.
INFO_SYNC_INVALID_
COUNT
物料信息反馈数量非法或者超过指令数量.
反馈不超过指令中生产或配送数量的物料信息.
INFO_SYNC_DUP_VALU
E
物料信息重复反馈.
已经反馈过该物料信息, 修改重复反馈的信息, 然后重试.
INFO_LENGTH_INVALI
D
物料信息长度不合法 , 为空或者长度超过 3000.
如果是反馈信息长度超过 3000 , 需要进行分批反馈
注意:
(1)接口返回结果 code 不是 ”10000” (比如”20000”, “40004’) 时表示接口调用出现异常, 商家需要对所有订单重新进行反馈.
(2) 接口返回结果 code 是”10000”, 表示接口调用成功, 商家需要从接口返回的结果中判断每个生产单是否更新成功, 取 AssetResult 中的 success判断该订单是
否处理成功, 商家需要对 success 为 false 的订单重新反馈.
(3) 物料信息反馈接口可以支持多次反馈, 如果该指令需要上传的物料信息长度超过 3000, 需要进行分配次反馈. 多次反馈的数量总数不能超过指令中生产或配送数量.
(4) 物料信息反馈入参说明.
type – 是 DELIVERY还是 PRODUCE 需要供应商和业务确认生产配送流程之后确定.
sub_type – 具体物料信息类型, 这个也是业务确定之后, 字段各方进行约定, 具体值参见 6.4.
4 资源下载
- SDK 下载:https://doc.open.alipay.com/docs/doc.htm?
spm=a219a.7629140.0.0.DxnU6Y&treeId=193&articleId=103419&docType=1
(SDK 中封装了签名,链接的逻辑,仅需要提供数据即可,强烈推荐使用)支付宝提供的版本有:
java(jdk1.5)版, java(jdk1.4)版, .net(2010)版, .net(2005)版, php 版.
- 秘钥生成:https://doc.open.alipay.com/docs/doc.htm?
treeId=291&articleId=105971&docType=1
如果无法访问下载, 联系物料平台开发.
5 FAQ
5.1 openapi 接口返回参数怎么理解?
(1) 接口返回成功:
比如下图是 api:
ant_merchant_expand_assetproduce_assign_query_response
的 返 回 结 果 , code 为 ” 10000”, msg 为 ” Success”, 其 余 的(asset_produce_items, has_next_page)是业务返回.
外层的 sign 值给商户进行验签, 商家可用”支付宝公钥”进行验签, 确定是来自支付宝的返回.
(2) 接口返回失败:
看下面两个失败的场景:
上图是由于业务系统繁忙 , openapi 调用失败, 商家可以进行重试, 长时间不可用可联系我们.
上图是 sub_code 为”PAGE_SIZE_ILLEGAL”, 可以在本文档 1.3看到, 这是由我们业务系统返回的错误码, 因为我们业务系统做了限制, 每次只能最多请求200 个, 不满足就报这个异常.
5.2 openapi 接口参数规范(1) 成功返回规范码code(返回码枚举值):统一为 10000
msg (返回码类型):统一为 Success
sub_code(子错误码):统一为空sub_msg(错误描述):统一为空(2) 业务失败返回规范码code(返回码枚举值):统一为 40004
msg(返回码类型):对于业务系统统一为 Business Failed
subcode(子错 误 码): 统 一 由大写英文 字母和 ”“组 成 , 如 :INVAILD_METHOD,当且仅当明确失败时必填项。sub_msg(返回码描述):中文描述,明确失败的具体原因.
5.3 生产指令中 apply_date 和 create_date 两个字段有啥目的和作用?
- apply_date 为用户/商户提交申请的时间, 后面可能会用于监控生产效率.
- create_date 是物料平台生成`生产指令`的时间, 这个字段目前主要用于平台后续的对账需求.
5.4 非 java 公私钥生产方法https://docs.open.alipay.com/291/106097
6 附录
6.1 物料供应商端数据兼容方案
当前(旧模式):对接 3 个接口,拉取生产指令数据、接受反馈,生产完成反馈,并且在生产完成反馈中需要传递运单号改造后(新模式):对接 6 个接口,拉取生产指令数据、接受反馈,生产完成反馈(原有接口);拉取配送指令数据,配送指令接受反馈,配送完成反馈。两类接口都不需要提供运单号,运单号有物流方的配送指令反馈中提供。灰度过程中,两种模式会同时存在,数据兼容方案:旧模式中的生产指令数据中会添加 version 字段,version==1 的数据需要在生产完成后反馈运单号,version==2 的数据不需要在生产完成后反馈运单号
6.2 生产指令 asset_resource 字段说明.
目前可以取的 key 值有:
- PERSONAL_QRCODE_URL: 个性码- QRCODE_FILE_URL: 空码文件 url 地址- PERSONAL_QRCODE: 个性码码值
该字段为 json 大字段, 用于定义生产所需要的各种资料, 比如目前空码生产需要的 qrcode 地址, 对应的 key 为” QRCORE_FILE_URL”:
{
"QRCORE_FILE_URL": {
"xxxx-0.txt":
"https://alipay.com/os/test1.txt",
"xxxx-1.txt":
"https://alipay.com/os/test2.txt",
"xxxx-2.txt":
"https://alipay.com/os/test3.txt"
}
}
QRCORE_FILE_URL 对应的 value 为一个 map, 里面可能有多个文件, 上面例子中可以取出 3 个 txt 文件.
个性码的图片 url 和码值, 是这样:
{
"PERSONAL_QRCODE_URL": "http://mmtcdp.test.dl.alipaydev.com/wsdk/img?
fileid=A*bqMbSq26dG8AAAAAAAAAAABjAQAAAA&t=k_yjzcEzCufkpwsqYxR1lw
AAAABkJyAAAAAA&bz=am_afts_mrchasset&zoom=original",
"PERSONAL_QRCODE": " https://qr.alipay.com/tox04790oqebljshs7zyy71 "
}
6.3 合法物流公司 code
物流公司code
物流公司名称POST 中国邮政ZJEMS 浙江省邮政速递物流有限公司SF 顺丰快递
CAINIAO 菜鸟YTO 圆通速递ZJS 宅急送快递ZTO 中通速递YUNDA 韵达快递STO 申通快递POSTB 邮政快递包裹EMS EMSHTKY 百世快递
6.4 物料信息反馈 sub_type
sub_type 描述 value 格式 注意事项MC_SN_NOS 机具序列号 为数组的 jsonString, 比如
"[\"SN12312312312321\"
, \"SN99988889FE898\"]".
机具相关反馈顺序:
1.生产完成后, 调用[3.4 接口]进行生产指令完成反馈.
2.配送至物流商之后, 调用[3.7 接口]进行配送指令( 第一个配送指令 ) 完成反馈.
3. 调用[3.8 接口]回传 SN 号(assign_item_id 取生产商至物流商的配送指令, 即第一个配送指令).
4. 物流商揽收之后, 调用[3.7 接口]进行配送指令( 第二个配送指令 ) 完成反馈, 需要回传物流信息(快递单号).
目前来说, 机具生产商和物流商均为同一个家供应商, 所以第一个配送指令和第二个配送指令都是给同一个供应商的.