游戏支付系统如何架构与设计

发布时间 2023-10-20 16:44:24作者: rain4414

 目前游戏开发中主流的支付是微信支付,支付宝支付,苹果支付等。今天来给大家分享一下游戏中支付系统如何架构与设计。

 

游戏支付中的主要业务流程

 

在设计游戏支付的时候,了解游戏中的支付过程与步骤是非常必要的,只有搞懂了这些步骤才能把支付功能做好。我们以常见的网络游戏为例来讲解支付的主要流程,有些单机的游戏支付可能会不一样,具体的根据自己的业务来进行调整与处理。

 

(1)服务端生成订单信息, 生成唯一的支付订单号,作为支付SDK的自定义订单号,并将订单号返回给客户端;

(2) 客户端调用支付SDK,传入自定义的订单号,拉起支付流程,完成正式的支付;

(3) 客户端根据支付SDK的返回结果,来做好支付结果的提示,成功,失败,取消等;

(4) 服务端配置一个后台处理地址给第三方支付服务器, 当完成订单的时候,支付服务器会通过http的操作通知这个后台处理地址,并发送给服务器后台订单的详细信息;

(5) 服务端响应后台处理地址,验证订单的支付信息,根据自定义订单号,查看是哪个订单完成了,验证订单完整情况。

(6)根据订单给用户发货。服务端验证完订单与支付金额,确认完成支付后,给订单对应的用户发货。包括发装备,发道具等。

(7)可选: 通知客户端,服务端已经为对应的道具等进行了发货。是否必须要通知可以放入到具体的游戏环境中决定。

 

 

游戏服务端的订单管理

 

游戏服务端后台的订单管理是非常重要的,因为财务对账,结算等都需要依靠后台的订单管理。所以我们要对所有的订单以及渠道来做好统计,到时候方便运营查看,方便游戏的数据分析。哪些渠道的流水分别如何等这些运营信息都是非常重要的后台数据。游戏服务器后台如何对订单进行管理呢?这里把主要的一些管理的数据字段供大家参考:

UID: 玩家用户的唯一ID;

订单ID:后台唯一的订单ID;

订单号自定义订单号,这个订单号会发往第三方支付服务器,作为商品的订单号;

状态: 已支付/已取消/待付款;

支付渠道: 支付宝、微信支付;

商品ID订单对应的商品的ID号,发货的时候根据商品ID来发货对应的商品;

渠道ID: 对应的支付订单来自于哪个渠道;

 

 

我们再来看下微信支付的商家后台的订单信息,后台保存的商家订单号就是我们游戏后台生成的唯一订单号。

 

 

游戏服务器后台如何发货

 

  玩家支付成功以后,游戏服务器后台负责发货,所谓的发货就是对玩家关于商品购买的相关数据进行改变,比如购买了10个复活道具,那么在玩家复活道具一栏来添加商品数目。玩家冲了100个元宝,在玩家数据属性元宝字段,来增加100个元宝的数据量。同时每次”发货”动作的时候,做好详细的”发货记录”, 比如xxxx时间给玩家xxxx发货100个元宝, 方便玩家对账。

  后台发货后是否通知游戏客户端,如何通知游戏客户端,这个可以根据具体的应用场景来决定。比如购买元宝成功,客户端有两个地方可以展示购买成功信息与动画特效。第一个是客户端调用第三方支付SDK,支付成功后的回调,可以用来展示购买成功信息与动画展示。第二个展示购买成功信息的时机可以是游戏服务器发货以后,主动通知游戏客户端发货成功,发了哪些”货物”。

  具体采用哪种方式来展示,可以根据业务需求来,有时候只要在第三方支付回调的时候提示购买成功就可以了,游戏后台发货后不一定要通知客户端。