支付回调消息的分布式锁设计
支付回调消息的分布式锁设计
业务系统接收支付系统发送的MQ消息,然后推动业务逻辑及订单状态的处理。
如果非正常情况下,支付系统接收到多次第三方支付系统的多次回调,导致会发送多次MQ消息。
导致业务系统支付数据等重复操作。
首先需要做支付通知后的幂等处理(接收端)
其次是对接收到的消息做分布式锁,避免消息的重复。可以将支付ID,支付方式(支付or退款),支付流水号(qn)作为联合key来锁定。
最后可以在MQ发送端做控制,也可以达到目的。
支付回调消息的分布式锁设计
业务系统接收支付系统发送的MQ消息,然后推动业务逻辑及订单状态的处理。
如果非正常情况下,支付系统接收到多次第三方支付系统的多次回调,导致会发送多次MQ消息。
导致业务系统支付数据等重复操作。
首先需要做支付通知后的幂等处理(接收端)
其次是对接收到的消息做分布式锁,避免消息的重复。可以将支付ID,支付方式(支付or退款),支付流水号(qn)作为联合key来锁定。
最后可以在MQ发送端做控制,也可以达到目的。