TYPESDK手游聚合SDK服務(wù)端設(shè)計(jì)思路與架構(gòu)之五:流程優(yōu)化之特殊流程處理

2018-01-17 14:18 更新

在之前的幾篇文字中,我們分析了從零開始搭建一個(gè)渠道聚合SDK服務(wù)端所需要應(yīng)對(duì)的幾個(gè)最重要的一般性流程。按照文中的內(nèi)容,我們大可以自己最擅長(zhǎng)的語言和工具開發(fā)出一套已經(jīng)可以正常工作的服務(wù)端,這個(gè)服務(wù)端可以應(yīng)付大多數(shù)渠道,例如UC,百度,360等等的接入需求,如果你的游戲只需要接入這些渠道,那么現(xiàn)在這個(gè)服務(wù)端已經(jīng)可以上線工作了。但是,這個(gè)世界還是存在這樣一些渠道,它們的工作流程和其他的渠道不太一致。為了保持兼容性和擴(kuò)展性,我們需要為這些渠道做一些特別的工作。

         為了方便說明,我們還是先舉個(gè)栗子——VIVO是一家影響力較大的機(jī)商渠道,而他們的充值流程和上述幾家的不太一樣。下面我們先看看VIVO官方文檔關(guān)于充值流程的說明:

----------------------------------------開始引用VIVO官方文檔的分隔線----------------------------------------

         

1、商戶APP攜帶商品信息、價(jià)格等信息,請(qǐng)求商戶服務(wù)器;

2、商戶服務(wù)器生成商戶訂單號(hào),并攜帶商戶APP傳遞的商品、價(jià)格信息請(qǐng)求vivo的訂單推送接口;

3、驗(yàn)證vivo服務(wù)器(訂單推送接口)返回的消息(驗(yàn)證簽名、價(jià)格、訂單號(hào)等),準(zhǔn)確無誤之后將訂單推送接口返回的信息返回給商戶APP;

4、商戶APP組織調(diào)起vivoSDK的參數(shù)(包括訂單推送接口返回的transNo和accessKey等),調(diào)起支付SDK進(jìn)行支付;

5、Vivo服務(wù)器異步通知商戶服務(wù)器支付成功,商戶服務(wù)器驗(yàn)證簽名、價(jià)格等信息,準(zhǔn)確無誤后,以HTTP狀態(tài)碼200返回。

 

----------------------------------------引用VIVO官方文檔結(jié)束的分隔線----------------------------------------

根據(jù)對(duì)VIVO官方文檔的解讀,我們很容易發(fā)現(xiàn),和之前的渠道充值流程相比,VIVO增加了一步獲取渠道訂單號(hào)的步驟。這一步驟在其他渠道的充值流程中,是由渠道的客戶端lib庫包攬的,游戲客戶端只需要使用訂單相關(guān)信息作為參數(shù),調(diào)用渠道客戶端lib庫里的對(duì)應(yīng)方法,和渠道服務(wù)端通信并獲取到渠道訂單號(hào)的工作由渠道lib庫封裝掉了。VIVO可能出于安全性的考慮,要求這一步需要由游戲服務(wù)端完成。下圖描述了一般流程和VIVO流程的差別,圖中黑色箭頭即追加流程。(這里省去了SDK客戶端和服務(wù)端的角色,僅描述原始流程)

圖1

了解了VIVO渠道的充值流程,我們自然可以發(fā)現(xiàn),由SDK服務(wù)端來實(shí)現(xiàn)這一特殊流程步驟,我們只需要將充值流程修改如下:

圖2

其余步驟和之前相同,追加的步驟就在途中黑色箭頭所示的步驟6~步驟9,可以看到,這一步驟完全由SDK的客戶端和服務(wù)端獨(dú)立完成,無需變動(dòng)游戲的接入邏輯流程。這樣,就由我們的SDK服務(wù)端接管了這一特殊通信流程邏輯。在無需游戲客戶端和服務(wù)端做修改的情況下,成功的聚合了VIVO的渠道。

VIVO的這種特殊流程只是當(dāng)前國內(nèi)市場(chǎng)各大小渠道各自獨(dú)立實(shí)現(xiàn)的千奇百怪邏輯的其中有代表性的一個(gè)范例,為了達(dá)到我們的目標(biāo),即讓游戲開發(fā)者“一次接入,到處可用”的目的,我們還有很長(zhǎng)的路要走。但是基本的處理思路,都是將這些特殊邏輯盡量使用SDK自己的接口封裝起來,對(duì)游戲開發(fā)者透明。但是,即使我們使用了這樣一些手段,仍然還是有我們無法簡(jiǎn)單封裝的渠道邏輯,以應(yīng)用寶為代表。后文中,我們會(huì)以一個(gè)專題來介紹如何封裝應(yīng)用寶的邏輯。

這個(gè)項(xiàng)目已開源,大家有興趣可以自己研究或者參照項(xiàng)目編寫自己的聚合SDK

項(xiàng)目地址:https://code.csdn.net/typesdk_code

項(xiàng)目地址:https://github.com/typesdk

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)