近几年来,我国电子商务交易规模越来越大,线上订单越来越多,退换货的情况也越来越常见。今天就来讲讲电商退换货的问题。

订单退货,作为订单出库的逆向流程,其实还是蛮复杂的。他可以是单纯退款,或者退货退款,还有换货。这个环节可以说是线上购物过程中的重要一环。一方面商家与消费者之间容易有纠纷,另一方面能体现商家服务水平。为了保障这个环节的服务,电商平台不断推出各种服务,其中就包括退换货上门取件服务。

目前淘宝,京东,拼多多都有这项服务,但这样的大型电商都是平台内部使用,并不对外提供服务。也就是说,其他电商平台需要使用淘宝,京东的退换货上门取件服务,基本不可能,而小中型电商要想自主研发也不现实,成本太高,周期长。

另外在线下回寄过程中,用户和商家基本上全程参与,会给他们退货过程中带来诸多的不便。

用户痛点:工作日没时间、附近没快递点、手动录错单号、运费不透明等;

商家痛点:在后台不能及时获取物流动向,导致退款或换货周期拉长等;

平台痛点:无法实及时监控退货的进展,与用户、商家存在信息差,导致售后投诉比例高,人工介入成本变高;

那些没有巨额资金支撑、没有强大实力部署物流系统的平台该如何解决逆向物流管理问题?

这个时候,很多第三方物流服务公司也注意到了这一现状,推出了类似的服务。全国知名品牌快递鸟率先推出了退换货上门取件服务。不同的是,快递鸟的取件服务是真正为电商们服务的。

为此,小编专门研究了快递鸟的上门取件业务,做了一点个人总结,分享给大家, 强烈建议产品经理和技术人员观看。

什么是退货上门取件?

退换货上门取件服务是为买家在退货时,提供的一种舒心,便捷的物流退货服务,当买家购买的商品在申请换货或者退货时,由物流公司安排快递员上门取走退货商品的一项服务。

寄商品寄出时用户无需填写寄件地址和收件地址,全部由系统自动生成,具体可看下图一键预约退货上门取件流程:

(退货上门取件的服务流程)

这是一个服务流程图,从图中了解到,有买家,电商平台,快递鸟,物流公司,快递员

我们先说说消费者买家。

我们先做一个退货服务前后对比,没有对接退货服务前:

客户申请退货贼麻烦,首先客户要自己电话联系快递员,或者自己送货到快递网点,还要在退货商品上备注小字条,写上订单号与退货说明,商品邮寄出去还要登录网站填写运单号,客户如果填写错误,会影响客户退款资金到账的时效。有过退货经历的,是不是有同感?

在看对接退货服务以后:

客户申请退货只需轻轻一点,一件退货,物流公司就会安排快递员上门取件,客户在家喝杯咖啡的功夫就完成了退货。还有各种增值服务,可以预约快递员的上门时间,在线支付运费,有些有运费险的,基本上就不需要费用,客户也不用备注订单,后续操作都是系统自动完成,最后客户只能为你竖起大拇指,说一句:very good!

接下来我们说产品和技术人员比较关心的内容——电商平台

电商接收客户退货请求,电商客户会按自己的审核规则进行初审,是否达到退货条件,满足就向快递鸟发起退货申请,不满足就通知客户,这部分功能可以按自己内部的业务需求设计,大的主流程不变,还有其他增值服务的功能,可以去找快递鸟的客服了解,这里就不细说了。

服务优势

上门取件服务是一举多得的业务,对买家,电商平台都受益。

那么卖家能够得到什么?

1.让您的买家体验快捷方便的退货服务,提供您的店铺竞争力

2.在线结算运费,支付无忧

3.退货时进行基础验收,保障退货商品符合您的退货要求

4.退货信息全程监控,让你实时掌握退货进度

5.全程保证退货质量,让您不在担心物流问题

买家能够得到什么?

  1. 退货更简单,想退货就有人来拿,还能约时间
  2. 上门取件时效保障
  3. 支付更便捷,在线支付运费、运费价格透明
  4. 服务有保障,不怕退货商品丢失、损毁,快递员做过验收,风险转移

服务接口

这里小编会分享源代码,把源码复制到你的项目上,就能快速完成上门退货接口对接,更适合刚入门的朋友们。

这里我们以申通快递的上门退货服务为例来讲解,调用快递鸟提供的上门取件API标准接口,成功调用后,申通快递员会上门服务,同时支持申通快递单号的轨迹查询。快递鸟api接口不区分开发语言,支持Java,C#,PHP,Python,ObjectC等开发语言的程序调用。下面具体讲解实现过程:

一、完成前期准备工作

1、去快递鸟官网免费注册一个账号

2、免费获得一个apiKey(接口权限验证需要),

3、完成实名认证流程

4、订购一个免费套餐

二、API接口

1、测试调用地址:

http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json

2、正式调用地址:https://api.kdniao.com/api/OOrderService

3、请求方式:POST

4、编码格式(utf-8):application/x-www-form-urlencoded;charset=utf-8

5、返回类型:JSON

6、调试页面:用户登录_快递鸟API让物流接口对接更简单

系统请求参数(Headers)

参数名称

类型

说明

必须要求

RequestData

String

请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。

R

EBusinessID

String

商户ID,请在我的服务页面查看。

R

RequestType

String

请求指令类型:

1801(下单接口)

1802(取消接口)

R

DataSign

String

数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后 进行URL(utf-8)编码。详细过程请查看Demo。

R

DataType

String

请求、返回数据类型:只支持JSON格式

R

备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选

下单请求参数(Body)

参数

类型

说明

必须要求

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

下单返回参数(Return)

参数名称

类型

说明

必须要求

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":"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":"小心轻放"
}

下单请求完整报文(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

下单成功返回报文(Json示例)

{"EBusinessID":"1237100","Success":true,"Order":{"OrderCode":"012657018199","KDNOrderCode":"KDN012657018199","ShipperCode":" STO","LogisticCode":"615123456789"},"ResultCode":"100","Reason":""
}

实际业务会存在,取消操作功能,客户下的订单,由于多方原因需要取消下单,为此快递鸟也提供了取消上门取件的接

取消请求参数(Body)

名称

类型(字符长度)

是否必须

描述

ShipperCode

String(20)

R

快递公司编码

详细编码参考免费注册

OrderCode

String(30)

R

订单编号(自定义,不可重复)

LogisticCode

String(30)

O

快递单号

Reason

String(100)

O

取消原因

口,我们来讲解下

消返回参数(Return)

名称

类型(字符长度)

是否必须

描述

EBusinessID

String(10)

R

用户ID

Success

Bool(10)

R

成功与否(true/false)

ResultCode

String(5)

R

返回编号

Reason

String(50)

O

失败原因

取消请求参数(Json示例)

{"OrderCode": "012657018199","ShipperCode": "SF",
}

取消成功返回报文(Json示例)

{"EBusinessID": "1237100","Success": true,"ResultCode": "100",
}

分步讲解(C#版本)

  • 请求数据包结构
  • C#调用代码示例
//电商ID
string eEBusinessID = "test1617571";//电商加密私钥,快递鸟提供,注意保管,不要泄漏string appKey= "554343b2-7252-439b-b4eb-1af42c8f2175";//请求urlstring reqURL = "http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json";//请求指令 string reqType="1801";//2-json string dataType = "2"; //字符编码采用UTF-8 string charset = "UTF-8"; //JSON字符串string string jsonStr = "{\"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\":\"小心轻放\"
}" ;//把(jsonStr+APIKey)进行MD5加密string md5Str=MD5(jsonStr + apiKey, charset);//把md5Str 进行Base64编码string base64Str=base64(md5Str,charset);//进行URL编码 (utf-8)string datasign = HttpUtility.UrlEncode(base64Str, charset); //请求报文参数 string postStr = "RequestType=reqType&EBusinessID= eEBusinessID&RequestData=jsonStr
&DataSign= datasign&DataType=dataType";
//通讯协议使用Http协议Post请求方式 返回轨迹数据
string post = SendPost(reqURL, postStr);//获取到的post数据就是快递鸟返回的完整报文,接下来自己写一个解析json的方法就能获取到里面的字段信息。
  • C#调用方法
///<summary>/// 字符串MD5加密///</summary>///<param name="str">要加密的字符串</param>///<param name="charset">编码方式</param>///<returns>密文</returns>private string MD5(string str, string charset){byte[] buffer = System.Text.Encoding.GetEncoding(charset).GetBytes(str);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");elseret += a.ToString("X");}return ret.ToLower();}catch{throw;}}/// <summary>/// base64编码/// </summary>/// <param name="str">内容</param>/// <param name="charset">编码方式</param>/// <returns></returns>private string base64(String str, String charset){return Convert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));
}/// <summary>/// Post方式提交数据,返回网页的源代码/// </summary>/// <param name="url">发送请求的 URL</param>/// <param name="postData">请求报文参数</param>/// <returns>远程资源的响应结果</returns>private string SendPost(string url, string postData){string result = "";byte[] byteData = Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString());try{HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request.ContentType = "application/x-www-form-urlencoded";request.Referer = url;request.Accept = "*/*";request.Timeout = 30 * 1000;request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";request.Method = "POST";request.ContentLength = byteData.Length;Stream stream = request.GetRequestStream();stream.Write(byteData, 0, byteData.Length);stream.Flush();stream.Close();HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream backStream = response.GetResponseStream();StreamReader sr = new StreamReader(backStream, Encoding.GetEncoding("UTF-8"));result = sr.ReadToEnd();sr.Close();backStream.Close();response.Close();request.Abort();}catch (Exception ex){result = ex.ToString();}return result;}

关于签名

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

防止数据被篡改 
在 POST 请求中会传递 5 个必须(R)参数 
RequestData==数据内容(URL 编码:UTF-8) 
EBusinessID==用户 ID 
RequestType=请求指令类型 
DataSign== 数据内容签名:把(请求内容(未编码)+ApiKey)进行 MD5 加密,然后 Base64 
编码,最后进行 URL(utf-8)编码 
DataType==2(返回数据类型为 json) 
注:
DataSign 生成后,对方接收到数据后,以同样的算法进行签名(推送接口 RequestType 为 101/102 不需要进行 URL 编码),生成摘要,对比两者的摘要是否相同,如果不同,说明传递过程中发生数据篡改。 
调用接口的身份认证 
注册成为快递鸟用户后,会生成对应的用户 ID 和 APIKey,用户 ID 相当于用户名, 
APIKey 相当于密码。 

返回码定义

编码

说明

100

成功

101

缺少必要参数

102

校验问题

103

格式问题

以上就是本次分享的内容。

网购能做到一键购买,更要做到一键退货,客户才能留得住。在这个时代,客户是上帝,如果购物的是大爷,那退货的就是佛爷,我们更要把退货流程做到极致,不要担心客户退货,质量问题,该退的留不住,你保住了一单,失去的是一个客户,客户的传播效应,会让你失去整个市场,好买更好退,销量才翻倍,退货服务能考验电商对消费者的服务态度。

记住留住回头客没有捷径,一定要服务到最后一站。做好上门退货服务!

电商退货退款处理服务流程,快递鸟提供最有效的解决方案(内附教程)相关推荐

  1. 电商退货处理流程_多个退货单

    电商退货处理流程 我曾经听说过,人们过去一直在努力使方法具有单个出口点. 我知道这是一种过时的方法,从未认为它特别值得注意. 但是最近,我与一些仍坚持该想法的开发人员进行了联系(最后一次是在这里),这 ...

  2. Java生鲜电商平台-订单中心服务架构与异常订单逻辑

    Java生鲜电商平台-订单中心服务架构与异常订单逻辑 订单架构实战中阐述了订单系统的重要性,并从订单系统的信息架构和流程上对订单系统有了总体认知,同时还穿插着一些常见的订单业务规则和逻辑.上文写到订单 ...

  3. 快手发布38大促战报,快手电商推出“拦截物流”服务

    1.快手电商开展直播间"虚假承诺福利"专项治理 近日,快手电商发布公告称,平台决定针对带货达人在直播间内存在的"虚假承诺福利"行为做专项治理. 直播间" ...

  4. Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析

    Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析 说明:Java生鲜电商平台中,由于服务进行了拆分,很多的业务服务导致了请求的网络延迟与性能消耗,对应的这些问题,我们 ...

  5. 中小电商如何与全球400余家快递物流公司做接口对接

    电商与物流,这几乎是一对孪生兄弟.     电商要提供的消费者的不仅是货物派送,还要即时向用户呈现物流的进度,此举极大地增强了用户体验.     而快递收派件是快递最重要的两个环节,在 "互 ...

  6. Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案

    Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案 说明:Java生鲜电商平台中由于采用了微服务架构进行业务的处理,买家,卖家,配送,销售,供应商等进行服务化,但是不可避免存在 ...

  7. 新手做电商直播带货怎么和快递合作谈价格

    新手做电商直播带货怎么和快递合作谈价格达人带货一般怎样的合作模式?#达人带货 #直播带货 #红人 #百收网 跟快递谈价其实是有方法的,快递的价格不是说不能打下来,就是需要你们多一点点的心机.这个视频我 ...

  8. 电商数据分析的方法、流程及场景

    电商数据分析的方法.流程及场景 数据分析流程:分析方向: 战略分析:根据行情.竞对.国家政策等外部因素制定战略. 业务分析:公司正常业务的数据分析. 产品分析:APP.平台.商品等分析. 增长分析:内 ...

  9. 退货表mysql_openant电商-退货 - 数据库设计 - 数据库表结构 - 果创云

    -- 数据库大全:openant电商-退货 -- 来源:YesApi.cn CREATE TABLE `yesapi_openant_return` ( `id` bigint(20) unsigne ...

最新文章

  1. ReSharper修改命名风格
  2. 第一章---对象导论
  3. cmd 调用webservice接口_c# 三种方法调用WebService接口
  4. 每天一道LeetCode-----回文链表
  5. 《Go语言圣经》学习笔记 第十一章 测试
  6. MissingServletRequestPartException: Required request part ‘file‘ is not present]
  7. datatables 响应式
  8. PowerPoint什么意思
  9. matlab积分作图速度慢,MATLAB 多个积分和画图的问题,一直画不出来。
  10. 微信小游戏跳坑之旅(一)——使用白鹭引擎开发之创建项目
  11. C++ boost multiprecision类型转换 u256转double
  12. mysql数据库引擎事务_代码配置都没问题,为什么事务不回滚(了解Mysql数据库引擎)...
  13. java设计模式 观察者模式_JAVA设计模式之观察者模式
  14. 70 行 Python 代码写春联,行书隶书楷书随你选
  15. 计算机仿真技术交通灯设计,交通灯的设计心得体会总结
  16. 尼康1c全站仪语言设置,尼康NIVO.1C全站仪
  17. c++十进制数字转换为小写和大写罗马数字的算法(附完整源码)
  18. hdu5773 --2016多校第四场1010
  19. python判断一个列表是否包含另一个列表_Python-检查一个列表是否包含在另一个列表中...
  20. 凸包(convex hull),凸包络面(convex envelope), 凸低估计量(convex underestimator), 图上方(epigraph),

热门文章

  1. 人生致命的八个经典问题~~
  2. C++ builder的文件操作
  3. 台式机性能超级计算机,超级计算机和普通个人计算机有什么区别?
  4. 个人日记-电影《信条》观后感-20200906
  5. FireWork 团队项目
  6. 搭配Online:波音737 MAX停飞,股价重挫收跌4.3%!
  7. C# ??(问问,问号问号)运算符,可空值(申明加?(问号))的克星
  8. word修改页眉页脚一直乱动
  9. hive 常见的函数
  10. 利用Email.icu发展您的业务