昨天看到 Airbnb 他们家 处理支付系统的一篇文章
想到曾经做过一次支付系统,做的方式差不多,但是项目比较小,比不上他们要用上分布式,Hadoop,也没有什么报警系统。感觉他们要接全球几十个网关又有新老系统交接,体力活太多。。。
我以前的做法是
不知道大家是怎么处理。
PS, 欢迎大家订阅我的技术阅读喔~ 会每周奉上干货,在 网站 上提交邮箱即可订阅!
1
dl2k 2018-01-18 17:21:21 +08:00
我没太看懂你的意思,不过从我的角度理解。你谈的是商户系统的话,退款成功与否其实是在结算的系统(一般为第三方,银行,支付宝等)的。那无非你需要控制的就是是否出现多次退款,或者退款成功没有返回等情况。这个可能问题中退款(指基于之前的某个付款记录产生的 refund 行为)的数据可控是依赖于对方系统的结果。你的每次请求在本方系统都是先假定成功的(修改余额记录),并且生成本地的退款流水记录。然后向第三方系统发起请求(记录第三方的事务 id ),并通过定时轮询的方式向第三方确认状态(第三方必然要提供一个最终结果,成功 /失败)。你根据结果来处理本地的流水状态,看是要正常完成还是退回余额。所有的日志必须保留以方便异常时人工排查。
|