AppStore与GooglePlay游戏安全支付服务器模式详细流程
2017-08-24 18:14:25 0 举报
AppStore与GooglePlay游戏安全支付服务器模式详细流程
作者其他创作
大纲/内容
SDK渠道方只会验证凭据本身合法性,本地服务器需防止玩家用A商品的已取物品的合法凭据反复验证商品A或者反复验证商品B,对于另一个玩家盗取到了合法凭据与商品ID则类似银行卡与密码被盗取,只能申诉
Player
告诉玩家是否可以开始交易:ReplyRecordTransaction_A2T整个流程出现异常后也是重新发送该消息通知玩家继续流程
服务器在验证过程中出现的部分异常必须要关闭交易记录,部分是直到验证通过为止
如果验证通过先通知逻辑服务器收货:NotifyAcceptGoods_A2L逻辑服务器临时存储玩家的商品在背包中置状态码【Logic服务器已收货】
所有商品基本配置都在客户端本地配置文件中支持热更新,支持异常中断后再次登陆时服务器自动推送继续流程,支持手机更换后流程可继续进行
Logic
DB
交给DB服务器做进一步预交易记录是否存在的验证与该交易订单号是否曾经被任何玩家领取过的验证:RequestVerifyTransaction_A2D 如果有并且订单号未被任何人验证过则将继续流程
交给服务器验证交易:RequestVerifyTransaction_T2A如果成功将商品ID与订单号以及交易凭据transaction receipt发往服务器做二次验证如果是异常中断后服务器再次推送过来的流程则先判断推送过来有没有订单号,如果有则不需要走以上与SDK渠道的流程只需要从SDK渠道方或者本地之前存储的记录中获取该商品的凭据直接发送给AC服务器继续验证,如果没有订单号说明异常中断之前没有交易成功,则直接告诉AC服务器来关闭本次交易
AppStore与GooglePlay游戏安全支付服务器模式详细流程
返回交易transaction信息
将transaction receipt向SDK渠道进行合法验证
AC服务器在配置文件里判断目前交易系统是否已打开,并且该商品是否是配置可被交易如果不可以的非法商品或者DB通道异常均返回不能开始交易如果均OK则转发消息:RequestRecordTransaction_A2D置DB服务器,如果DB服务器判断该商品已存在未完成的记录则不能继续交易有则不能开始交易,否则转存该预交易记录,交易记录永久保存
由AC服务器转发告诉玩家可以开始交易:ReplyRecordTransaction_D2A
获取指定商品价格信息并发起支付请求
防止交易过程中出异常将预交易操作记录本然后发往服务器记录RequestRecordTransaction_T2A:UserID+商品ID+订单号+时间+状态码【进行中】时间、状态码由服务器填充,其中订单号在交易成功时服务器再填充
返回交易结果给玩家NotifyTransactResult_A2T
AC
由AC服务器转发支付结果:NotifyTransactResult_D2A
by 孤心诣qq:2295489928blog:http://www.cnblogs.com/legendstudio
AppStore与GooglePlay
整体拓扑结构见:http://www.cnblogs.com/legendstudio/p/4917617.html
然后通知DB服务器持久化玩家获得的物品然后更新交记录并持久化收货并填充该笔交易记录中的订单号与状态码【DB服务器已存货】:NotifySaveGoods_L2D
返回DB服务器的订单号的是否未被验证过结果:ReplyVerifyTransaction_D2A
往SDK渠道发送该货物已消耗的信息并删除本地交易记录GooglePlay需要玩家主动发送消耗,AppStore则不需要该操作
返回交易凭据的验证结果
0 条评论
下一页