1 公共参数

与V1的变化

v2升级指南

请求地址

测试地址: https://openapi.st.xiaomiyoupin.com
线上地址: https://shopapi.io.mi.com

HTTP Header

Content-Type: application/json

HTTP Method

POST

代码示例

附件下载

数据加密

比如单次发货接口 /mtop/aftersale/openapi/delivery/single

你的请求参数原始data内容为:

{"orderId":"4191005964004759","expressSn":104534,"expressName":"中通快递","bizCode":"zhongtong","userId":123456,"itemList":[{"skuId":3000054,"count":2,"pid":19558}],"partnerId":65}

签名token是最终加密sign签名时用 key, 加密key是加密data字段内容时用 aesKey

对 data 进行加密, 加密工具可以参考该 AesUtils 加密方式, data 的内容不做任何处理, 暴露原始 json 格式即可

ngUcGaGPK06fSjcKepbxwDyFFKu/tGdmCjMpdF6oJKDHDbWao6degoi142CZ+2agSL+qOPINKbdq7RUiLVxrQMXcT5Ztsr5clwILR5bzdq+mvMe1Pf9DLQ79OmoOVGz8UEiVuEPJjeOswKYIUNK4gsbT10jraX8Aow3EDMtw1koDidKf0AOcV/MhvjGrphVeE1Cx5wld2ZRa1g7NihNikahfbvlyoEilruZHfyd+WmZG5GpWSlN8ueGXu0C2nC43

签名计算

原始字符串固定位置为 data=你上一步加密后的data内容&partnerId=你的商户标识&timestamp=拼接一个11位时间戳(一般为当前)+你的签名密钥token 比如商户 65

data=ngUcGaGPK06fSjcKepbxwDyFFKu/tGdmCjMpdF6oJKDHDbWao6degoi142CZ+2agSL+qOPINKbdq7RUiLVxrQMXcT5Ztsr5clwILR5bzdq+mvMe1Pf9DLQ79OmoOVGz8UEiVuEPJjeOswKYIUNK4gsbT10jraX8Aow3EDMtw1koDidKf0AOcV/MhvjGrphVeE1Cx5wld2ZRa1g7NihNikahfbvlyoEilruZHfyd+WmZG5GpWSlN8ueGXu0C2nC43&partnerId=65&timestamp=1570327235658624ba4066187ae293b63851686bcf

然后整体进行md5加密后得到你的签名

sign=8b5472bd8453be8304c7d87b317b93f8

请求示例

curl -H "Content-Type:application/json" -X POST "https://openapi.test.youpin.mi.com/mtop/aftersale/openapi/delivery/single" -d '[{"partnerId":"65","data":"ngUcGaGPK06fSjcKepbxwDyFFKu/tGdmCjMpdF6oJKDHDbWao6degoi142CZ+2agSL+qOPINKbdq7RUiLVxrQMXcT5Ztsr5clwILR5bzdq+mvMe1Pf9DLQ79OmoOVGz8UEiVuEPJjeOswKYIUNK4gsbT10jraX8Aow3EDMtw1koDidKf0AOcV/MhvjGrphVeE1Cx5wld2ZRa1g7NihNikahfbvlyoEilruZHfyd+WmZG5GpWSlN8ueGXu0C2nC43","sign":"8b5472bd8453be8304c7d87b317b93f8","timestamp":1570327235}]'

请求参数格式统一为, 注意外层的数组格式:

[
    {
        "partnerId": "65",
        "data": "ngUcGaGPK06fSjcKepbxwDyFFKu/tGdmCjMpdF6oJKDHDbWao6degoi142CZ+2agSL+qOPINKbdq7RUiLVxrQMXcT5Ztsr5clwILR5bzdq+mvMe1Pf9DLQ79OmoOVGz8UEiVuEPJjeOswKYIUNK4gsbT10jraX8Aow3EDMtw1koDidKf0AOcV/MhvjGrphVeE1Cx5wld2ZRa1g7NihNikahfbvlyoEilruZHfyd+WmZG5GpWSlN8ueGXu0C2nC43",
        "sign": "8b5472bd8453be8304c7d87b317b93f8",
        "timestamp": 1570327235
    }
]

返回:

{
    "code": 400080002,
    "message": "当前pid-skuId[19558-3000054]总发货数量: 3, 超过订单实际购买的数量: 1"
}

常见对接问题

1.

{
"code": 400080010,
"message": "参数为空"
}

商家id使用partnerId

2.

{
    "code": 400080019,
    "message": "数据反序列化异常"
}

参数类型错误导致反序列化失败
如订单列表接口:
错误参数示例:

{
    "pageSize": 50,
    "pageNo": 1,
    "beginTime": 1594609845,
    "endTime": 1594782645,   
    "status": "[4,6]"
}

示例中的字段status是String类型,与要求不一致。
正确参数:

{
    "pageSize": 50,
    "pageNo": 1,
    "beginTime": 1594609845,
    "endTime": 1594782645,
    "status": [4,6]
}

返回反序列化异常时,请按照文档参数类型检查请求参数。

3.

{
    "code": 400080011,
    "message": "请求已过期"
}

时间戳的有效时间是10分钟

4.

{
    "code": 400080002,
    "message": "已选择过pid维度发货,不可操作包裹发货,请继续使用pid维度发货"
}

有品目前支持两种发货方式:pid发货(V1发货接口),包裹发货(V2发货接口)
一个订单只能使用一种发货方式
具体请见 升级指南 新增包裹发货模式

5.

{
    "code": 500,
    "message": "系统繁忙,请稍后重试",
    "detailMsg": "...Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 2 column 6 path $"
}

请求参数格式为json数组([{}])
检查在json外层是否有[]

©xiaomiyoupin.com 苏B2-20180351 苏ICP备18025642号-1            该文件修订时间: 2023-04-26 01:54:18

results matching ""

    No results matching ""