统一支付流程设计如下:

客户端:

游戏内统一支付系统设计与实现

服务器端:

游戏内统一支付系统设计与实现

简单解释一下:

  • 每次支付开始,都要让服务器生成一个订单作为此次支付的记录,订单的id即为 bill_id。订单有4中状态:订单生成,支付失败,支付成功,发货成功。
  • pay_server即为统一支付系统的服务器端,考虑到调用量和方便调试,使用了简单的http协议+json+sign的方式

对于服务器内部,唯一麻烦的一点是,《等待pay_server支付结果通知》这个接口。因为这个http请求需要支持挂起,在第三方支付服务器通知了pay_server之后,pay_server 根据通知里面透传的bill_id 将订单状态修改后,再给客户端结果。


客户端:

基于这一点,我们就可以做一个同一个工厂函数,将这个工厂函数类封装成一个jar包。

同时,我们对每一种支付方式,都封装出一个统一的接口,而工厂函数返回的即这样一个接口的实现。当某一种支付方式的封装类不存在时,就捕获这个异常,并返回NULL。

统一接口的代码如下:

工厂函数的代码如下:

 

上面的方法是只封装了一个factory函数的jar包,其他的对每种支付的封装还是走源码的方式。


相关文章:

  • 2021-10-02
  • 2021-10-08
  • 2022-12-23
  • 2021-11-19
  • 2021-04-28
  • 2021-07-02
  • 2021-10-03
  • 2022-01-11
猜你喜欢
  • 2021-08-19
  • 2022-02-07
  • 2022-01-18
  • 2021-05-11
  • 2021-10-23
  • 2022-12-23
  • 2021-10-23
相关资源
相似解决方案