顺丰电子面单接口对接技术说明
顺丰电子面单接口对接技术文档
1、接口规则
(1)、只支持Json 格式。接口指令1007。 (2)、接口平台:快递鸟
(3)、测试地址:http://testapi.kdniao.cc:8081/api/eorderservice/
2、系统级输入参数
3、应用级输入参数
4、返回结果参数
5、JSON 请求示例
6、JSON 返回示例
7、接口及签名说明 1)、支持http 传输协议 2)、支持的数据传输格式
Json/Xml(暂不支持这种形式) 。 编码格式:UTF-8
交互协议上统一用UTF-8,避免传递中文数据出现乱码。
3)、接入步骤
按照快递鸟官网提示进行注册申请,注册成功并且登录,得到一组电商ID 和AppKey 。电商ID 是调用接口服务的身份证明,不可更改、不可转用,AppKey 是应用访问API 的签名附加密钥,必须妥善保存。两者关系类似于登录帐号和密码,两者都会在签名和业务参数中使用。
注册成功登录之后:进入我的服务查看ID 和AppKey
(1) 开发服务
开发自身业务的服务,服务需按照后面接口的定义规则。 (2) 查看接口调用的DEMO
快递鸟物流技术接口提供调用快递鸟物流接口的
DEMO(
.Net 版本) ,包括网上在线订单下单、物流轨迹查询等物流行业标准化的下单操作流程与数据查询格式。。
DEMO 下载地址: (如链接无法打开,请打开浏览器,在浏览器中输入)
4)、接口数据包结构
图例 - 数据包结构 (系统级{数据})
5)、XML 范例/JSON 范例
string userID = "1109259" ;
string keyValue = "56da2cf8-c8a2-44b2-b6fa-476cd7d1ba17" ; //加密私钥,由发货通提供
string url = "http://api.kdniao.cc:8081/Ebusiness/EbusinessOrderHandle.aspx"; //请求地址
string DataType = "1" ; //1-xml;2-json
string charset="UTF-8" ; //字符编码采用UTF-8 string xmlStr =
"SF[1**********]8";// XML字符串 string xmlStr =
"{\"OrderCode\":\"\",\"ShipperCode\":\"SF\",\"LogisticCode\":\"[1**********]7\"}"; // 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 请求方式
6)、流程示意图
7)、网关地址
测试接口:http://api.kdniao.cc:8081/Ebusiness/EbusinessOrderHandle.aspx 测试电商ID==1237100,AppKey==518a73d8-1f7f-441a-b644-33e77b49d846 正式接口:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx 注意:正式(自行注册) 环境下使用时,需提供请求的IP 给快递鸟登记
8)、关于签名
快递鸟和第三方电子商务公司系统进行对接,有一定的安全机制。采用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 ) 内容为:
SF[1**********]3,经过URL(UTF-8)编码的内容
为%3cContent%3e%3cShipperCode%3eSF%3c%2fShipperCode%3e%3cLogisticCode%3e[1**********]3%3c%2fLogisticCode%3e%3c%2fContent%3e, EBusinessID 为1109259,AppKey 为56da2cf8-c8a2-44b2-b6fa-476cd7d1ba17 (b) 那么DataSign 签名的内容为
SF[1**********]356da2cf8-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%3e[1**********]3%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 是否一致,如果一致进行业务操作,
如果不一直返回错误。
9)、(C#)DataSign签名加密代码
11 / 11