序
近年来,中国电子商务交易规模越来越大,网上订单越来越多,退换货的情况越来越普遍。退换货是网购的重要组成部分,也是体现电商平台和商家服务水平的重要方面。同时,退换货也是电商平台、商家、消费者之间最容易产生纠纷的环节。为了保证这个环节的服务,电商平台推出了退货上门取货的业务。退换货上门取货是买家退货时的一种省心便捷的物流服务。买家购买的商品在申请换货或发起维权投诉需要退货时,不需要自己邮寄商品,物流公司安排快递员上门取货。
目录
1.接口功能描述
2.完成准备工作。
3.API接口
4.请求参数(标题)
5.请求参数(正文)
6.请求参数(示例)
7.返回参数(Return)
8.返回消息(示例)
9.完整的请求消息(URL代码)
10.解码的信息
11.分步解释(C#版本)
12.关于签名
2。完成准备工作
接口规则
5.请求参数(正文)
6.请求参数(示例)
{
"订单代码& # 34;: "012657018199",
"工资类型& # 34;: "1",
"MonthCode & # 34: "1234567890",
"ExpType & # 34: "1",
"发件人& # 34;: {
"姓名& # 34;: "泰勒& # 34;,
"移动& # 34;: "15018442396",
"普罗文斯名称& # 34;: "上海& # 34;,
"CityName & # 34: "上海& # 34;,
"地址& # 34;: "明珠路& # 34;
},
"接收者& # 34;: {
"公司& # 34;: "GCCUI & # 34,
"姓名& # 34;: "扬恩& # 34;,
"移动& # 34;: "15018442396",
"普罗文斯名称& # 34;: "北京& # 34;,
"CityName & # 34: "北京& # 34;,
"ExpAreaName & # 34: "朝阳区& # 34;,
"地址& # 34;: "三里屯大街& # 34;
},
"商品& # 34;: [
{
"GoodsName & # 34: "鞋子& # 34;,
"商品数量& # 34;: 1,
"GoodsWeight & # 34: 1
}
],
"AddService & # 34: [
{
"姓名& # 34;: "COD & # 34,
"价值& # 34;: "1020",
"CustomerID & # 34: "1234567890"
}
],
"重量& # 34;: 1,
"数量& # 34;: 1,
"卷& # 34;: 0,
"备注& # 34;: "小心轻放& # 34;,
"开始日期& # 34;: "2020-05-19 11:00:00",
"结束日期& # 34;: "2020-05-19 15:00:00"
}
7.返回参数(Return)
8.返回消息(示例)
{ & # 34;电子商务& # 34;: "test1617571 & # 34, & # 34;成功& # 34;:真的, & # 34;订单& # 34;:{ & # 34;订单代码& # 34;: "112657018199", & # 34;KDNOrderCode & # 34: "KDN10200519103057 & # 34, & # 34;托运人代码& # 34;: "JD & # 34 }, & # 34;结果代码& # 34;: "100", & # 34;原因& # 34;: "", & # 34;UniquerRequestNumber & # 34: "1ed 104 ea-ff57-404 f-8e 12-59e 1f 4636920 & # 34; }9。完整的请求消息(URL代码)
request data = % 7b ++++% 22 order code % 22% 3a+% 22012657018199% 22% 2c ++++% 22 pay type % 22% 3a+% 221% 22% 2c ++++% 22 month code % 22% 3a+% 221234567890% 22% 2c ++% 22 exp type % 22% 3 a+% 221% 22% 2c ++解码的消息:
RequestData = { & # 34工资类型& # 34;: 1,"ExpType & # 34: 1,"托运人代码& # 34;: "SF & # 34,"订单代码& # 34;: "300008886539888", "IsNotice & # 34: 1,"IsReturnPrintTemplate & # 34: 1,"商品& # 34;: [{"GoodsName & # 34: "其他& # 34;,"商品数量& # 34;: 1,& # 34;GoodsWeight & # 34: 0}],"发件人& # 34;: {"姓名& # 34;: "王宝& # 34;,"移动& # 34;: "13988888888","普罗文斯名称& # 34;: "北京& # 34;,"CityName & # 34: "北京& # 34;,"ExpAreaName & # 34: "西城区& # 34;,"地址& # 34;: "北京市西城区西直门南大街国盈1号1020 & # 34;},"接收者& # 34;: {"姓名& # 34;: "刘晓道& # 34;,"移动& # 34;: "18809999999","普罗文斯名称& # 34;: "广东省& # 34;,"CityName & # 34: "深圳& # 34;,"ExpAreaName & # 34: "福田区& # 34;,"地址& # 34;: "广东省深圳市福田区华宝大厦1号& # 34;}}&e业务ID = test 1617571 & Request Type = 1007 & Data Sign = zdhhotu 2 otcxmwi 1 ngfintbmzq 5 Njmnzyxzmeymzk = & datatype = 211。分步解释(C#版本)
请求包结构
12 .签名描述
关于签名
快递与第三方电商公司系统的连接有一定的安全机制。对接采用IP认证加签名,具体方案如下:
1.防止数据被篡改 在POST请求中会传递五个必需的(r)参数 RequestData==数据内容(URL代码:UTF-8) EBusinessID==用户ID RequestType=请求指令类型[/h data sign = =+API key]用于MD5加密,然后是Base64编码,最后是URL(utf-8)编码 DataType==2(返回的数据类型是json) 注意调用接口认证 注册成为信使鸟用户后,会生成相应的用户ID和APIKey,其中用户ID相当于用户名,APIKey相当于密码。 例: 1。假设 RequestData (JSON)内容为: { & # 39;订单代码& # 39;:'','托运人代码& # 39;:'SF & # 39,'物流代码& # 39;:'118954907573'} URL(UTF-8)编码的内容是: % 7b % 27 order Code % 27% 3a % 27% 2c % 27 shipper Code % 27% 3a % 27 SF % 27% 2c % 27 logistic Code % 27% 3a % e businessid = 1237100[示例ID,实际操作中不能使用] API Key = 56 da 2 cf 8 a2-44 B2-B6FA那DataSign签的是什么?订单代码& # 39;:'','托运人代码& # 39;:'SF & # 39,'物流代码& # 39;:'118954907573'} 56 da 2c F8-c8 a2-44 B2-B6FA-476 CD 7 D1 b 17 MD5和base64后内容为:owfhm 2 i5 N2 vim 2 u 2 mrgkmjc 4 yzu 2 nmvlzwi 3 zdk 0 me =, URL(UTF-8)编码后内容为:owfhm 2 I 5 N2 VI 2 u 2 mgkmjc 4 yzu 2 nmvlzwi 3 zdk 0 me % 3D 最终数据待接收到数据后,接收器获得 EBusinessID、RequestData和DataSign。 4。接收方对EBusinessID的APIKey和RequestData+APIKey的数据进行 md5和base64后,内容为 owfhm 2 i5 N2 vim 2 u 2 mrgkmjc 4 yzu 2 nmvlzwi 3 ZK 0 Mme = 5。接收方判断签名的数据是否与发送的数据一致。接口调用示例:
使用的字符串= & # 34;1237100";//仅作为示例ID,不能用于实际使用 /加密的私钥。 string key value = & # 34;56 da 2 cf 8-c8 a2-44 B2-b6fa-476 CD 7 D1 ba 17 & # 34;;//仅作为示例键,不能用于实际使用 //请求地址 字符串url = & # 34http://API . kdniao . com/e business/e businessorderhandle . aspx & # 34;; //2-json string数据类型= & # 34;2"; //字符编码采用UTF-8 字符串charset = & # 34UTF-8 & # 34;; //JSON string string string JSON str = & # 34;Json请求消息& # 34;; /用MD5加密(jsonStr+APIKey),然后用Base64编码,最后用URL(utf-8) data sign = http utility编码。urlencode (base64 (MD5 (JSON字符串+密钥值,& # 34;UTF-8 & # 34;), "UTF-8 & # 34;),编码。UTF8); //请求消息参数 string PostStr = & # 34;request type = 1002 & ebuinessid = used & request data = JSON str & data sign = data sign & DataType = DataType & # 34;; //通信协议使用Http协议Post请求模式 String post = this。dopost (URL,poststr);C#调用方法:
///& lt;总结& gt //字符串MD5加密 //