1. 简介
千易外包对接物流,需要看该文档
2. 环境要求及基础约定
授权:accessId(客户ID)、secretKey(密钥,用于验证报文信息)。对仓库来说,用双方约定的key作为验签用key。
接口地址:第三方提供服务地址供千易调用。
请求方式:
- Method: POST
- Content-Type: application/json
公共请求:
| 字段名 | 类型 | 必填 | 备注 |
|---|---|---|---|
| accessId | String | 是 | 第三方授权给千易客户ID。gwms这个字段传空 |
| method | String | 是 | 接口方法名 |
| content | String | 是 | 业务参数 |
| sign | String | 是 | 签名 |
header参数:
| 字段名 | 类型 | 必填 | 备注 |
|---|---|---|---|
| logisticsType | String | N | 物流类型 |
| secret | String | N | 第三方仓秘钥。gwms用双方约定的秘钥验签 |
| accessToken | String | N | accessToken |
| refreshToken | String | N | refreshToken |
| authInfo | String | N | gwms传物流商这边用到的授权信息。json格式 |
| apiUrl | String | N | 服务请求域名: https://www.baidu.com |
| source | String | N | 请求来源:wms、gts、qianyi等 |
注意:
- 根据source获取密钥,wms使用双方约定的密钥验签,qianyi使用请求头的secret验签。
authInfo 传值举例: "authInfo":[ {"authInfoKey":"MERCHANT_ID", "value":"BG2447"}, {"authInfoKey":"SECRET_KEY", "value":"f1dafc7b7c934d21327d990b0ea56cfcf4814ef699345a37010c07e02d5219a9"}, {"authInfoKey":"PRINT_SIZE", "value":""} ] 其中,MERCHANT_ID,SECRET_KEY,PRINT_SIZE均为物流商约定要传的字段,不同的物流商字段可能不同,都通过 json格式统一请求。
公共响应:
| 字段名 | 类型 | 必填 | 备注 |
|---|---|---|---|
| success | boolean | 是 | 业务处理是否成功 |
| message | String | 否 | 业务处理异常消息 |
签名方式:
1、将accessId和content组成json字符串{"accessId":"accessId","content":"具体业务参数"},content为空时{"accessId":"accessId"}。gwms传的accessId为空
2、将第三方分配的客户secretKey添加到json的末尾,得到待加密字串{"accessId":"accessId","content":"具体业务参数"}secretKey。gwms传的secretKey为双方约定的key
3、对待加密字串做sha1加密得到签名(org.apache.commons.codec.digest.DigestUtils.sha1Hex(待加密字串))
4、将签名赋值到公共请求的sign字段
3. 渠道列表
方法名:
- channels
返回信息:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| channelList | 渠道信息 | Array | ||
| └ channelCode | 渠道代码 | String | 必填 | 需具有唯一性 |
| └ channelName | 渠道名称 | String | 必填 | |
| └ carrier | 承运商编码 | String | N | |
| └ carrierName | 承运商名称 | String | N | |
| └ countrys | 国家信息 | List <Country> |
N | |
| └└countryCode | 国家编码 | String | Y | |
| └└countryName | 国家名称 | String | Y | |
| └ areas | 区域 | List <String> |
N |
请求示例:
{ "accessId": "3215435", "content": "", "method": "channels", "sign": "11fbd649164860b5571cb60dfc99baccb375f392" }
返回示例:
{ "success": "true", "message": "", "channelList": [ { "channelCode": "FedexGround", "channelName": "FedEx Ground", "carrierName": "FEDEX" } ] }
4. 创建物流订单(申请单号)
方法名:
- createOrder
接口参数:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| customerNumber | 订单号 | String | 必填 | |
| onlineOrderId | 线上单号 | String | N | |
| addedServices | 签名服务 | String | N | 签名服务 1 一般签名服务 2 成人签名服务 3 待签 |
| channelCode | 发货渠道代码 | String | 必填 | |
| recipientAddress | 收件人信息 | Object | 必填 | |
| └ name | 收件人姓名 | String | 必填 | |
| └ address1 | 收件人地址1 | String | 必填 | |
| └ address2 | 收件人地址2 | String | N | |
| └ phone1 | 收件人电话1 | String | 必填 | |
| └ phone2 | 收件人电话2 | String | N | |
| 收件人邮箱 | String | N | ||
| └ country | 收件人国家 | String | 必填 | 国家二字码ISO 3166-1 |
| └ province | 收件人省州 | String | Y | |
| └ city | 收件人城市 | String | Y | |
| └ town | 收件人区镇 | String | N | |
| └ postalCode | 收件人邮编 | String | 必填 | |
| └ fullAddress | 完整地址 | String | 必填 | 内容为address1+address2 |
| └ company | 收件人公司 | String | N | |
| └ houseNumber | 收件人门牌号 | String | N | |
| senderAddress | 寄件人信息 | Object | 必填 | |
| └ name | 寄件人姓名 | String | 必填 | |
| └ address1 | 寄件人地址1 | String | 必填 | |
| └ address2 | 寄件人地址2 | String | N | |
| └ phone1 | 寄件人电话1 | String | 必填 | |
| └ phone2 | 寄件人电话2 | String | N | |
| 寄件人邮箱 | String | N | ||
| └ country | 寄件人国家 | String | 必填 | 国家二字码ISO 3166-1 |
| └ province | 寄件人省州 | String | Y | |
| └ city | 寄件人城市 | String | Y | |
| └ town | 寄件人区镇 | String | Y | |
| └ postalCode | 寄件人邮编 | String | 必填 | |
| └ fullAddress | 完整地址 | String | 必填 | 内容为address1+address2 |
| itemList | 订单商品信息 | Array | 必填 | |
| └packageNumber | 包裹唯一号 | String | N | 当前单据唯一包裹号,packageList有值必传 |
| └ sku | 商品编码 | String | 必填 | |
| └ skuName | 商品名称 | String | N | |
| └ length | 长 | String | N | |
| └ wide | 宽 | String | N | |
| └ high | 高 | String | N | |
| └ lengthUnit | 长度单位 | String | N | cm(厘米)、In(英寸)、m(米) |
| └ weight | 报关重量 | BigDecimal | Y | 重量固定换算成KG,默认0 |
| └ skuWeight | 商品重量 | Double | N | |
| └ weightUnit | 重量单位 | String | N | KG(千克),GRAM(克),LBS(磅) |
| └ color | 颜色 | String | N | |
| └ skuPrice | 商品实付金额 | BigDecimal | 必填 | |
| └ quantity | 数量 | String | 必填 | |
| └ price | 报关价格 | BigDecimal | N | |
| └ currency | 币种 | String | 必填 | ISO 4217 |
| └ customsCode | 海关编码 | String | N | |
| └ cnCustomsName | 中文报关名 | String | N | |
| └ enCustomsName | 英文报关名 | String | N | |
| codEnabled | 是否是cod订单 | Integer | N | 1:cod订单 0:非cod订单 |
| codPayAmount | cod订单金额 | BigDecimal | N | |
| codCurrency | cod金额币种 | String | N | |
| useInsurance | 是否必须保险 | Boolean | N | shipper必传,询价接口返回值 |
| insuranceValue | 投保金额 | BigDecimal | N | |
| insuranceCurrency | 投保币种 | String | N | ISO 4217 |
| packageList | 多包裹列表 | Array | N | |
| └packageNumber | 包裹唯一号 | String | Y | 当前单据包裹号 |
| └packageLength | 包裹长 | Number | N | |
| └packageWide | 包裹宽 | Number | N | |
| └packageHigh | 包裹高 | Number | N | |
| └packageUnit | 包裹单位 | String | N | cm(厘米)、In(英寸)、m(米),默认值:cm |
| └totalWeight | 总重量 | Number | N | 单位为KG |
| └packageType | 包裹类型 | Number | N | shipper必传 1:document 2:small package 3:medium package |
| └packageDetailList | 包裹明细 | Array | N | 详细见下 |
| iossNumber | IOSS号 | String | N | |
| taxNumber | 税号 | String | N | |
| receiverTaxNumber | 收件人税号 | String | N | |
| remarks | 备注 | String | N | |
| pickupTime | 揽收时间 | Long | N | 1659690000 |
| pickupTimeRangeId | 平台揽收时间id | Long | N | 1 |
| pickupTimeRange | 揽收时间范围 | String | N | 10:00 - 19:00 |
| paymentRole | 付款方 | Integer | N | 1: 发件人付款 2: 收件人付款 |
| collectType | 揽收类型 | Integer | N | 1: pickup2: drop off |
| quoteId | 询价接口返回该值 | String | N | ShipSaving、shipper必传 |
| paymentType | 支付方式 | String | N | cash/postpay |
packageDetailList
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| sku | 商品编码 | String | 必填 | |
| skuName | 商品名称 | String | N | |
| length | 长 | String | N | |
| wide | 宽 | String | N | |
| high | 高 | String | N | |
| lengthUnit | 长度单位 | String | N | cm(厘米)、In(英寸)、m(米) |
| weight | 报关重量 | BigDecimal | Y | 重量固定换算成KG,默认0 |
| skuWeight | 商品重量 | Double | N | |
| weightUnit | 重量单位 | String | N | KG(千克),GRAM(克),LBS(磅) |
| color | 颜色 | String | N | |
| skuPrice | 商品实付金额 | BigDecimal | N | |
| quantity | 数量 | String | 必填 | |
| price | 商品金额 | BigDecimal | 必填 | 该商品总金额 |
| currency | 币种 | String | 必填 | ISO 4217 |
| customsCode | 海关编码 | String | N | |
| cnCustomsName | 中文报关名 | String | N | |
| enCustomsName | 英文报关名 | String | N | |
| coverage | 国内件、国际件 | String | N | shipper必传 国内domestic / 国际international 默认国内 |
返回信息:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| trackingNumber | 运单号 | String | 必填 | ecpay对应 AllPayLogisticsID 绿界科技的物流交易编号 |
| customerNumber | 订单号 | String | N | |
| udf1 | 扩充字段1 | String | N | ecpay 对应 CVSPaymentNo 寄货编号 |
| udf2 | 扩充字段2 | String | N | ecpay 对应 CVSValidationNo 验证码 |
| addressType | 地址类型 | Integer | N | 地址类型1-未知2-商业3-住宅 |
| feedBackId | 回传信息 | String | N | addressType和feedBackId两个字段不可同时返回 |
| packageInfoList | 多包裹运单号 | N | 多包裹信息 | |
| └packageNumber | 包裹号 | String | N | |
| └trackingNumber | 运单号 | String | N | |
| └customerNumber | 订单号 | String | N |
请求示例:
{ "accessId" : "67436533", "method" : "createOrder", "content" : "{\"senderAddress\":{\"name\":null,\"company\":null,\"address1\": null,\"address2\":null,\"fullAddress\":null,\"phone1\":null,\"phone2\":null,\"email\":null,\"country\":null,\"province\": null,\"city\":null,\"town\":null,\"postalCode\":null},\"totalWeight\": 1,\"itemList\":[{\"sku\":\"A1223\",\"cnCustomsName\":null,\"enCustomsName\":null,\"customsCode\":null,\"price\":0,\"currency\":\"MYR\",\"quantity\":1,\"weight\":1,\"skuWeight\":1.0,\"color\":null,\"weightUnit\":\"KG\",\"length\":\"1.0\",\"width\":\"1.0\",\"height\":\"1.0\",\"lengthUnit\":\"cm\",\"skuPrice\":2E+2}] ,\"codPayAmount\":null,\"recipientAddress\":{\"name\":\"0983833206\",\"company\":null,\"address1\":\"0983833206\",\"address2\": \"10310\",\"fullAddress\":\"0983833206, 10310\",\"phone1\":\"12675638889\",\"phone2\":\"\",\"email\":\"\",\"country\": \"PH\",\"province\":\"Bangkok\",\"city\":\"Huai Khwang\",\"town\":null,\"postalCode\":\"10310\"},\"customerNumber\": \"DA241112100000\",\"remarks\":null,\"channelCode\":\"5\"}", "sign" : "c77f2ad0b06d8e2b04af9aec9b8b6f7740d07249" }
返回示例:
{ "success": "true", "message": "", "data": { "trackingNumber": "DS35841212312",
"customerNumber":"orderNumber",
“addressType”:1 } }
5. 取消物流订单
方法名:
- cancelOrder
接口参数:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| customerNumber | 千易订单号 | String | 选填 | 与trackingNumber按需取一即可 |
| trackingNumber | 运单号 | String | 选填 | 与customerNumber按需取一即可 |
请求示例:
{ "accessId": "3215435", "method": "cancelOrder", "content": "{\"orderNumber\":\"CESH210204147401\",\"trackingNumber\":\"DS35841212312\"}", "sign": "11fbd649164860b5571cb60dfc99baccb375f392" }
返回示例:
{ "success": "true", "message": "" }
6. 获取面单
方法名:
- getLabel
接口参数:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| customerNumber | 订单号 | String | 必填 | |
| trackingNumber | 运单号 | String | 必填 | |
| labelType | 面单类型 | String | Y | 模板尺寸:A4、10*15等 |
| realLabelType | 面单类型 | String | Y | Shipper必传 "LBL" (label) or "RCP" (receipt) |
返回信息:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| trackingNumber | 运单号 | String | 必填 | |
| customerNumber | 订单号 | String | N | |
| labelData | 面单 | String | 必填 | PDF Base64 |
请求示例:
{ "accessId": "3215435", "method": "getLabel", "content": "{\"orderNumber\":\"CESH210204147401\",\"trackingNumber\":\"DS35841212312\",\"labelType\":\"10*15\",\"realLabelType\":\"\"}", "sign": "11fbd649164860b5571cb60dfc99baccb375f392" }
返回示例:
{ "success": "true", "message": "", "data": { "trackingNumber": "DS35841212312",
"customerNumber":"CESH210204147401", "labelData": "5rWL6K+V6Z2i5Y2V5pWw5o2u" } }
7. 获取运单号和面单接口
接口描述: 此为扩展接口,同时获取运单号和面单的接口,注: 对接createOrder(申请单号)和 getLabel(获取面单)接口与该接口功能一致。
方法名:
- apply
接口参数:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| customerNumber | 订单号 | String | 必填 | |
| addedServices | 签名服务 | String | N | 签名服务 AUDLT 成人签名 INDIRECT间接签名 DIRECT直接签名 ORDINARY普通签名 |
| channelCode | 发货渠道代码 | String | 必填 | |
| salesChannel | 销售渠道代码 | String | N | |
| serviceLevel | 服务级别 | String | N | 当日达、次日达等 |
| actualLogisticsCode | 实际物流代码 | String | N | |
| labelType | 面单类型 | String | 必填 | |
| recipientAddress | 收件人信息 | Object | 必填 | |
| └ name | 收件人姓名 | String | 必填 | |
| └ address1 | 收件人地址1 | String | 必填 | |
| └ address2 | 收件人地址2 | String | N | |
| └ phone1 | 收件人电话1 | String | 必填 | |
| └ phone2 | 收件人电话2 | String | N | |
| 收件人邮箱 | String | N | ||
| └ country | 收件人国家 | String | 必填 | 国家二字码ISO 3166-1 |
| └ province | 收件人省州 | String | Y | |
| └ city | 收件人城市 | String | Y | |
| └ town | 收件人区镇 | String | N | |
| └ postalCode | 收件人邮编 | String | 必填 | |
| └ addressType | 地址类型 | Integer | N | 1-未知2-商业3-住宅 |
| └ company | 收件人公司 | String | N | |
| └ houseNumber | 收件人门牌号 | String | N | |
| senderAddress | 寄件人信息 | Object | 必填 | |
| └ name | 寄件人姓名 | String | 必填 | |
| └ address1 | 寄件人地址1 | String | 必填 | |
| └ address2 | 寄件人地址2 | String | N | |
| └ phone1 | 寄件人电话1 | String | 必填 | |
| └ phone2 | 寄件人电话2 | String | N | |
| 寄件人邮箱 | String | N | ||
| └ country | 寄件人国家 | String | 必填 | 国家二字码ISO 3166-1 |
| └ province | 寄件人省州 | String | Y | |
| └ city | 寄件人城市 | String | Y | |
| └ town | 寄件人区镇 | String | Y | |
| └ postalCode | 寄件人邮编 | String | 必填 | |
| itemList | 订单商品信息 | Array | 必填 | |
| └packageNumber | 包裹号 | String | N | 当前单据唯一包裹号,packageList有值必传 |
| └ sku | 商品编码 | String | 必填 | |
| └ skuName | 商品名称 | String | N | |
| └ length | 长 | String | N | |
| └ wide | 宽 | String | N | |
| └ high | 高 | String | N | |
| └ lengthUnit | 长度单位 | String | N | cm(厘米)、In(英寸)、m(米) |
| └ skuPrice | 商品实付金额 | BigDecimal | N | |
| └ quantity | 数量 | String | 必填 | |
| └ price | 商品金额 | BigDecimal | N | 该商品总金额 |
| └ currency | 币种 | String | 必填 | ISO 4217 |
| └ customsCode | 海关编码 | String | N | |
| └ cnCustomsName | 中文报关名 | String | N | |
| └ enCustomsName | 英文报关名 | String | N | |
| codEnabled | 是否是cod订单 | Integer | N | 1:cod订单 0:非cod订单 |
| codPayAmount | cod订单金额 | BigDecimal | N | |
| codCurrency | cod金额币种 | String | N | |
| useInsurance | 保险服务 | Boolean | N | |
| insuranceValue | 投保金额 | BigDecimal | N | |
| insuranceCurrency | 投保币种 | String | N | ISO 4217 |
| packageList | Array | N | ||
| └packageNumber | 包裹唯一号 | String | Y | 当前单据包裹号 |
| └packageLength | 包裹长 | Number | N | |
| └packageWide | 包裹宽 | Number | N | |
| └packageHigh | 包裹高 | Number | N | |
| └packageUnit | 包裹单位 | Number | N | cm(厘米)、In(英寸)、m(米),默认值:cm |
| └totalWeight | 总重量 | Number | N | 单位为KG |
| remarks | 备注 | String | N | |
| collectType | 揽收类型 | Integer | N | 1: pickup2: drop off |
返回信息:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| labelDataList | List | Y | ||
| └packageNumber | 包裹号 | String | N | |
| └customerNumber | 订单号 | String | N | |
| └udf1 | 扩充字段1 | String | N | ecpay 对应 CVSPaymentNo 寄货编号 |
| └udf2 | 扩充字段2 | String | N | ecpay 对应 CVSValidationNo 验证码 |
| └trackingNumber | 运单号 | String | 必填 | ecpay对应 AllPayLogisticsID 绿界科技的物流交易编号 |
| └labelDataType | 面单类型 | String | 必填 | 面单类型,支持以下类型: 1、PDF ( Base64) 2、 URL |
| └labelData | 面单 | String | 必填 | |
| └addressType | 地址类型 | Integer | 必填 | 地址类型1-未知2-商业3-住宅 |
| └shippingFee | 运费 | Double | N | |
| └carrierServiceCode | 承运商服务编码 | String | N | |
| └actualLogisticsCode | 实际物流编码 | String | N |
请求示例:
{ "accessId": "3215435", "method": "createOrder", "content": "{\"orderNumber\":\"CESH210204147401\",\"channelCode\":\"FedexGround\",\"recipientAddress\":{\"name\":\"Kimberly White\",\"address1\":\"TestStreet1\",\"address2\":\"\",\"phone1\":\"1889838055188\",\"phone2\":\"\",\"email\":\"\",\"country\":\"US\",\"province\":\"AR\",\"city\":\"Harrison\",\"town\":null,\"postalCode\":\"72601\"},\"senderAddress\":{\"name\":\"Tally Mercy\",\"address1\":\"TestStreet2\",\"address2\":\"\",\"phone1\":\"1231434142341\",\"phone2\":\"\",\"email\":\"\",\"country\":\"US\",\"province\":\"AR\",\"city\":\"Harrison\",\"town\":null,\"postalCode\":\"72601\"},\"skuList\":[{\"sku\":\"CL0000000000001\",\"quantity\":1,\"price\":120.0,\"currency\":\"USD\",\"customsCode\":\"CL0000000000001\",\"cnCustomsName\":\"测试商品\",\"enCustomsName\":\"TEST\"}],\"codEnabled\":0,\"codPayAmount\":120.0,\"codCurrency\":\"US\",\"packageLength\":30.0,\"packageWide\":30.0,\"packageHigh\":20.0,\"packageUnit\":\"cm\",\"totalWeight\":5.0,\"remarks\":\"测试\"}", "sign": "11fbd649164860b5571cb60dfc99baccb375f392" }
返回示例:
{
"success": "true",
"message": "",
"data": {
"labelDataList": [
{
"trackingNumber": "DS35841212312",
"labelDataType": "PDF",
"labelData": "5rWL6K+V6Z2i5Y2V5pWw5o2u",
"addressType": 1,
"shippingFee": 1.1,
"carrierServiceCode": "Priority",
"actualLogisticsCode": "UPS-GROUND"
}
]
}
}
8. 查询物流追踪信息
方法名:
- getTrackingInfo
接口参数:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| customerNumber | 千易订单号 | String | 必填 | |
| trackingNumber | 运单号 | String | 必填 |
返回信息:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| orderNumber | 千易订单号 | String | 必填 | |
| carrierName | 承运商名称 | String | 必填 | |
| trackingNumber | 运单号 | String | 必填 | |
| status | 运单状态 | String | 必填 | CREATED(待揽收) SHIPPED(已揽收) IN_TRANSIT(运输中) OUT_FOR_DELIVERY(派送中) DELIVERED(已送达) UNDELIVERABLE(无法派送) DELAYED(延迟派送) RETURNING(退回中) RETURNED(已退回) |
| trackingEvents | 追踪信息 | Array | 必填 | |
| └ eventDate | 事件时间 | String | 必填 | 例:2021-01-01 10:00:00 |
| └ eventPlace | 事件地点 | String | 必填 | 例:TEST中转仓,CA |
| └ eventDesc | 事件描述 | String | 必填 | 例:到达中转站 |
请求示例:
{ "accessId": "3215435", "method": "getTrackingInfo", "content": "{\"orderNumber\":\"CESH210204147401\",\"trackingNumber\":\"DS35841212312\"}", "sign": "11fbd649164860b5571cb60dfc99baccb375f392" }
返回示例:
{ "success": "true", "message": "", "data": { "orderNumber": "CESH210204147401", "carrierName": "FedEx", "trackingNumber": "DS35841212312", "status": "IN_TRANSIT", "trackingEvents": [ { "eventDate": "2021-01-01 15:00:00", "eventPlace": "CA", "eventDesc": "货件已装车,派送途中" }, { "eventDate": "2021-01-01 10:00:00", "eventPlace": "CA", "eventDesc": "托运资讯发送给FedEx" } ] } }
9. 测算费用(开发中)
方法名:
- getEstimateCost
接口参数:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| customerOrderNo | 客户单号 | String | 必填 | |
| sendAddress | 寄件地址 | Object | 必填 | |
| └contactName | 联系人 | String | N | |
| └companyName | 公司名称 | String | N | |
| └cellPhone | 联系电话 | String | N | |
| └countryCode | 国家二字码 | String | N | |
| └province | 省州二字码 | String | N | |
| └city | 城市 | String | N | |
| └postCode | 发件邮编 | String | 必填 | |
| └address | 详细地址 | String | N | |
| └address2 | 详细地址2 | String | N | |
| receivingAddress | 收件地址 | Object | 必填 | |
| └contactName | 联系人 | String | 必填 | |
| └companyName | 公司名称 | String | 必填 | |
| └cellPhone | 联系电话 | String | 必填 | |
| └countryCode | 国家二字码 | String | 必填 | |
| └province | 省州二字码 | String | 必填 | |
| └city | 城市 | String | 必填 | |
| └postCode | 发件邮编 | String | 必填 | |
| └address | 详细地址 | String | 必填 | |
| └address2 | 详细地址2 | String | 必填 | |
| cargoReqList | 货箱信息 | array [object] | 必填 | |
| └serialNumber | 箱子编号 | String | 必填 | |
| └weight | 货箱重量 | number | 必填 | |
| └length | 长 | number | 必填 | |
| └width | 宽 | number | 必填 | |
| └high | 高 | number | 必填 |
返回信息:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| data | array[Object] | 必填 | ||
| └productCode | 渠道代码 | String | 必填 | |
| └weightUnit | 计费重单位 | String | 必填 | |
| └chargedWeight | 计费重 | number | 必填 | |
| └totalFee | 总费用 | number | 必填 | |
| └addressType | 地址类型 1-未知 2-商业 3-住宅 | number | 必填 | |
| └timestamp | number | 必填 |
请求示例:
{ "loginAccount": "Test001", "timestamp": 1234567898, "customerOrderNo": "test023203232", "schemeProductCodeList": [ "FEDEX-001" ], "sendAddress": { "contactName": "ONT8", "companyName":"yamax", "cellPhone": "6262652412", "countryCode": "US", "province": "CA", "city": "MORENO VALLEY", "postCode": "92551", "address": "24300 NANDINA AVE", "address2": "24300 NANDINA AVE" }, "receivingAddress": { "contactName": "ONT8", "companyName":"yamax", "cellPhone": "6262652412", "countryCode": "US", "province": "CA", "city": "MORENO VALLEY", "postCode": "92551", "address": "24300 NANDINA AVE", "address2": "24300 NANDINA AVE" }, "cargoReqList": [{ "serialNumber": "001", "weight": "15", "length": "60", "width": "50", "high": "40" }, { "serialNumber": "002", "weight": "15", "length": "60", "width": "50", "high": "40" }, { "serialNumber": "003", "weight": "15", "length": "60", "width": "50", "high": "40" }] }
返回示例:
{ "success": true, "message": "string", "data": [ { "productCode": "string", "weightUnit": "string", "chargedWeight": 0, "totalFee": 0, "addressType": 0, "timestamp": 0 } ] }
10. 获取物流可用揽收时间
方法名:
- getPickupTime
接口参数: 无
返回信息:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| data | List<Object> |
Y | ||
| └ pickupTime | Long | N | 1659690000 | |
| └ pickupTimeRangeId | Long | N | 1 | |
| └ pickupTimeRange | String | N | 10:00 - 19:00 |
请求示例: 无
返回示例: { "success": true, "message": "string", "data": [ { "pickupTime": 1659690000, "pickupTimeRangeId": 1, "pickupTimeRange": "10:00 - 19:00" } ] }
11. 物流询价
/logistics/quote
方法名:
- logisticsQuote
接口参数:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| logisticsKey | 物流KEY | String | 是 | |
| customerNumber | 订单号 | String | 是 | |
| channelCode | 发货渠道代码 | String | 否 | |
| recipientAddress | 收件人信息 | Object | 是 | |
| └ name | 收件人姓名 | String | 是 | |
| └ company | 公司名称 | String | 否 | |
| └ address1 | 收件人地址1 | String | 是 | |
| └ address2 | 收件人地址2 | String | 否 | |
| └ phone1 | 收件人电话 | String | 是 | |
| └ phone2 | 收件人电话 | String | 是 | |
| 收件人邮箱 | String | 否 | ||
| └ country | 收件人国家 | String | 是 | |
| └ province | 收件人省州 | String | 是 | |
| └ city | 收件人城市 | String | 是 | |
| └ town | 收件人区镇 | String | 否 | |
| └ postalCode | 收件人邮编 | String | 是 | |
| senderAddress | 寄件人信息 | Object | 是 | |
| └ name | 寄件人姓名 | String | 是 | |
| └ company | 公司名称 | String | 否 | |
| └ address1 | 寄件人地址1 | String | 是 | |
| └ address2 | 寄件人地址2 | String | 否 | |
| └ phone1 | 寄件人电话 | String | 否 | |
| └ phone2 | 寄件人电话 | String | 否 | |
| 寄件人邮箱 | String | 否 | ||
| └ country | 寄件人国家 | String | 是 | |
| └ province | 寄件人省州 | String | 是 | |
| └ city | 寄件人城市 | String | 是 | |
| └ town | 寄件人区镇 | String | 否 | |
| └ postalCode | 寄件人邮编 | String | 是 | |
| packageList | 包裹数据 | Array | 是 | |
| └ packageNumber | 包裹号 | String | 是 | |
| └ packageLength | 包裹长 | Number | 是 | |
| └ packageWide | 包裹宽 | Number | 是 | |
| └ packageHigh | 包裹高 | Number | 是 | |
| └ packageUnit | 包裹尺寸单位 | String | 是 | cm(厘米)、In(英寸)、m(米) |
| └ totalWeight | 包裹重量 | Number | 否 | |
| └ weightUnit | 包裹重量单位 | String | 否 | KG(千克),GRAM(克),LBS(磅) |
| └ packageDetailList | 包裹商品数据 | Array | 否 | 详细见下 |
| codEnabled | 是否是cod订单 | Boolean | 否 | |
| codPayAmount | cod订单金额 | BigDecimal | 否 | |
| codCurrency | cod订单币种 | String | 否 | |
| totalWeight | 订单总重量 | BigDecimal | 否 | |
| addedServices | 签名服务 | String | 否 | |
| warehouseCode | ShipSaving warehouseName | String | 否 | ShipSaving必填 |
packageDetailList
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| sku | 商品编码 | String | 必填 | |
| skuName | 商品名称 | String | N | |
| length | 长 | String | N | |
| wide | 宽 | String | N | |
| high | 高 | String | N | |
| lengthUnit | 长度单位 | String | N | cm(厘米)、In(英寸)、m(米) |
| weight | 报关重量 | BigDecimal | Y | 重量固定换算成KG,默认0 |
| skuWeight | 商品重量 | Double | N | |
| weightUnit | 重量单位 | String | N | KG(千克),GRAM(克),LBS(磅) |
| color | 颜色 | String | N | |
| skuPrice | 商品实付金额 | BigDecimal | N | |
| quantity | 数量 | String | Y | |
| price | 商品金额 | BigDecimal | N | 该商品总金额 |
| currency | 币种 | String | Y | ISO 4217 |
| customsCode | 海关编码 | String | N | |
| cnCustomsName | 中文报关名 | String | N | |
| enCustomsName | 英文报关名 | String | N |
返回信息:
| 字段名 | 字段描述 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
| customerNumber | 订单号 | String | 是 | |
| packageFeeList | 包裹物流费用 | Array | 是 | |
| └ logisticsProvider | 账户提供商编码 | String | 是 | |
| └ accountName | 账户名称 | String | 是 | |
| └ accountCode | 账户编码 | String | 是 | |
| └ actualLogisticsCode | 实际物流编码 | String | 是 | |
| └ actualCarrierServiceCode | 实际物流服务编码 | String | 是 | |
| └ packageType | 包裹类型 | String | 是 | |
| └ transportationTime | 运输时间 | String | 否 | |
| └ estimatedAmount | 预估金额 | BigDecimal | 否 | |
| └ actualAmount | 实际金额 | BigDecimal | 否 | |
| └ rebateAmount | 返利金额 | BigDecimal | 否 | |
| └ addressType | 地址类型 | String | 否 | |
| └ quoteId | 询价id | String | 否 | ShipSaving、Shipper必传 |
| └ logoUrl | 物流logo地址 | String | 否 | |
| └ serviceType | 服务类型 | String | 否 | |
| └ useInsurance | 是否一定要保险服务 | Boolean | 否 |
请求示例:
{
"logisticsKey": "logisticsKey",
"customerNumber": "ORD20250101001",
"channelCode": "channelCode",
"recipientAddress": {
"name": "John Doe",
"company": "company",
"address1": "123 Main Street",
"address2": "Apt 4B",
"phone1": "+1234567890",
"phone2": "+1234567890",
"email": "john.doe@example.com",
"country": "US",
"province": "CA",
"city": "Los Angeles",
"town": "Downtown",
"postalCode": "90001"
},
"senderAddress": {
"name": "Jane Smith",
"company": "company",
"address1": "456 Business Ave",
"address2": "Suite 100",
"phone1": "+0987654321",
"phone2": "+0987654321",
"email": "jane.smith@company.com",
"country": "US",
"province": "NY",
"city": "New York",
"town": "Manhattan",
"postalCode": "10001"
},
"packageList": [
{
"packageNumber": "PKG001",
"packageLength": 30.0,
"packageWide": 20.0,
"packageHigh": 15.0,
"packageUnit": "cm",
"totalWeight": 5.0,
"weightUnit": "kg",
"packageType": "",
"packageDetailList": [
{
"sku": "ELEC-001",
"skuName": "Electronics",
"price": 100.00,
"skuPrice": 95.00,
"quantity": 2
}
],
}
],
"codEnabled": false,
"codPayAmount": 0.00,
"codCurrency": "USD",
"totalWeight": 5.0,
"addedServices": "1",
"warehouseCode": "warehouse"
}
返回示例:
{
"success": true,
"message": "",
"customerNumber": "ORD20250101001",
"packageFeeList": [
{
"logisticsProvider": "1212121",
"accountName": "account1",
"accountCode": "code",
"actualCarrierServiceCode": "FedEx Ground",
"packageType": "Standard",
"transportationTime": "",
"estimatedAmount": 2.1,
"actualAmount": 2.1,
"rebateAmount": 2.1,
"addressType": "",
"quoteId": "rate_e560b4e0-46cc-4022-a19d-cedea0e2830f",
"logoUrl": "http://123.com",
"serviceType": "",
"useInsurance": false
}
]
}