以下文章来自产品大秘籍,作者道三。

买卖双方在互联网上的电子商务网站进行交易时,大多数情况下都会使用在线支付功能,常见的在线支付方式有支付宝、微信支付、Apple支付等等,那么我们一起归纳一下。

(图1:在线支付方式)

当买卖成功后,不管是买家原因或卖家原因,可能会需要退款操作。现在以常规电商平台为例,使用支付宝作为支付方式,来介绍本文重点内容:退款金额是如何原路退还的。

(图2:退款节点)

通过图2可以发现用户可以在订单状态为待发货、待收货、交易成功时,均可以发起退款操作;

待发货

商品还未发出,用户可能因为未使用优惠券或拍错了等原因发起退款;

待收货

用户收到商品,发现商品有瑕疵等商家原因,就不确认收货,这时候状态还是处于待收货中,用户可发起退款;

例子:用户买了一箱苹果,发现里面有一半的苹果已经坏了,这时候用户跟商家协商要退回一半的钱。

交易成功

用户确认收货后,在一定时间内依旧可发起退款。

例子:用户买了一件衣服,手快点了确认收货,但是发现衣服线头比较多,不过呢还是很喜欢又不想换货,于是就和商家沟通,按需退回一些钱补偿自己,不然就给差评。

上述场景,商家收到用户退款申请,审核无误,点击同意退款后,按照退款规则将支付款原路退到用户的支付宝帐号上。

(余额方式)

(余额宝方式)

(花呗方式)

很多小伙伴就会疑问:为什么我用余额支付就退还到余额,用余额宝支付就退还到余额宝?接下来我们一步一步解密这过程。

1. 用户付款

用户的常规的下单、支付流程:

(1) 在app中选择商品下单、确认购买,进入支付环节,用户点击确认支付;

(2) 进入到支付宝页面,调起支付宝支付,出现确认支付界面;

(3) 确认收款方和金额,点击立即支付后出现输入密码界面或者指纹识别等操作;

(4) 输入正确密码等操作后,支付宝端显示支付结果;

(5) 自动回跳到app中,技术人员根据付款结果个性化展示订单处理结果。

(图3:支付流程)

最终支付成功后,支付宝会生成一条支付信息,记录商家和支付宝平台的交易数据。

(图4:支付宝账单详情)

图4账单详情包含了以下主要字段:

付款方式:账户余额、花呗、银行卡等,优先展示支付顺序排第一的支付方式;

商品说明:平台可自定义文案,当做参数传给支付宝;

创建时间:订单支付成功的时间;

订单号:订单支付成功后,生成支付流水号;

商家订单号:也叫支付编号,平台按照规则,退款时当做参数传给支付宝。

2. 退款操作

当用户因为在上述三种节点下发起退款操作,商家在后台确认售后信息无误,并同意用户退款申请后,通常在一定时间内将退款金额原路返还到用户账号上。

(图5:商家退款操作)

到账时间

退回支付宝余额:资金是实时到账;

退回到银行卡:一般3-7天入账;

退回余额宝:资金实时入账;

3. 技术层面上:如何实现退款金额原路退还

当商家点击“同意退款”的时候,如果订单是用支付宝付款,就会选择触发支付宝退款接口api,按照官方退款文档说明选择上传3个参数,如下所示:

out_trade_no:图4:支付宝账单详情中的商家订单号,由平台自定义生成;

refund_amount:需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数;

out_request_no:用来标记是全部退款或部分退款;这里提个建议:不管用户在终端选择的是全部退款、还是部分退款,默认最好都是传入部分退款的标识。

当然这里只上传了3个必要参数就满足我这边项目场景,而你们想要上传多少个参数,就要结合实际情况来定。

(图6:退款流程)

大致背后代码逻辑是这样的:

(1) 付款成功的时候,平台会生成商户订单号(支付编号),然后传给支付宝的支付接口,进行保存,将商户订单号和交易号进行绑定关联;

(2) 当时商家同意退款时,传入商户订单号等必要参数给支付宝的退款接口,然后通过商户订单号找到交易号,再通过交易号查询到当前退款订单的数据,比如实付金额、支付时间、支付方式、用户信息等数据;

(3) 根据所要退款的金额,通过各种异常情况的校验,最终完成金额原路返还。

常见的异常情况有以下几种情况:

卖家余额不足:商户支付宝账户充值后重新发起退款即可;

交易已完结:该交易已完结(已超过退款期限),不允许进行退款(即使重试也无法成功),建议联系买家进行线下退款处理;

买家状态异常:联系支付宝小二确认买家状态异常原因,或者可联系买家进行线下退款处理;

退款金额超限:请检查退款金额是否正确,请求的退款金额不能大于交易总金额;如果不是全额退款,退款请求号必填,请检查是否传入了退款请求号;

实际上支付宝退款文档提供的异常情况比较多,大家可以通过接口文档自行查看(https://opendocs.alipay.com/apis/api_1/alipay.trade.refund),针对不同异常情况,要做好各种异常提示以告知商家,有些情节严重可以考虑生成工单进行处理。

看似简单的功能,其实背后做了大量的操作,支付宝支付方式,退款金额原路返还流程大致是这样的,是不是奇怪的技术知识又增加 。