U8SDK——和自己的服务器端对接

作者: 分类: U8SDK 发布时间: 2015-10-09 20:46 62条评论

很多使用U8SDK的同学,公司里面不少都有自己的统一SDK登录认证和支付处理中心。 这些同学问的比较多的是, 怎么将U8SDK客户端打包框架和自己公司的服务器进行适配对接。
适配过程还算比较简单, 因为U8SDK这套框架, 客户端和服务器端的耦合很低,适配工作量完全可控。

这篇文章就给需要的同学简单介绍下:

U8SDK客户端整套框架中需要和服务器对接的地方,主要有两个部分
 
1、登录认证
 
一般渠道SDK登录的时候,都需要进行二次认证。这个过程是
 
SDK客户端获取到SDK返回的登录结果,往往是session或者token之类的,用于二次认证。但是各个渠道SDK这里返回的参数可能不一样。
 
比如UC登录认证需要客户端SDK登录成功返回的sid参数 
当乐登录认证需要客户端SDK登录成功返回的mid和token参数 
….
 
所以,和服务器的对接,我们需要定义一个渠道认证的扩展参数,不同的渠道SDK,这个扩展参数不一样。(可以看各个渠道SDK接入工程里面SDK登录成功的回调的地方)
 
比如服务器端,用于登录认证的接口可以定义如下格式(http://some-addr.com/auth):
 
appID:服务器分配给当前游戏的appID,每个游戏唯一 
channel:当前渠道SDK的渠道号。比如UC的渠道号为11,当乐的是12,这个来区分,当前要去UC还是当乐做二次认证 
extension:就是上面说的扩展参数。根据每个渠道二次认证的需要,参数个数,类型等可能都不一样。
 
比如uc的extension是 {“sid”:”wserswdfsdfdsd”} 
当乐的extension是 {“mid”:”w454350″, “token”:”sdfsfdsfgsdffgdsf”}
 
服务器收到登录认证协议的时候,根据channel知道当前是哪个渠道。然后再去当前渠道里面,解析extension
 
目前u8sdk和u8server登录认证定义的协议参数如下(http://192.168.18.9:8080/getToken (POST格式)):

返回的结果(JSON格式):

 
这 里的请求参数,各个渠道SDK中需要和服务器对接的仅仅就是extension的格式需要和服务器对接一下。比如uc的exension是 {“sid”:”wserswdfsdfdsd”},那么,服务器解析的时候,也需要按照这个来解析。(各个渠道的extension格式见下面表格)
 
返回的数据中的extension格式,如果渠道SDK中,需要使用,那么也需要按照服务器端定义的格式来解析。
 
2、获取订单号
 
u8sdk统一框架中,在打开支付界面之前,会去u8server获取一个订单号。这个订单号是u8server本地生成的。如果你用的不是u8server,是自己的服务器,那么流程希望也按照这个来进行。因为这个流程也是目前比较合适的流程。
 
【获取订单号协议,请放在游戏层中完成。】
 
首先,几乎所有的渠道SDK支付,都采用异步的方式,来进行支付成功或者失败的通知。所以,客户端在进行SDK支付的时候,SDK都会提供一个扩展字段,这个扩展字段在异步通知游戏服务器的时候,原封不动地包含在参数中。
 
那么,客户端进行SDK支付之前,先去u8server获取一个订单号,u8server这个时候在数据库订单表中创建一条订单记录,订单状态为等待支付。 
客户端拿到订单号之后,将订单号放在SDK支付接口提供的扩展字段中
 
这样,SDK支付异步通知u8server的时候,u8server根据该扩展字段,取出订单号,根据订单号从订单表中查出订单信息,然后进行逻辑处理。
 
其次,对于少数SDK,比如vivo,支付之前,要游戏服务器去SDK服务器下单,然后他们SDK服务器返回一个订单号等信息,游戏服务器拿到这个订单号之后,需要把这个返回给客户端,客户端在调用SDK支付接口的时候,必须要用到该参数。
 
那么对于这种情况,获取订单号这个流程,也起到了作用。
 
客户端去u8server获取订单号,u8server这个时候再去SDK服务器下单,然后将返回的结果返回给客户端。但是,有些渠道这里返回的可能不止订单号,还有其他数据,客户端也需要。
 
所以,我们获取订单号的协议如下(http://192.168.18.9:8080/getOrderID (POST格式)): 

签名函数:
 

 

 
返回数据(JSON格式):

这里,客户端和服务器端的对接,客户端调用SDK支付接口的时候,要对orderID和extension进行解析即可。

本文出自 U8SDK技术博客,转载时请注明出处及相应链接。

本文永久链接: http://www.uustory.com/?p=1914

评论功能已经关闭,请加入U8SDK技术群进行讨论和咨询:207609068
Ɣ回顶部
U8SDK技术群 x
技术同学请加入
点击加入