SDK登录流程简介
简单介绍登录流程中的8个步骤:
1. 游戏逻辑代码调用SDK提供的登录方法。
将玩家在SDK提供的界面中输入的玩家名称与密码传递给SDK暴露的方法。
2. SDK与SDK服务器进行通信,同时向SDK服务器传递玩家输入的用户名,密码等信息。
除了想SDK服务器传递用户的信息之外,还需要传递APP信息,比如APPID,APPKEY等验证信 息。
这些信息能够标识唯一的应用。
3. SDK服务器会想SDK返回token,token中保存了玩家的验证信息。
例如:
```
{\n \"appId\" : \"10015\",\n \"data\" : \"5v7pPSDaNXw%2B1USItRqmZUnHhYfjjcQRUrnTld7RNJ8%2BF2tVH7bXSqkEXyKHVfieFJ0jK1kZTK0NBFFkMOwiYer5Epc2ePW9di2epvT9dTc0WJWK\\/kY9yRAk7Lw62ua36IaPT%2BYu%2Bg0PHVlcn0VdUw==\",\n \"time\" : \"1461160448.00\"\n}
```
以上就是一个SDK服务器返回的信息。这个信息包含了APPID(APP的唯一标识),data(根据用户名,密码等信息进行的加密数据),time(请求时间)。
这些信息是服务器进行登录验证的重要信息。
4. SDK将SDK服务器返回的数据传递给游戏逻辑。
5. 游戏逻辑将SDK返回的数据传递给游戏服务器。
6. 游戏服务器拿到游戏客户端返回的数据之后,将数据传递给SDK服务器进行验证。
7. SDK服务器对游戏服务器传递过来的数据进行验证后,将验证结果返回给游戏服务器。
8. 游戏服务器拿到SDK服务器返回的登录验证结果(如果成功,SDK服务器则会返回类似channelId和userId的东西,以便对此用户进行唯一标示)。对登录结果的数据进行自定义的拼接,已生成一个唯一ID,在此我们给这个唯一的ID起名叫playerId。然后把这个playerId在服务器进行保存,并将登录的结果和playerId返回给客户端。
至此,一个SDK的登录流程就已经完成了。
以后客户端向服务器请求数据的时候,都是用这个playerId发送给服务器,服务器就能够根据playerId判断是哪个客户端进行的请求。
SDK支付流程简介
简单介绍支付流程中的9个步骤:
在支付模块中,我们并没有像登录模块一样把游戏逻辑与集成SDK放在一起,而是把SDK与SDK服务器放在了一起,因为我并不确定SDK与SDK服务器之间的具体通信步骤。
由于现在只接了Apple的支付,所以支付服务器是Apple服务器。
支付服务器也可以是支付宝,银联等服务器。
1. 当用户在商城中点击支付按钮时,游戏客户端向游戏服务器发送消息,告知服务器购买的是什么商品。
我们的方法时为买个付费点分配一个唯一ID,游戏客户端想服务器发送这个唯一ID,有服务器向客户端返回具体信息。
2. 游戏服务器接收到客户端发送的唯一ID后,由游戏服务器向游戏客户端返回订单相关的信息(比如,订单号、价格、商品、购买时间等信息)。
3. 游戏客户端接收到游戏服务器返回的信息后,通过调用SDK暴露的方法进行支付。
4. 支付服务器对SDK发送的订单信息进行处理。
此后还会回调SDK的方法,弹出支付界面让用户支付,这个过程不是我们所关心的,所以不添加这个过程。
5. 支付服务器对用户输入的账号,密码进行验证,将登录结果返回给SDK。
6. SDK会将支付结果返回给游戏客户端和游戏服务器。
这个过程并不能保证先后顺序
7. 游戏服务器接收到SDK返回的支付结果后,会在后台将相关的道具加到这个用户的数据库中。
8. 游戏客户端此时虽然支付成功,但是没有及时同步道具。
所以此时客户端要每隔一段时间向服务器进行请求(规定请求间隔与最大请求次数)。
直到游戏服务器将购买的道具同步到客户端为止。