33
物物物物 openApi 物物物物 物物物物 版版 版版版版 版版版版 版版版 V1.0 2017/06/1 6 版版 版版 2017/07/1 7 1. 版版版版版版版版版版版: create_date 2. 版 版 . 版版 2017/07/2 0 1. 版版版版版版版版版版版版 AssetDeliveryAddress 2. 版版版版版版版版版版版 LogisticsInfo 3. 版版版版版版版版版版, 版版版版, 版版版 id. 3. 版版版版版版版版版. 版版 2017/07/2 5 版版版版版版版版版版版版版, logistics_info 版 版版 2017/07/3 1 版版版版版版版版版 版版 2017/08/0 7 AssetDeliveryAddress 版”版”版版 版: district, 版 版 西 版版 2017/08/0 9 AssetDeliveryAddress 版 district 版版版版版版. 版版

gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

物料平台 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 字段格式定 在东

Page 2: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

义说明(目前用于获取空码备货的码值文件地址.).

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 - 接口反馈节点说明.

在东

Page 3: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

1 概述

1.1 术语

术语 描述物料供应商(商户) 物料生产方物流供应商(商户) 负责物流的供应商物料平台 支付宝物料设计、生产、运输的信息平台.

开放平台 支付宝开放平台(open.alipay.com),通过开放平台网关提供开放 api 给第三方调用

1.2 整体流程介绍

商家通过物料平台进行物料生产和配送, 操作生产单的读取和更新, 配送单的读取和更新.

Page 4: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

物料生产流程

Page 5: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

物料配送流程

1.3 错误码

错误码 错误描述ILLEGAL_PARAMS 参数不合法SYSTEM_ERROR 系统繁忙

Page 6: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

INVALID_OP 非法操作SIGN_CHECK_FAIL 验签失败PAGE_SIZE_ILLEGAL 请求订单数量不在指定范围PRODUCE_ORDER_QUERY_FAILED 获取生产指令异常HAS_NO_ASSIGN_ITEM 供应商名下无此分配记录ASSET_PRODUCE_PROCESS_EXCEPTION 配送反馈更新失败异常注意: 仅列出部分, 后面更新, 待增加.

2 接入流程

2.1 开放平台接入

接入指南详细步骤: 详见【物料平台商家接入开放平台】.

线上(生产)环境由供应商按照文档指南进行接入.

开发或测试环境由物料平台接口人负责提供账号进行联调.

Page 7: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

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

Page 8: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

- 然后访问 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

Page 9: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

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 格 式 , 具体包含的 内 容 参见各 个 接 口 的 业 务

详见各业务接口

Page 10: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

参数描述(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": "杭州",

Page 11: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

"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]

Page 12: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 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 13: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

- 参数详细说明:- 入参:

参数 类型 是否必填 最大长度 描述 示例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":

Page 14: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

"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 15: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

- 错误码业务错误码 错误描述 解决方案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

Page 16: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

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 的订单重新反馈.

Page 17: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

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

Page 18: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

+ 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应用场景说明:

Page 19: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

用于给物流服务商主动获取物料配送订单.

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

Page 20: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

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

Page 21: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

+ 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

业 务 异 常 , 配 送指令获取异常

需要联系物料平台排查具体原因.

Page 22: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

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 配 送 指 令 反

馈结果-

Page 23: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

+ 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应用场景说明:当物料配送已经完成时,调用该接口。空码类型,需要回传递物流单号,物流公司信息。

Page 24: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

- 参数详细说明:- 入参

参数 类型 是否必须

最 大长度

描述 示例值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 错误描述 供应商名下无此分配记录

Page 25: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

+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应用场景说明:该接口用于向物料平台同步生产或配送完成的物料信息 , 包括但不限于序列号,

Page 26: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

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"]

Page 27: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

- 响应参数参数 类型 是否必须 最大长度 描述 示例值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判断该订单是

Page 28: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

否处理成功, 商家需要对 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

如果无法访问下载, 联系物料平台开发.

Page 29: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

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 调用失败, 商家可以进行重试, 长时间不可用可联系我们.

Page 30: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

上图是 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

Page 31: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

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”:

Page 32: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

{

"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 顺丰快递

Page 33: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致

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 接口]进行配送指令( 第二个配送指令 ) 完成反馈, 需要回传物流信息(快递单号).

目前来说, 机具生产商和物流商均为同一个家供应商, 所以第一个配送指令和第二个配送指令都是给同一个供应商的.

Page 34: gw.alipayobjects.com · Web view版本 修改日期 修改记录 修改者 V1.0 2017/06/16 创建 在东 2017/07/17 1. 配送指令创建时间字段为: create_date 2. 更新各字段和数据库一致