一.电子面单接口类型及定义

1. 快递电子面单接口:快递公司自己开发的电子面单服务, 商家使用必须快递公司上门做系统对接,使用一家快递则需要对接一次。

2.菜鸟电子面单接口:可一次对接15家快递公司, 无需和每一家快递公司做对接。支持快递有四通一达、EMS、宅急送、德邦、优速、天天、快捷、全峰等15家常用快递公司,其中不包括顺丰。

3.快递鸟电子面单接口:可一次对接15家快递公司, 无需和每一家快递公司做对接。支持快递有四通一达、顺丰、EMS、宅急送、德邦、优速等15家快递公司,对顺丰有电子面单服务需求的可以选择顺丰自有的电子面单或者是快递鸟电子面单。

 

二.开通使用流程

1.快递电子面单

a. 和多家快递公司申请账号

b.分别进行接口对接

c.电子面单服务用户向快递网点申请开通及确认合作细节

2.菜鸟电子面单

a.向菜鸟提交对接申请

b.和菜鸟进行接口对接

c.电子面单服务用户向菜鸟申请账号

d.电子面单服务用户向快递网点申请开通及确认合作细节

3.快递鸟电子面单

a. 进入http://www.kdniao.com/reg申请账号,获取专属的ID和KEY

b.和快递鸟进行接口对接

c.电子面单服务用户向快递网点申请开通及确认合作细节

接口类型较多,以下先附上快递鸟电子面单接口调用方式,希望对大家有所帮助。后面将逐个对菜鸟电子面单、顺丰电子面单等接口调用方式做整理说明。

三.接口规则

(1)、只支持Json格式。接口指令1007。

(2)、接口平台:快递鸟

(3)、测试地址:http://testapi.kdniao.cc:8081/api/eorderservice/

四.系统级输入参数

参数名称

类型

必须要求

说明

RequestData

String

R

请求内容,JSON或XML格式,须和DataType一致

EBusinessID

String

R

电商ID

RequestType

String

R

请求指令类型:1007

DataSign

String

R

数据内容签名

DataType

String

O

请求、返回数据类型:1-xml,2-json;默认为xml格式

五.应用级输入参数

参数名称

类型

是否必须

描述

CallBack

String

O

用户自定义回调信息

MemberID

String

O

会员标识

平台方与快递鸟统一用户标识的商家ID

CustomerName

String

O

电子面单客户账号

(与快递网点申请)

CustomerPwd

String

O

电子面单密码

SendSite

String

O

收件网点标识

ShipperCode

String

R

快递公司编码

LogisticCode

String

O

快递单号

OrderCode

String

R

订单编号

MonthCode

String

C

月结编码

PayType

Int

R

邮费支付方式:

1-现付,2-到付,3-月结,4-第三方支付

ExpType

String

R

快递类型:1-标准快件

IsNotice

Int

O

是否通知快递员上门揽件:0-不通知;1-通知;不填则默认为1

Cost

Double

O

寄件费(运费)

OtherCost

Double

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

O

发件省(如广东省,不要缺少“省”)

CityName

String

R

发件市(如深圳市,不要缺少“市”)

ExpAreaName

String

O

发件区(如福田区,不要缺少“区”或“县”)

Address

String

R

发件详细地址

StartDate

String

O

上门取货时间段:

"yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同

EndDate

String

O

Weight

Double

O

物品总重量kg

Quantity

Int

O

件数/包裹数

Volume

Double

O

物品总体积m3

Remark

String

O

备注

AddService

Name

String

0

增值服务名称

Value

String

0

增值服务值

CustomerID

String

0

客户标识(选填)

Commodity

GoodsName

String

R

商品名称

GoodsCode

String

O

商品编码

Goodsquantity

Int

O

件数

GoodsPrice

Double

O

商品价格

GoodsWeight

Double

O

商品重量kg

GoodsDesc

String

O

商品描述

GoodsVol

Double

O

商品体积m3

IsReturnPrintTemplate

String

O

返回电子面单模板:

0-不需要;1-需要

六.返回结果参数

参数名称

类型

必须要求

说明

EBusinessID

String

R

电商用户ID

Order

OrderCode

String

R

订单编号

ShipperCode

String

R

快递公司编码

LogisticCode

String

R

快递单号

MarkDestination

String

O

大头笔

OriginCode

String

O

始发地区域编码

OriginName

String

O

始发地/始发网点

DestinatioCode

String

O

目的地区域编码

DestinatioName

String

O

目的地/到达网点

SortingCode

String

O

分拣编码

PackageCode

String

O

集包编码

Success

Bool

R

成功与否

ResultCode

String

R

错误编码

Reason

String

O

失败原因

UniquerRequestNumber

String

R

唯一标识

PrintTemplate

String

O

面单打印模板

EstimatedDeliveryTime

String

O

订单预计到货时间yyyy-mm-dd

Callback

String

O

用户自定义回调信息

 

七.JSON请求示例

{

"OrderCode":  "012657700387",

"ShipperCode": "HTKY",

"PayType": 1,

"ExpType": 1,

"Cost": 1.0,

"OtherCost": 1.0,

"Sender": {

"Company": "LV",

"Name": "Taylor",

"Mobile":  "15018442396",

"ProvinceName": "上海",

"CityName": "上海",

"ExpAreaName": "青浦区",

"Address": "明珠路73号"

},

"Receiver": {

"Company": "GCCUI",

"Name": "Yann",

"Mobile":  "15018442396",

"ProvinceName": "北京",

"CityName": "北京",

"ExpAreaName": "朝阳区",

"Address": "三里屯街道雅秀大厦"

},

"Commodity": [

{

"GoodsName": "鞋子",

"Goodsquantity": 1,

"GoodsWeight": 1.0

}

],

"AddService": [

{

"Name": "COD",

"Value": "1020"

}

],

"Weight": 1.0,

"Quantity": 1,

"Volume": 0.0,

"Remark": "小心轻放",

"IsReturnPrintTemplate":1

}

八.JSON返回示例

{

"EBusinessID":  "1237100",

"Order": {

"OrderCode":  "012657700387",

"ShipperCode":  "HTKY",

"LogisticCode":  "50002498503427",

"MarkDestination": "京-朝阳(京-1)",

"OriginCode":  "200000",

"OriginName": "上海分拨中心",

"PackageCode": "北京"

},

"PrintTemplate":"此处省略打印模板HTML内容",

"EstimatedDeliveryTime":"2016-03-06",

"Callback":"调用时传入的Callback",

"Success": true,

"ResultCode": "100",

"Reason": "成功"

}

九.接口及签名说明

1)、支持http传输协议

2)、支持的数据传输格式

Json/Xml(暂不支持<content/>这种形式)。

编码格式:UTF-8

交互协议上统一用UTF-8,避免传递中文数据出现乱码。

3)、接入步骤

按照快递鸟官网提示进行注册申请,注册成功并且登录,得到一组电商ID和AppKey。电商ID是调用接口服务的×××明,不可更改、不可转用,AppKey是应用访问API的签名附加密钥,必须妥善保存。两者关系类似于登录帐号和密码,两者都会在签名和业务参数中使用。

注册成功登录之后:进入我的服务查看ID和AppKey

(1)     开发服务

开发自身业务的服务,服务需按照后面接口的定义规则。

(2)     查看接口调用的DEMO

快递鸟物流技术接口提供调用快递鸟物流接口的DEMO(.Net版本),包括网上在线订单下单、物流轨迹查询等物流行业标准化的下单操作流程与数据查询格式。。

DEMO下载地址:http://www.kdniao.com/ResourceDownload.aspx (如链接无法打开,请打开浏览器,在浏览器中输入)

4)、XML范例/JSON 范例

string userID = "1109259";

stringkeyValue = "56da2cf8-c8a2-44b2-b6fa-476cd7d1ba17";//加密私钥,由发货通提供

string url = "http://api.kdniao.cc:8081/Ebusiness/EbusinessOrderHandle.aspx";  //请求地址

stringDataType = "1"; //1-xml;2-json

stringcharset="UTF-8";//字符编码采用UTF-8

string xmlStr = "<Content><OrderCode></OrderCode><ShipperCode>SF</ShipperCode><LogisticCode>118650888088</LogisticCode></Content>";//XML字符串

string xmlStr= "{\"OrderCode\":\"\",\"ShipperCode\":\"SF\",\"LogisticCode\":\"118461988807\"}";// JSON字符串

string datasign =MD5(xmlStr+keyValue, "UTF-8");//生成加密签名加密通过对参数xmlStr+ keyValue得到加密后的字符串

string PostStr = "RequestType=1002&EBusinessID=userID &RequestData=xmlStr &DataSign=datasign&DataType=DataType"; //请求报文参数

string post = this.DoPost(url, PostStr);//通讯协议使用Http协议Post请求方式

5)、网关地址

测试接口:http://api.kdniao.cc:8081/Ebusiness/EbusinessOrderHandle.aspx

测试电商ID==1237100,AppKey==518a73d8-1f7f-441a-b644-33e77b49d846

正式接口:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx

注意:正式(自行注册)环境下使用时,需提供请求的IP给快递鸟登记

6)、关于签名

快递鸟和第三方电子商务公司系统进行对接,有一定的安全机制。采用IP认证加签名的方式对接,具体方案如下:

(1)     防止数据被篡改

在POST请求中会传递5个参数

4个必须参数:

RequestType=请求指令类型

EBusinessID==电商ID

RequestData==数据内容(URL编码:UTF-8)

DataSign==签名摘要(URL编码:UTF-8(base64(MD5(数据内容 +AppKey))))

1个可选参数:

DataType==返回数据类型(1-xml,2-json;默认为2格式)

注:DataSign生成后,对方接收到数据后,以同样的算法进行签名,生成摘要,对比两者的摘要是否相同,如果不同,说明传递过程中发生数据篡改,对接过程中如有不明白之处可双方技术协作进行

(2)     调用接口的身份认证

注册成为快递鸟用户后,会生成对应的电商ID和AppKey,电商ID相当于用户名,AppKey相当于密码。注:请勿遗漏或传递可能递增大快递鸟接口调用维护

举例说明:

(a)     假设RequestData (XML)内容为:<Content><ShipperCode>SF</ShipperCode><LogisticCode>118954907573</LogisticCode></Content>,经过URL(UTF-8)编码的内容为%3cContent%3e%3cShipperCode%3eSF%3c%2fShipperCode%3e%3cLogisticCode%3e118954907573%3c%2fLogisticCode%3e%3c%2fContent%3e,EBusinessID为1109259,AppKey为56da2cf8-c8a2-44b2-b6fa-476cd7d1ba17

(b)      那么DataSign签名的内容为<Content><ShipperCode>SF</ShipperCode><LogisticCode>118954907573</LogisticCode></Content>56da2cf8-c8a2-44b2-b6fa-476cd7d1ba17,经过md5和base64后的内容就为YzBjODA3MjA2NmViM2ZlZGMyNWNjMDA0NDRiMDdmOTE=,在经过URL(UTF-8)编码的内容为YzBjODA3MjA2NmViM2ZlZGMyNWNjMDA0NDRiMDdmOTE%3d

(c)      最终要发送的数据为RequestType=1002&EBusinessID=1109259&RequestData =%3cContent%3e%3cShipperCode%3eSF%3c%2fShipperCode%3e%3cLogisticCode%3e118954907573%3c%2fLogisticCode%3e%3c%2fContent%3e&DataSign= YzBjODA3MjA2NmViM2ZlZGMyNWNjMDA0NDRiMDdmOTE%3d& DataType=2

(d)      接收方收到数据后,获得EBusinessID和RequestData和DataSign等这几个数据。

(e)      接收方对EBusinessID得到AppKey,RequestData+AppKey的数据进行md5和base64后的内容就为YzBjODA3MjA2NmViM2ZlZGMyNWNjMDA0NDRiMDdmOTE=

(f)       接收方判断签名后的数据跟传递过来的DataSign是否一致,如果一致进行业务操作,如果不一直返回错误。

7)、(C#)DataSign签名加密代码

///<summary>

///电商Sign签名

///</summary>

///<param  name="content">内容</param>

///<param  name="keyValue">Appkey</param>

///<param  name="charset">URL编码 </param>

///<returns>DataSign签名</returns>

Public  String Encrypt (String content, String keyValue, String charset)

{

if  (keyValue != null)

{

return  base64(MD5(content + keyValue, charset), charset);

}

return  base64(MD5(content, charset), charset);

}

///<summary>

/// 字符串MD5加密

///</summary>

///<param  name="Text">要加密的字符串</param>

///<returns>密文</returns>

Private  string MD5(string Text, string charset)

{

byte[]  buffer = System.Text.Encoding.GetEncoding(charset).GetBytes(Text);

try

{

System.Security.Cryptography.MD5CryptoServiceProvider  check;

check  = new System.Security.Cryptography.MD5CryptoServiceProvider();

byte[]  somme = check.ComputeHash(buffer);

string  ret = "";

foreach  (byte a in somme)

{

if (a  < 16)

ret  += "0" + a.ToString("X");

else

ret  += a.ToString("X");

}

return ret.ToLower();

}

catch

{

throw;

}

}

Private  static string base64(String str, String charset)

{

returnConvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));

}

转载于:https://blog.51cto.com/11798217/1856723

电商快递电子面单对接使用方法相关推荐

  1. 电商适用电子面单接口对接案例

    电子面单接口现在有快递公司.菜鸟和快递鸟提供 快递公司是一家家合作,要接口文档,逐一对接 菜鸟和快递鸟是电子面单接口集成方,能打印多家快递电子面单,菜鸟目前支持15家,快递鸟支持20家,基本上都是常用 ...

  2. 快递电子面单 对接快递鸟

    快递鸟有很详细的介绍,附上链接: http://www.kdniao.com/api-eorder 快递鸟官方也Demo,可以下载直接用,自己处理一下业务逻辑即可 以下基于测试环境,申请相关账号不做介 ...

  3. 快递电子面单批量打印接口对接demo-JAVA

    目前有三种方式对接电子面单: 1.快递公司:各家快递公司逐一对接接口 2.菜鸟:支持常用15家快递电子面单打印 3.快递鸟:仅对接一次,支持常用30多家主流快递电子面单打印 目前也是支持批量打印电子面 ...

  4. 常用快递电子面单接口API对接方法

    快递电子面单接口API比较常用在电商.仓储系统和ERP系统,对接后不用下载安装软件,可以直接嵌入系统网站调用. 目前有快递鸟和菜鸟提供集成的电子面单打印接口,分别支持20,15家快递的电子面单打印 1 ...

  5. C#圆通快递电子面单api接口调用方法

    快递电子面单支持多家快递物流公司单号获取.分拣码返回.面单打印.在线下单发货.通知快递员上门取件等功能,可用于电商平台.自营商城.打单工具.WMS仓储系统.APP等需要发货的场景,可有效提高商家的打印 ...

  6. 快递电子运单上,电话应隐藏6位以上,禁止显示这些信息

    我国快递年业务量达千亿件,快递电子运单是应用于快递外包装的重要单据,每年耗用量很大.在强化个人信息保护方面,<快递电子运单>国家标准要求快递企业.电商经营主体等采取措施,避免在电子运单上显 ...

  7. 通过快递鸟如何接入中通快递电子面单

    一.接入前准备(TO商家业务人员) 1.申请快递鸟用户ID和API key 1.1登录快递鸟官网注册页面http://www.kdniao.com/reg注册快递鸟账号: 1.2登录快递鸟用户管理后台 ...

  8. 通过快递鸟如何接入申通快递电子面单

    一.接入前准备(TO商家业务人员) 1.申请快递鸟用户ID和API key 1.1登录快递鸟官网注册页面http://www.kdniao.com/reg注册快递鸟账号: 1.2登录快递鸟用户管理后台 ...

  9. 电商快递:悬在顺丰头顶的双刃剑

    ​ 4月23日,顺丰控股发布2020年第一季度报告.报告显示,第一季度顺丰营业总收入335.41亿元,同比增长39.59%:归属于上市公司股东的净利润9.07亿元,同比下滑28.16%.在同行业普遍存 ...

最新文章

  1. Django 搭建CMDB系统完整[1](用户登录)
  2. 常见的安全应用识别技术有哪些?
  3. pytest 15 fixture之autouse=True
  4. 导入功能 php,php Excel 导入功能
  5. Java开发的可扩展-高性能-响应式的API网关-soul v2.2.1
  6. 筛选列_Excel办公实操,两大办公技能,复杂数据进行筛选,一看就会
  7. mysql5.6 慢查询_MySQL5.6 如何优化慢查询的SQL语句
  8. openstack network
  9. 【STM32F103C8T6】 TTL转usb下载程序
  10. web前端开发技术(第3版)储久良著课后实验
  11. Java实现鉴权失败达到一定次数锁定IP并释放到期IP
  12. 保研一年来的心路历程
  13. Vue实现点击上传图片预览图片功能
  14. 兼容IE8的文件下载,解决IE下载文本和图片直接打开问题
  15. Mysql笔试+面试题积累(实时更新)
  16. Scrapy爬取中文数据的问题
  17. 关联算法①——《啤酒与尿布》购物篮分析
  18. CPU时钟周期和时钟频率
  19. 一支笔的测试点_如何测试一支笔
  20. springboot整合netty实现tcp通信

热门文章

  1. k8s健康检查(七)--技术流ken
  2. 2019世界机器人大会
  3. Java 按照拼音首字母排序
  4. 踩坑_consul_“At least one health check on one instance is failing“
  5. 左连接的表中有多条数据如何只取一条(最大或最小)
  6. 重磅!python获取同步输出的桌面网易云音乐歌词(内存偏移获取)
  7. 面试官:如何用最少的老鼠试出有毒的牛奶?
  8. Codeforces Problem-69A Young Physicist
  9. jNs 在 ASP.NET MVC 项目中的应用
  10. WinEdit 的algorithm2e包自定义一个带竖线的模块代码