调用快递鸟提供的申通上门取件API标准接口,申通快递员可上门服务,同时支持申通快递单号的轨迹查询,其它100多家包括四通一达等快递公司的物流轨迹也可查询,本篇文章重点实现<申通快递>的上门取件接口。
首先我们准备需要用到的对接资源,先注册一个快递鸟账号,
然后完成基本的身份认证,认证的流程可以打开腾讯视频,爱奇艺视频,新浪视频查看教程
这里推荐大家去爱奇艺查看视频教程:
https://www.iqiyi.com/v_19rxcwtwk0.html(如何从注册到认证,最快1小时完成上百家物流轨迹查询)
测试商户ID:
test1617571
测试API key:
554343b2-7252-439b-b4eb-1af42c8f2175(此Key仅限测试环境使用)
API测试地址:
http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json
接下来,我们讲解一下请求参数
一、接口描述/说明
(1)上门取件接口是快递鸟提供给独立电商、仓储管理系统、物流供应链等物流系统平台使用的下单接口。
(2)为客户解决在线发货需求,商户通过网络选择快递公司发送请求通知快递公司有快递要发货。
(3) 客户把数据通过此接口转发到快递鸟,由快递鸟为您安排快递员上门取件的服务。
(4)订单编号(OrderCode)不可重复提交,重复提交系统会返回具体错误代码。
请求系统级参数说明:
参数名称 |
类型 |
说明 |
必须要求 |
RequestData |
String |
请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。 |
R |
EBusinessID |
String |
商户ID,请在我的服务页面查看。 |
R |
RequestType |
String |
请求指令类型:1801 |
R |
DataSign |
String |
数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后 进行URL(utf-8)编码。详细过程请查看Demo。 |
R |
DataType |
String |
请求、返回数据类型:只支持JSON格式 |
R |
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)
二、接口参数
请求内容字段定义:
参数 |
类型 |
说明 |
必须要求 |
|
WarehouseID |
String |
仓库标识 |
O |
|
WarehouseAddress |
String |
仓库地址 |
O |
|
CallBack |
String |
商户标识 |
O |
|
MemberID |
String |
会员标识 |
O |
|
OrderCode |
String |
订单编号 |
R |
|
PayType |
Int |
邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付 |
R |
|
MonthCode |
String |
月结编码 |
C |
|
ExpType |
Int |
快递类型:1-标准快件 |
R |
|
IsReturnSignBill |
Int |
签收回单:1-需要,0-不需要,默认为0 |
O |
|
Receiver |
Company |
String |
收件人公司 |
O |
Name |
String |
收件人 |
R |
|
Tel |
String |
电话与手机,必填一个 |
R |
|
Mobile |
String |
|||
PostCode |
String |
收件人邮编 |
O |
|
ProvinceName |
String |
收件省(如广东省,不要缺少“省”) |
R |
|
CityName |
String |
收件市(如深圳市,不要缺少“市”) |
R |
|
ExpAreaName |
String |
收件区(如福田区,不要缺少“区”或“县”) |
O |
|
Address |
String |
收件人详细地址 |
R |
|
Sender |
Company |
String |
发件人公司 |
O |
Name |
String |
发件人 |
R |
|
Tel |
String |
电话与手机,必填一个 |
R |
|
Mobile |
String |
|||
PostCode |
String |
发件人邮编 |
O |
|
ProvinceName |
String |
发件省(如广东省,不要缺少“省”) |
R |
|
CityName |
String |
发件市(如深圳市,不要缺少“市”) |
R |
|
ExpAreaName |
String |
发件区(如福田区,不要缺少“区”或“县”) |
O |
|
Address |
String |
发件人详细地址(实际取件) |
R |
|
SenderShowAddress |
String |
发件人详细地址 |
O |
|
StartDate |
String |
上门取货时间段:"yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同 |
O |
|
EndDate |
String |
O |
||
Weight |
Double |
物品总重量kg |
O |
|
Quantity |
Int |
件数/包裹数 |
O |
|
Volume |
Double |
物品总体积m3 |
O |
|
Remark |
String |
备注 |
O |
|
AddServices |
||||
AddService |
Name |
String |
增值服务名称 |
O |
Value |
String |
增值服务值 |
O |
|
CustomerID |
String |
客户标识(选填) |
O |
|
Commoditys |
||||
Commodity |
GoodsName |
String |
商品名称 |
R |
GoodsCode |
String |
商品编码 |
O |
|
Goodsquantity |
Int |
商品数量 |
O |
|
GoodsPrice |
Decimal |
商品价格 |
O |
|
GoodsWeight |
Decimal |
商品重量 |
O |
|
GoodsDesc |
String |
商品描述 |
O |
|
GoodsVol |
Double |
商品体积m3 |
O |
|
PackingType |
Int |
包装类型:包装类型(快运字段)默认为 0; 0- 纸 1- 纤 2- 木 3- 托膜 4- 木托 99-其他 |
O |
|
DeliveryMethod |
Int |
送货方式:0-自提,1-送货上门(不含上楼)2-送货上楼。(适用于快运类型订单,物流公司可能会收取费用),默认为0 |
O |
返回参数定义:
参数名称 |
类型 |
说明 |
必须要求 |
|
EBusinessID |
String |
用户ID |
R |
|
Order |
OrderCode |
String |
订单编号 |
R |
KDNOrderCode |
String |
快递鸟订单编号 |
R |
|
ShipperCode |
String |
快递公司编码 |
R |
|
LogisticCode |
String |
快递单号 |
O |
|
Success |
Bool |
成功与否 |
R |
|
ResultCode |
String |
结果编码 |
R |
|
Reason |
String |
失败原因 |
O |
|
UniquerRequestNumber |
String |
唯一标识 |
R |
三、示例
请求示例 JSON
{
"OrderCode":"012657018199",
"ShipperCode":"SF",
"PayType":1,
"MonthCode":"1234567890",
"ExpType":1,
"Sender":{
"Company":"LV",
"Name":"Taylor",
"Mobile":"15018442396",
"ProvinceName":"上海",
"CityName":"上海市",
"ExpAreaName":"青浦区",
"Address":"明珠路"
},
"Receiver":{
"Company":"GCCUI",
"Name":"Yann",
"Mobile":"15018442396",
"ProvinceName":"北京",
"CityName":"北京市",
"ExpAreaName":"朝阳区",
"Address":"三里屯街道"
},
"Commodity":[
{
"GoodsName":"鞋子",
"Goodsquantity":1,
"GoodsWeight":1
}
],
"AddService":[
{
"Name":"COD",
"Value":"1020",
"CustomerID":"1234567890"
}
],
"Weight":1,
"Quantity":1,
"Volume":0,
"Remark":"小心轻放",
"StartDate":"2020-04-21 11:00:00",
"EndDate":"2020-04-21 17:00:00",
}
请求的完整报文(URL编码以后):RequestData=%7b%0d%0a++++%22OrderCode%22%3a%22012657018199%22%2c%0d%0a++++%22ShipperCode%22%3a%22STO%22%2c%0d%0a++++%22PayType%22%3a1%2c%0d%0a++++%22MonthCode%22%3a%221234567890%22%2c%0d%0a++++%22ExpType%22%3a1%2c%0d%0a++++%22Sender%22%3a%7b%0d%0a++++++++%22Company%22%3a%22LV%22%2c%0d%0a++++++++%22Name%22%3a%22Taylor%22%2c%0d%0a++++++++%22Mobile%22%3a%2215018442396%22%2c%0d%0a++++++++%22ProvinceName%22%3a%22%e4%b8%8a%e6%b5%b7%22%2c%0d%0a++++++++%22CityName%22%3a%22%e4%b8%8a%e6%b5%b7%e5%b8%82%22%2c%0d%0a++++++++%22ExpAreaName%22%3a%22%e9%9d%92%e6%b5%a6%e5%8c%ba%22%2c%0d%0a++++++++%22Address%22%3a%22%e6%98%8e%e7%8f%a0%e8%b7%af%22%0d%0a++++%7d%2c%0d%0a++++%22Receiver%22%3a%7b%0d%0a++++++++%22Company%22%3a%22GCCUI%22%2c%0d%0a++++++++%22Name%22%3a%22Yann%22%2c%0d%0a++++++++%22Mobile%22%3a%2215018442396%22%2c%0d%0a++++++++%22ProvinceName%22%3a%22%e5%8c%97%e4%ba%ac%22%2c%0d%0a++++++++%22CityName%22%3a%22%e5%8c%97%e4%ba%ac%e5%b8%82%22%2c%0d%0a++++++++%22ExpAreaName%22%3a%22%e6%9c%9d%e9%98%b3%e5%8c%ba%22%2c%0d%0a++++++++%22Address%22%3a%22%e4%b8%89%e9%87%8c%e5%b1%af%e8%a1%97%e9%81%93%22%0d%0a++++%7d%2c%0d%0a++++%22Commodity%22%3a%5b%0d%0a++++++++%7b%0d%0a++++++++++++%22GoodsName%22%3a%22%e9%9e%8b%e5%ad%90%22%2c%0d%0a++++++++++++%22Goodsquantity%22%3a1%2c%0d%0a++++++++++++%22GoodsWeight%22%3a1%0d%0a++++++++%7d%0d%0a++++%5d%2c%0d%0a++++%22Weight%22%3a1%2c%0d%0a++++%22Quantity%22%3a1%2c%0d%0a++++%22Volume%22%3a0%2c%0d%0a++++%22Remark%22%3a%22%e5%b0%8f%e5%bf%83%e8%bd%bb%e6%94%be%22%0d%0a%7d%0d%0a&EBusinessID=1365742&RequestType=1801&DataSign=ZTcxNTBkNjNhNjkxYjkzMGViNDcxZTRjNzc3NzlkNjI%3d&DataType=2
URL解码的请求报文:
RequestData={
"OrderCode":"012657018199",
"ShipperCode":"STO",
"PayType":1,
"MonthCode":"1234567890",
"ExpType":1,
"Sender":{
"Company":"LV",
"Name":"Taylor",
"Mobile":"15018442396",
"ProvinceName":"上海",
"CityName":"上海市",
"ExpAreaName":"青浦区",
"Address":"明珠路"
},
"Receiver":{
"Company":"GCCUI",
"Name":"Yann",
"Mobile":"15018442396",
"ProvinceName":"北京",
"CityName":"北京市",
"ExpAreaName":"朝阳区",
"Address":"三里屯街道"
},
"Commodity":[
{
"GoodsName":"鞋子",
"Goodsquantity":1,
"GoodsWeight":1
}
],
"Weight":1,
"Quantity":1,
"Volume":0,
"Remark":"小心轻放"
}
&EBusinessID=1365742&RequestType=1801&DataSign=ZTcxNTBkNjNhNjkxYjkzMGViNDcxZTRjNzc3NzlkNjI=&DataType=2
附上详细的接口文档给大家:
http://www.kdniao.com/documents
提供源码下载:
https://download.csdn.net/download/yanghanwen/12139326
调用第三方物流接口,替换自己的key就能直接使用,主要实现了物流在线轨迹查询,订单订阅,轨迹推送,支持上百家家的快递查询接口,包括主流的四通一达,支持上门取件服务,其他接口调用,修改调用指令和参数就能实现。
源码运行演示截图: