在游戏陪玩源码中掉单有两种类型,分别是内部掉单和外部掉单。内部掉单是指支付服务的状态没有同步到订单,外部掉单是指第三方支付的支付状态没有同步到平台。在游戏陪玩源码中,掉单可能会引发重复支付等问题,所以在开发时应该如何防止掉单问题的出现呢?
一、防止内部掉单的主要方式
1、订单状态更新流程
(1)支付服务收到异步通知回调或主动轮询流水状态;
(2)通知订单服务支付流水的变化;
(3)订单服务同步更新订单状态。
2、同步+异步方式
在游戏陪玩源码中通常会采用同步+异步的方式来防止内部掉单问题:
(1)同步:是指同步调用重试机制,由于网络等因素,游戏陪玩源码中的支付服务在调用订单服务时,可能会出现调用失败的情况,为避免出现掉单情况则需要实现失败重试机制。
(2)异步:是指异步消息可靠性投递,无论是支付服务投递支付成功消息,还是订单服务消费支付成功消息,均需保证可靠性。
二、防止外部掉单的主要方式
在游戏陪玩源码中防止外部掉单的关键在于主动性,系统不能光等着第三方支付平台的回调通知,还应该主动去查询订单支付状态,而主动查询的方式有两种:
1、定时任务轮询
所谓的定时任务轮询是指当用户发起支付操作后,在既定的时间后就开始发起订单支付状态的轮询,在游戏陪玩源码中可以利用线程池、调度框架、分布式调度框架等方式实现定时任务。
在游戏陪玩源码中实现定时任务轮询有两个劣势是不容忽视的,其一是会对数据库造成一定的压力,其二是轮询频率不容易进行调整。
2、延时消息轮询
所谓的延时消息轮询是指当用户发起支付操作后便发送一个延时消息,当延时消息被消费时便进行支付状态的查询,如果没有查询到最终的支付状态,那就再发送一个延时消息。
在游戏陪玩源码中利用该方式实现主动查询对数据库没有压力,而且轮询频率易于调整,不过因为需要维护消息队列,所以实现起来难度较大。
由于游戏陪玩源码中与用户资金直接挂钩的功能模块比较多,所以要做好支付相关的开发,避免因支付问题影响用户的使用体验,云豹游戏陪玩源码在开发时采用了多种安全防护机制,切实保障用户利益,如有需要可联系客服咨询。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.cn