最近需要填坑处理原来海外的天坑, 基本上处理掉前期的比较基础部分, 还缺少部分估计也是要消耗不少时间处理.
按照目前的节奏针对现有问题做好分类规划:
抽离单独的支付平台(已完成, 待优化) 构建海外游戏发行平台(已完成, 待优化) 游戏业务SDK中心(已完成, 待优化) 整合后台管理中心(未完成, 更新中) 因为引入现代 composer 依赖, 所以避免很多问题只能从头做起, 开发效率上面也比较快; 但是中间很多问题都没有做细致处理优化, 后续对于已完成的项目要调整优化下.
支付平台 支付平台最好是单独抽离出做个中心服务, 除非万不得已不要把服务放置整合在一起; 这部分带来的影响很大, 因为作为发行中心的流量本身很巨大, 有时候简单的 php 任务进程可能没办法即时响应.
并且支付系统是带有定时回调处理( notify ), 如果整合成单机可能后续回调 CPU 抢占影响到服务器执行效率
目前流量较少所以采用单机负载, 后续看情况已经预留好可能会拆分支付订单模块的准备
因为目前支付平台是不对外开放的, 都是内部发行的支付系统传递的唯一订单号( reference_id ), 对订单号没有做唯一判断处理, 只是因为默认内部使用就就没有什么大问题, 后续需要补充更新这方面限制.
海外发行平台 这部分实际上考核很久, 主要就是在于作为 H5 海外的游戏平台 ‘容器’ 页面功能, 让游戏渲染在本身 iframe 之中, 大部分还是前端设计界面的问题.
特别需要注意的是海外支付的 embedded 方式, 这种方式就是引入第三方支付的JS-SDK, 在创建订单之后需要把会话参数传递给 JS-SDK, 后续 JS-SDK 会在 body 内插个节点渲染支付窗口.
这样虽然看起来效果还是挺不错的, 但是内部有很多问题:
第三方 CDN 不稳定, 引入第三方的 JS-SDK 可能连通性有问题, 直接卡死在等待加载的资源之中 插入节点和 css 样式出现冲突, 有的插入之后的样式名和类名在项目有出现冲突的样式 引发事件绑定异常, 有的SDK库带有动态事件绑定, 可能会直接导致游戏事件混乱 但是不可否认直接在页面内部弹窗唤起的交互效果好很多, 不过最后弹出新窗口去第三方页面支付, 支付完成再跳转会发行对外开发的订单完成窗口去执行 window.