每个人都要会的支付方案

支付方案

支付方案:

订单1:N 支付单。

用户选择支付方式后生成支付单或拿到最近支付单(注意分布式锁,并且支付单绑定订单号,防止多次支付)

返回前端, 前端用户支付

  1. 支付完成后支付回调, 收到回调后,重新查询支付单状态,并修改状态

  2. 用户前端刷新查询,查询第三方收款,若还是未支付返回等待/未支付

2B的要对接银行,而且要分别对接,偷懒的办法是让用户上传凭证手工核对。

在支付和订单的服务中,最好穿插MQ,也就是用户支付后,回调消息发送给支付服务,支付服务mq中发给订单服务。

如果在支付中,涉及优惠券/库存,需要注意分布式事务问题。支付单支付生成中,需要支付单生成,优惠券扣减,库存扣减同步发生。

这里几个风险点: 一个是支付方要求的Https证书类型,一个是像是Airwallex之类的支付接入会有考察,包括线下考察, 技术上反而没有什么很多的风险点,注意状态和数据还有保留痕迹(log)就好,支付方已经做了最大的风险方面把控。

订单过期:

消息队列,延迟队列(rocketmq中有自带实现,rabbitmq需要安装插件)

下单-> 延迟队列 --> 到期消费 --> 检测支付状态 --> 关闭订单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值