支付系统流程
想要精通一个行业需要多久?
我的回答是I don't know,断断续续做支付这一块的业务有几年了,但是感觉刚刚入门。
很久没有写博客了。。。不知道要怎么写了。
---------------------------------------------------------------
以下支付的说明,均是基于跨境电商,支付渠道如无特殊说明,均是指PayPal。
---------------------------------------------------------------
目录:
1. 支付系统简介
2. 支付系统关联系统
3. 支付系统设计
4. 总结
1. 支付系统简介
每一家公司都是在做销售,产品是实体货物或者服务或者其他,目标都是要盈利。每个公司都会有一个收银台(实物或者虚拟的),原因是需要。。。收款或者退款。这也是支付系统产生的原因吧。毕竟每一个软件的产生都是要解决实际生活中的问题。(小结:支付系统是一个收银台)
作为一个非支付业务为主的公司,在使用支付渠道时,往往采用的第三方支付渠道(个人认为原因是支持的支付方式或者卡种会更多,对于国外的本地化或者全球化支持度更高),尤其是电商公司。
2. 支付系统关联系统
2.1 订单系统
我们采用的是先下单,再进行支付,如一段时间之后不进行支付,则取消订单。支付系统会更新订单系统的支付状态,如支付成功会进入发货流程。
订单系统介绍请查看这里
2.2 风控系统
2.2.1 事前风控
简介
在进入第三方进行支付之前,对订单信息进行风控判定,也叫做黑名单风控
校验信息
客户ID,客户邮箱,客户IP,客户下单频率,订单支付次数,支付频率
任意订单信息校验不通过,则拒绝客户进行支付。
2.2.2 事后风控
简介
无法通过系统来判断是否是高风险的交易,需要人工判断
校验信息
取消订单频率,收货地址(是否在高风险国家、城市),金额(是否超出指定金额)
说明:
每个公司对于风控系统的认知和想法不同,适合自己的才是最好的。风控规则也会随着风险的变化而变化。
2.3 IPN管理系统
简介
管理第三方发送的交易结果通知,发送给支付系统进行解析(更新交易结果、交易状态)。ipn是指第三方支付渠道发过来的交易通知。
ipn的类型:payment、refund、chargeback、dispute(这里列出来一些常见的和通用的,其他根据具体的支付渠道来)等等
2.3.1 接收ipn
当第三方支付渠道发送过来ipn之后,应该是做简单的校验(和第三方支付结果进行比对)即可入库。以便于由于系统问题造成ipn接收失败
2.3.2 给支付系统发送(或者重新发送)ipn
ipn管理系统接收到ipn之后,会异步通知支付系统(更新交易结果和状态,以及时间)
解决问题
第三方支付渠道沟通、不进行通知的重发,以及支付系统处理失败等等问题。
3. 支付系统设计
3.1 支付流程
用一张图来说明(A B C为操作本地数据库位置,第一次出现为添加,第二次出现为更新)
3.2 退款流程
和收款流程相比,只是少了事前风控(当然调用的第三方API,是退款的API)。退款交易的父级ID为付款ID
3.3 Ipn处理流程
以支付结果ipn处理流程为例(这里会处理ipn重复接收的问题,另外dispute、chargeback通知会产生新的交易记录,并且会冻结订单金额)
4. 总结
4.1 一笔订单可能有多笔支付交易(可能部分付款,国内这种情况较少)
4.2 对于一笔交易而言(不是一笔订单),支付流程的正向流程只有一个,而逆向流程可能有多个(例如,dispute处理过程中可能会发送多条ipn,需要针对不同类型的ipn进行处理,并改变订单状态,让客户知道当前的处理进度)
4.3 退款渠道一般有两条路径(订单系统退款,支付系统退款),如果一笔交易有正在退款中的交易,那么允许再次添加一条退款交易(即使两笔退款都是退全额的支付金额)
4.4 在支付系统设计的过程中,应该考虑到财务对账(第三方支付系统和支付系统,支付系统和订单系统)
4.5 ipn的处理流程太过于复杂,影响到交易结果和订单状态(需要异步发送通知)
4.6 风控策略会根据风险的变化而变化
这里只是简单说一下支付流程,牵扯到的很多细节没有进行说明,未完待续。。。。。。