游戏支付系统如何架构与设计
目前游戏开发中主流的支付是微信支付,支付宝支付,苹果支付等。今天来给大家分享一下游戏中支付系统如何架构与设计。
对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。
游戏支付中的主要业务流程
在设计游戏支付的时候,了解游戏中的支付过程与步骤是非常必要的,只有搞懂了这些步骤才能把支付功能做好。我们以常见的网络游戏为例来讲解支付的主要流程,有些单机的游戏支付可能会不一样,具体的根据自己的业务来进行调整与处理。
(1)服务端生成订单信息, 生成唯一的支付订单号,作为支付SDK的自定义订单号,并将订单号返回给客户端;
(2) 客户端调用支付SDK,传入自定义的订单号,拉起支付流程,完成正式的支付;
(5) 服务端响应后台处理地址,验证订单的支付信息,根据自定义订单号,查看是哪个订单完成了,验证订单完整情况。
(6)根据订单给用户发货。服务端验证完订单与支付金额,确认完成支付后,给订单对应的用户发货。包括发装备,发道具等。
(7)可选: 通知客户端,服务端已经为对应的道具等进行了发货。是否必须要通知可以放入到具体的游戏环境中决定。
游戏服务端的订单管理
游戏服务端后台的订单管理是非常重要的,因为财务对账,结算等都需要依靠后台的订单管理。所以我们要对所有的订单以及渠道来做好统计,到时候方便运营查看,方便游戏的数据分析。哪些渠道的流水分别如何等这些运营信息都是非常重要的后台数据。游戏服务器后台如何对订单进行管理呢?这里把主要的一些管理的数据字段供大家参考:
UID: 玩家用户的唯一ID;
订单ID:后台唯一的订单ID号;
订单号: 自定义订单号,这个订单号会发往第三方支付服务器,作为商品的订单号;
状态: 已支付/已取消/待付款;
支付渠道: 支付宝、微信支付;
商品ID:订单对应的商品的ID号,发货的时候根据商品ID来发货对应的商品;
渠道ID: 对应的支付订单来自于哪个渠道;
我们再来看下微信支付的商家后台的订单信息,后台保存的商家订单号就是我们游戏后台生成的唯一订单号。
游戏服务器后台如何发货
玩家支付成功以后,游戏服务器后台负责发货,所谓的发货就是对玩家关于商品购买的相关数据进行改变,比如购买了10个复活道具,那么在玩家复活道具一栏来添加商品数目。玩家冲了100个元宝,在玩家数据属性元宝字段,来增加100个元宝的数据量。同时每次”发货”动作的时候,做好详细的”发货记录”, 比如xxxx时间给玩家xxxx发货100个元宝, 方便玩家对账。
后台发货后是否通知游戏客户端,如何通知游戏客户端,这个可以根据具体的应用场景来决定。比如购买元宝成功,客户端有两个地方可以展示购买成功信息与动画特效。第一个是客户端调用第三方支付SDK,支付成功后的回调,可以用来展示购买成功信息与动画展示。第二个展示购买成功信息的时机可以是游戏服务器发货以后,主动通知游戏客户端发货成功,发了哪些”货物”。
具体采用哪种方式来展示,可以根据业务需求来,有时候只要在第三方支付回调的时候提示购买成功就可以了,游戏后台发货后不一定要通知客户端。
今天的分享就到这里,关注我们,获取更多的游戏开发相关知识。