手游海外市場正由藍海逐漸變?yōu)榧t海中,所以要入場要趁早,接下來跟大家分享一下關(guān)于手游出海服務(wù)器的接入技巧。
一、簡要說明
本文檔的閱讀對象為接入并使用SDK用戶和支付系統(tǒng)的游戲服務(wù)器開發(fā)者。
通信時SDK均采用UTF8編碼。
雙發(fā)通信時,若有sign字段則一定要驗證簽名。
二、接口列表
2.1.驗證用戶信息接口
2.1.1.接口目的
游戲客戶端從SDK登錄回調(diào)中獲取到uid后,為防止用戶篡改客戶端而偽造用戶uid標(biāo)示從而登錄他人賬號,游戲客戶端應(yīng)將此信息傳入給游戲服務(wù)器。游戲服務(wù)器調(diào)用此接口向SDK驗證uid的真實性。若uid通過驗證則允許此用戶登錄,若無法通過驗證應(yīng)拒絕此用戶的登錄授權(quán)。
2.1.2.接口地址
http://gameyt.quicksdk.net/webapi/checkUserInfo
2.1.3.請求方式
GET/POST
2.1.4.參數(shù)列表
2.1.5.返回字段
接口會返回JSON格式字符串,如:
例1{"status":false,"message":"tokenUidError"}
例2{"status":true,"message":""}
2.1.6.請求示例
http://gameyt.quicksdk.net/webapi/checkUserInfo?token= 171 174 188 127 182 163 148 179 166 168 132 179 165 222 169 116 109 166 96 212 152 156 116 121 106 139 170 154 203 134 124 118 108 164 205 126 173 151 172 169 169 140 158 215 138 153 164 136 160 162 154 197 114 212 159 143 126 125 154 179 168 151 135 155 121 148 215 146 181 100 158 219 161 112 106 184 108 189 121 129 120 158 141 186 129 177 169 140 105 136 128 176 205 124 124 166 163 179 213 151 175 124 185 140 155 124 171 160&uid=523
2.2.發(fā)放道具接口
2.2.1.接口目的
玩家在完成充值后,SDK會按照此接口協(xié)議向游戲提供的發(fā)貨地址POST數(shù)據(jù)(簡稱為發(fā)送通知),游戲在收到SDK POST的數(shù)據(jù)后應(yīng)驗證相關(guān)信息并向玩家發(fā)送道具。
游戲應(yīng)按照第三章中的算法驗證簽名數(shù)據(jù),確定請求是否合法。
游戲發(fā)貨的金額應(yīng)當(dāng)以通知中的金額為準(zhǔn)發(fā)放道具。
游戲應(yīng)判斷是否重復(fù)發(fā)放道具,若已發(fā)放則不能再次發(fā)放。
處理成功后返回SUCCESS這7個字母SDK將不再通知,否則SDK將在一段內(nèi)持續(xù)通知
2.2.2.接口地址
發(fā)放道具地址由游戲提供,SDK會主動向此地址發(fā)起POST請求
2.2.3.請求方式
POST
2.2.4.POST參數(shù)列表
注:如果是官網(wǎng)充值方式時,CP可以獲取extrasParams參數(shù)的值來定位到角色信息。這里的值CP可與第三方官網(wǎng)約定一個規(guī)則,讓第三方官網(wǎng)按照規(guī)則傳值。
2.2.5.請求示例
假設(shè)游戲在SDK后臺配置的發(fā)貨地址為http://xxx.com/notify
SDK會在玩家充值后向此地址POST如下參數(shù):
uid=543&username=554230339%40qq.com&cpOrderNo=orderNo_xxx&orderNo=0020170210162721805701
&payTime=2017-02-10+16%3A27%3A55&payAmount=6.00&payStatus=0&payCurrency=RMB&usdAmount
=0.99&extrasParams=&sign=22abf0b204d19316d177baeec6a90fcd
CP接受到數(shù)據(jù)后應(yīng)按第三章約定算法計算簽名。
a)假設(shè)本地計算的簽名與POST中傳遞的簽名一致,則通過
b)若簽名不一致,則返回FAILED,中斷處理。
CP應(yīng)判斷是否已發(fā)送道具。
CP其他判斷邏輯。
處理完成后。
a)希望SDK繼續(xù)通知則返回任何非SUCCESS的字符。
b)處理完畢,訂單結(jié)束則返回SUCCESS,SDK不會再通知。
2.3.Facebook活動禮包發(fā)放
2.3.1.接口目的
玩家在領(lǐng)取禮包之后,SDK會按照此接口協(xié)議向游戲提供的發(fā)貨地址POST數(shù)據(jù),游戲在收到SDK POST的數(shù)據(jù)后應(yīng)驗證相關(guān)信息并向玩家發(fā)送禮包。
游戲應(yīng)按照第三章中的算法驗證簽名數(shù)據(jù),確定請求是否合法。
游戲應(yīng)判斷是否重復(fù)發(fā)放禮包,若已發(fā)放則不能再次發(fā)放。
處理成功后返回SUCCESS這7個字母表示領(lǐng)取成功,否則判定領(lǐng)取失敗。
2.3.2.接口地址
禮包發(fā)放地址由游戲提供,SDK會主動向此地址發(fā)起POST請求
2.3.3.接口地址
POST
2.3.4.POST參數(shù)列表
2.3.5.請求示例
假設(shè)游戲在SDK活動配置的禮包地址為http://xxx.com/notify
SDK會在玩家點擊領(lǐng)取禮包時同步向此地址POST如下參數(shù):
uid=543&giftNo=dwqu18921hud9&sign=22abf0b204d19316d177baeec6a90fcd
CP接受到數(shù)據(jù)后應(yīng)按第三章約定算法計算簽名。
a)假設(shè)本地計算的簽名與POST中傳遞的簽名一致,則通過
b)若簽名不一致,則返回FAILED,中斷處理。
CP應(yīng)判斷是否已發(fā)送禮包。
CP其他判斷邏輯。
處理完成后,返回SUCCESS表示用戶領(lǐng)取成功,否則為失敗。
三、簽名算法描述
通信時,發(fā)起方會在請求中附帶sign字段。
接收方收到消息后將收到的鍵值對POST參數(shù),移除sign后,按首字母升許排序。
將所有鍵值對按key1=val1&key2=val2&key3=val3&格式進行拼接。
在第3步拼接的字符后拼接SDK約定的callbackKey則此時格式為:key1=val1&key2=val2&key3=val3&callbackKey
將第4步處理的字符串進行md5編碼,得到32位md5值。
將第5步獲取的md5值與第1步中發(fā)起方傳遞的sign值進行對比,一致則通過。
代碼片段參見第四章。
四、代碼片段