SDK登錄流程簡(jiǎn)介
簡(jiǎn)單介紹登錄流程中的8個(gè)步驟:
1. 游戲邏輯代碼調(diào)用SDK提供的登錄方法场仲。
? ? 將玩家在SDK提供的界面中輸入的玩家名稱與密碼傳遞給SDK暴露的方法抡柿。
2. SDK與SDK服務(wù)器進(jìn)行通信,同時(shí)向SDK服務(wù)器傳遞玩家輸入的用戶名嘲驾,密碼等信息。
? ? 除了想SDK服務(wù)器傳遞用戶的信息之外,還需要傳遞APP信息畅卓,比如APPID,APPKEY等驗(yàn)證信 ? 息蟋恬。
? ? 這些信息能夠標(biāo)識(shí)唯一的應(yīng)用髓介。
3. SDK服務(wù)器會(huì)想SDK返回token,token中保存了玩家的驗(yàn)證信息筋现。
? ? 例如:
```
{\n??\"appId\" : \"10015\",\n??\"data\" : \"5v7pPSDaNXw%2B1USItRqmZUnHhYfjjcQRUrnTld7RNJ8%2BF2tVH7bXSqkEXyKHVfieFJ0jK1kZTK0NBFFkMOwiYer5Epc2ePW9di2epvT9dTc0WJWK\\/kY9yRAk7Lw62ua36IaPT%2BYu%2Bg0PHVlcn0VdUw==\",\n??\"time\" : \"1461160448.00\"\n}
```
以上就是一個(gè)SDK服務(wù)器返回的信息唐础。這個(gè)信息包含了APPID(APP的唯一標(biāo)識(shí)),data(根據(jù)用戶名矾飞,密碼等信息進(jìn)行的加密數(shù)據(jù))一膨,time(請(qǐng)求時(shí)間)。
這些信息是服務(wù)器進(jìn)行登錄驗(yàn)證的重要信息洒沦。
4. SDK將SDK服務(wù)器返回的數(shù)據(jù)傳遞給游戲邏輯豹绪。
5. 游戲邏輯將SDK返回的數(shù)據(jù)傳遞給游戲服務(wù)器。
6. 游戲服務(wù)器拿到游戲客戶端返回的數(shù)據(jù)之后申眼,將數(shù)據(jù)傳遞給SDK服務(wù)器進(jìn)行驗(yàn)證瞒津。
7. SDK服務(wù)器對(duì)游戲服務(wù)器傳遞過來(lái)的數(shù)據(jù)進(jìn)行驗(yàn)證后,將驗(yàn)證結(jié)果返回給游戲服務(wù)器括尸。
8. 游戲服務(wù)器拿到SDK服務(wù)器返回的登錄驗(yàn)證結(jié)果(如果成功巷蚪,SDK服務(wù)器則會(huì)返回類似channelId和userId的東西,以便對(duì)此用戶進(jìn)行唯一標(biāo)示)濒翻。對(duì)登錄結(jié)果的數(shù)據(jù)進(jìn)行自定義的拼接屁柏,已生成一個(gè)唯一ID,在此我們給這個(gè)唯一的ID起名叫playerId有送。然后把這個(gè)playerId在服務(wù)器進(jìn)行保存淌喻,并將登錄的結(jié)果和playerId返回給客戶端。
至此雀摘,一個(gè)SDK的登錄流程就已經(jīng)完成了裸删。
以后客戶端向服務(wù)器請(qǐng)求數(shù)據(jù)的時(shí)候,都是用這個(gè)playerId發(fā)送給服務(wù)器阵赠,服務(wù)器就能夠根據(jù)playerId判斷是哪個(gè)客戶端進(jìn)行的請(qǐng)求涯塔。
SDK支付流程簡(jiǎn)介
簡(jiǎn)單介紹支付流程中的9個(gè)步驟:
在支付模塊中肌稻,我們并沒有像登錄模塊一樣把游戲邏輯與集成SDK放在一起,而是把SDK與SDK服務(wù)器放在了一起伤塌,因?yàn)槲也⒉淮_定SDK與SDK服務(wù)器之間的具體通信步驟灯萍。
由于現(xiàn)在只接了Apple的支付,所以支付服務(wù)器是Apple服務(wù)器每聪。
支付服務(wù)器也可以是支付寶旦棉,銀聯(lián)等服務(wù)器。
1. 當(dāng)用戶在商城中點(diǎn)擊支付按鈕時(shí)药薯,游戲客戶端向游戲服務(wù)器發(fā)送消息绑洛,告知服務(wù)器購(gòu)買的是什么商品。
我們的方法時(shí)為買個(gè)付費(fèi)點(diǎn)分配一個(gè)唯一ID童本,游戲客戶端想服務(wù)器發(fā)送這個(gè)唯一ID真屯,有服務(wù)器向客戶端返回具體信息。
2. 游戲服務(wù)器接收到客戶端發(fā)送的唯一ID后穷娱,由游戲服務(wù)器向游戲客戶端返回訂單相關(guān)的信息(比如绑蔫,訂單號(hào)、價(jià)格泵额、商品配深、購(gòu)買時(shí)間等信息)。
3. 游戲客戶端接收到游戲服務(wù)器返回的信息后嫁盲,通過調(diào)用SDK暴露的方法進(jìn)行支付篓叶。
4. 支付服務(wù)器對(duì)SDK發(fā)送的訂單信息進(jìn)行處理。
此后還會(huì)回調(diào)SDK的方法羞秤,彈出支付界面讓用戶支付缸托,這個(gè)過程不是我們所關(guān)心的,所以不添加這個(gè)過程瘾蛋。
5. 支付服務(wù)器對(duì)用戶輸入的賬號(hào)俐镐,密碼進(jìn)行驗(yàn)證,將登錄結(jié)果返回給SDK瘦黑。
6. SDK會(huì)將支付結(jié)果返回給游戲客戶端和游戲服務(wù)器京革。
這個(gè)過程并不能保證先后順序
7. 游戲服務(wù)器接收到SDK返回的支付結(jié)果后,會(huì)在后臺(tái)將相關(guān)的道具加到這個(gè)用戶的數(shù)據(jù)庫(kù)中幸斥。
8. 游戲客戶端此時(shí)雖然支付成功,但是沒有及時(shí)同步道具咬扇。
所以此時(shí)客戶端要每隔一段時(shí)間向服務(wù)器進(jìn)行請(qǐng)求(規(guī)定請(qǐng)求間隔與最大請(qǐng)求次數(shù))甲葬。
直到游戲服務(wù)器將購(gòu)買的道具同步到客戶端為止。