做过支付系统的进来,你们是怎么处理支付系统订单退款这些数据的一致性的?

2018-01-18 15:35:30 +08:00
 soasme

昨天看到 Airbnb 他们家 处理支付系统的一篇文章

想到曾经做过一次支付系统,做的方式差不多,但是项目比较小,比不上他们要用上分布式,Hadoop,也没有什么报警系统。感觉他们要接全球几十个网关又有新老系统交接,体力活太多。。。

我以前的做法是

不知道大家是怎么处理。

PS, 欢迎大家订阅我的技术阅读喔~ 会每周奉上干货,在 网站 上提交邮箱即可订阅!

2937 次点击
所在节点    程序员
1 条回复
dl2k
2018-01-18 17:21:21 +08:00
我没太看懂你的意思,不过从我的角度理解。你谈的是商户系统的话,退款成功与否其实是在结算的系统(一般为第三方,银行,支付宝等)的。那无非你需要控制的就是是否出现多次退款,或者退款成功没有返回等情况。这个可能问题中退款(指基于之前的某个付款记录产生的 refund 行为)的数据可控是依赖于对方系统的结果。你的每次请求在本方系统都是先假定成功的(修改余额记录),并且生成本地的退款流水记录。然后向第三方系统发起请求(记录第三方的事务 id ),并通过定时轮询的方式向第三方确认状态(第三方必然要提供一个最终结果,成功 /失败)。你根据结果来处理本地的流水状态,看是要正常完成还是退回余额。所有的日志必须保留以方便异常时人工排查。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/423949

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX