文档章节

TYPESDK手游聚合SDK服务端设计思路与架构之五:流程优化之特殊流程处理

TypeSDK
 TypeSDK
发布于 2017/01/17 12:26
字数 1145
阅读 17
收藏 0

       在之前的几篇文字中,我们分析了从零开始搭建一个渠道聚合SDK服务端所需要应对的几个最重要的一般性流程。按照文中的内容,我们大可以自己最擅长的语言和工具开发出一套已经可以正常工作的服务端,这个服务端可以应付大多数渠道,例如UC,百度,360等等的接入需求,如果你的游戏只需要接入这些渠道,那么现在这个服务端已经可以上线工作了。但是,这个世界还是存在这样一些渠道,它们的工作流程和其他的渠道不太一致。为了保持兼容性和扩展性,我们需要为这些渠道做一些特别的工作。

         为了方便说明,我们还是先举个栗子——VIVO是一家影响力较大的机商渠道,而他们的充值流程和上述几家的不太一样。下面我们先看看VIVO官方文档关于充值流程的说明:

----------------------------------------开始引用VIVO官方文档的分隔线----------------------------------------

         

1、商户APP携带商品信息、价格等信息,请求商户服务器;

2、商户服务器生成商户订单号,并携带商户APP传递的商品、价格信息请求vivo的订单推送接口;

3、验证vivo服务器(订单推送接口)返回的消息(验证签名、价格、订单号等),准确无误之后将订单推送接口返回的信息返回给商户APP;

4、商户APP组织调起vivoSDK的参数(包括订单推送接口返回的transNo和accessKey等),调起支付SDK进行支付;

5、Vivo服务器异步通知商户服务器支付成功,商户服务器验证签名、价格等信息,准确无误后,以HTTP状态码200返回。

 

----------------------------------------引用VIVO官方文档结束的分隔线----------------------------------------

根据对VIVO官方文档的解读,我们很容易发现,和之前的渠道充值流程相比,VIVO增加了一步获取渠道订单号的步骤。这一步骤在其他渠道的充值流程中,是由渠道的客户端lib库包揽的,游戏客户端只需要使用订单相关信息作为参数,调用渠道客户端lib库里的对应方法,和渠道服务端通信并获取到渠道订单号的工作由渠道lib库封装掉了。VIVO可能出于安全性的考虑,要求这一步需要由游戏服务端完成。下图描述了一般流程和VIVO流程的差别,图中黑色箭头即追加流程。(这里省去了SDK客户端和服务端的角色,仅描述原始流程)

图1

了解了VIVO渠道的充值流程,我们自然可以发现,由SDK服务端来实现这一特殊流程步骤,我们只需要将充值流程修改如下:

图2

其余步骤和之前相同,追加的步骤就在途中黑色箭头所示的步骤6~步骤9,可以看到,这一步骤完全由SDK的客户端和服务端独立完成,无需变动游戏的接入逻辑流程。这样,就由我们的SDK服务端接管了这一特殊通信流程逻辑。在无需游戏客户端和服务端做修改的情况下,成功的聚合了VIVO的渠道。

VIVO的这种特殊流程只是当前国内市场各大小渠道各自独立实现的千奇百怪逻辑的其中有代表性的一个范例,为了达到我们的目标,即让游戏开发者“一次接入,到处可用”的目的,我们还有很长的路要走。但是基本的处理思路,都是将这些特殊逻辑尽量使用SDK自己的接口封装起来,对游戏开发者透明。但是,即使我们使用了这样一些手段,仍然还是有我们无法简单封装的渠道逻辑,以应用宝为代表。后文中,我们会以一个专题来介绍如何封装应用宝的逻辑。

这个项目已开源,大家有兴趣可以自己研究或者参照项目编写自己的聚合SDK

项目地址:https://code.csdn.net/typesdk_code

项目地址:https://github.com/typesdk

© 著作权归作者所有

TypeSDK

TypeSDK

粉丝 3
博文 18
码字总数 30285
作品 1
高级程序员
私信 提问
TypeSDK 手游多渠道SDK新解决方案

经历了头两年的爆发之后,手游也和端游、页游一样,进入了一个利润变薄、产业整合的过渡期。除了那些自有渠道的大厂商,如何找到新的用户来源始终是中小CP面临的最大问题,解决办法目前看来只...

TypeSDK
2016/11/10
2
0
AndroidStudio封装SDK的那些事

首先SDK是提供给别人调用的工具。所以常见的SDK都是以jar包,so库,aar包等方式导入APP项目中。然后提供一些公开的API供接入方调用。所以在Androidstudio中如果需要生成jar或者aar,就需要将...

尘封的落叶
2018/06/23
0
0
手游渠道 SDK 统一接入框架--TypeSDK

TypeSDK是一个开源的统一手游渠道SDK接入框架,拥有80个海内外渠道,具备简单接入、快速出包、运营工具、分权限管理、产品数据打点等功能。实施周版本更新制度,确保每个每个使用者直接下载就...

TypeSDK
2016/11/10
1K
0
一个多业务、多状态、多操作的交易链路?闲鱼架构这样演进

前言 双十一刚刚结束,成交额2684亿震惊全世界,每秒订单峰值达54.4W笔。在闲鱼2000万DAU,交易数额同样增长迅速的今天,我们如何保障交易链路的稳定与快速支撑业务?这篇文章从客户端开发的...

阿里云云栖社区
11/15
0
0
一个多业务、多状态、多操作的交易链路?闲鱼架构这样演进 - 知乎

前言 双十一刚刚结束,成交额2684亿震惊全世界,每秒订单峰值达54.4W笔。在闲鱼2000万DAU,交易数额同样增长迅速的今天,我们如何保障交易链路的稳定与快速支撑业务?这篇文章从客户端开发的...

我是程序员
11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue中eventBus的使用

使用场景: 1、兄弟组件的通信,父子组件的通信 2、不同路由的通信 针对兄弟组件的通信,父子组件的通信 新建bus.js文件 import Vue from 'vue' var bus = new Vue() export default bus 在需...

tianyawhl
15分钟前
4
0
C# DBHelper

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Windows.Forms;namesp......

vga
18分钟前
3
0
Spring Boot中@ConditionalOnProperty使用详解

在Spring Boot的自动配置中经常看到@ConditionalOnProperty注解的使用,本篇文章带大家来了解一下该注解的功能。 Spring Boot中的使用 在Spring Boot的源码中,比如涉及到Http编码的自动配置...

程序新视界
19分钟前
6
0
centos7下安装mysql(完整配置)

https://blog.csdn.net/baidu_32872293/article/details/80557668

为何不可1995
21分钟前
3
0
如何从零到一设计一个MQ消息队列

消息队列整体设计思路 主要是设计一个整体的消息被消费的数据流。 这里会涉及到:消息生产Producer、Broker(消息服务端)、消息消费者Consumer。 1.Producer(消息生产者):发送消息到Broker。...

一只会编程的狼
28分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部