> 注:此文檔為EUSDK-H5服務端接口的接入說明
*****
> ## ***通用規則***
> - 協議需求:HTTPS 協議, POST 方式請求
> - 簽名規則:*按照參數名首字母升序排列,最后拼接 key=appSecret,**sign和字段值為空的不參與簽名**,最后對整個字符串進行**MD5 (32 位小寫)加密**,具體請參考簽名樣例*
*****
*****
*****
*****
*****
## **1.登錄成功,服務端登錄校驗接口(必接)**
> 接口描述:EUSDK-H5 服務端登錄校驗接口;
> 使用場景:用戶登錄成功之后,游戲方服務端進行登錄校驗,調用此接口進行驗證;
### **1.1 請求接口URL**
```
https://sdk-server.eusdk.com/h5/session/verifyUser
```
### **1.2 請求參數**
```
參數類型 / 參數名稱 / 是否必傳 / 描述
---------------------------------
Integer / userId / 必傳 / 用戶登錄之后,EUSDK-H5 返回的 userId
String / token / 必傳 / 用戶登錄之后,EUSDK-H5 返回的 token
String / sign / 必傳 / 簽名:規則如下
```
> **簽名規則:請參考文檔上方通用規則**
>**簽名樣例:**
MD5(token=abc&userId=100&key=appSecret)
### **1.3 返回參數**
```
參數類型 / 參數名稱 / 描述
---------------------------------
String / code / 狀態碼(code="2000" 表示成功)
JSONString / data / 返回數據,JSON 格式的字符串
String / message / 消息碼(message="成功" 表示成功)
data字段數據結構:
參數類型 / 參數名稱 / 描述
---------------------------------
Integer / userId / EUSDK-H5 生成的用戶 Id
String / userName / EUSDK-H5 生成的用戶名稱
Integer / appId / 游戲Id
Integer / channelId / 渠道號
返回樣例:
{
"code": "2000",
"data": {
"userId":1,
"userName":"test",
"appId":100,
"channelId":101
}
}
```
*****
*****
*****
*****
*****
## **2. 支付回調接口(必接)**
### **2.1 接口URL:客戶端在調用支付接口的時候,通過 notifyUrl 字段傳入**
> 接口描述:EUSDK-H5 服務端支付通知接口 ;
> 使用場景:用戶支付成功之后,通知游戲方給玩家發貨;
### **2.2 請求參數**
```
參數類型 / 參數名稱 / 是否必傳 / 描述
---------------------------------
String / productID / 必傳 / 商品ID
Long / orderID / 必傳 / 訂單號
Integer / userID / 必傳 / 用戶ID
Integer / channelID / 必傳 / 渠道ID
Integer / gameID / 必傳 / 游戲ID
String / serverID / 必傳 / 游戲服務器
Integer / money / 必傳 / 充值金額,單位(分)
String / currency / 必傳 / 貨幣類型,默認 RMB
String / extension / 必傳 / 透傳參數,原樣返回
String / roleID / 必傳 / 角色 ID:該字段不參與簽名
String / signType / 必傳 / 簽名類型:MD5,該字段不參與簽名
String / sign / 必傳 / 簽名:該字段不參與簽名,規則參考下面簽名說明
```
### **2.3 接口返回**
游戲服務器處理成功,直接返回一個"SUCCESS"字符串到 EUSDK 即可。失敗返回一個"FAIL"字符串。(***返回字符串需大寫***)
> **簽名說明:**
> 支付通知接口,對收到的數據進行 urldecode(這一步如果框架自動會處理,就不需要 單獨再處理),然后根據參數首字母升序拼接,最后拼接 appSecret,再對整串字符串 進行 MD5(32 位小寫)。
> **簽名樣例:**
> (appSecret=deadae1343deasdwwadfsssa332345da): MD5(channelID=101¤cy=RMB&extension=10000&gameID=123&money=6&orderID =15611112232&productID=1&serverID=1&userID=123456&deadae1343deasdwwadfsssa332345da
*****
*****
*****
*****
*****
## **3.玩家氪金信息明細上報接口(非必接)**
> *接口描述:EUSDK服務端氪金信息接收接口;*
> *使用場景:1、游戲內的代幣消費時調用; 2、游戲內充值代幣時調用。*
### **3.1 請求接口URL**
```
https://sdk-server.eusdk.com/game/transactionInfo
```
### **3.2 請求參數**
```
參數類型 / 參數名稱 / 是否必傳 / 描述
---------------------------------
Integer / userId / 必傳 / 用戶Id
Integer / appId / 必傳 / 游戲Id
String / roleId / 必傳 / 角色Id
String / roleName / 必傳 / 角色名稱
Integer / roleLevel / 必傳 / 角色等級
String / serverId / 必傳 / 區服Id
Integer / transactionGameCoin / 必傳 / 本次交易氪金數量 (本次新增總數或本次消費總額)
Integer / rmbGameCoin / 必傳 / 氪金數量(人民幣購買,默認傳0)
Integer / givenGameCoin / 必傳 / 氪金數量(贈送等來源,默認傳0)
Integer / residueRmbGameCoin / 必傳 / 氪金余額(人民幣購買,默認傳0)
Integer / residueGivenGameCoin / 必傳 / 氪金余額(贈送等來源,默認傳0)
String / productId / 非必傳 / 商品ID,消費時顯示
String / productName / 非必傳 / 商品名稱(道具或服務),消費時顯示
Integer / transactionType / 必傳 / 氪金交易類型,【1:氪金新增、2:氪金消費】
Integer / transactionTime / 必傳 / 氪金交易時間
String / sign / 必傳 / 簽名【該字段不參與簽名,規則參考下面簽名說明】
```
> **簽名規則:請參考文檔上方通用規則**
> **簽名樣例:**
*MD5(appId=1&givenGameCoin=0&productId=1&productName=元寶&residueGivenGameCoin=0&residueRmbGameCoin=100&rmbGameCoin=100&roleId=1001&roleLevel=10&roleName=一葉&serverId=1&transactionGameCoin=100&transactionTime=1575961976&transactionType=2&userId=2019&key=appSecret)*
*注:appId、appSecret配置參數會提供!*
### **3.3 返回參數**
```
參數類型 / 參數名稱 / 描述
---------------------------------
Integer / state / 狀態碼(state=1 表示成功)
JSONString / data / 返回數據,JSON 格式的字符串
String / msg / 提示信息
返回結果樣例,EUSDK 這邊"state"=1 表示成功
{
"state": 1,
"data": true
}
```
*****
*****
*****
*****
*****
## **4.玩家綁金信息明細上報接口(非必接)**
> *接口描述:EUSDK服務端綁金信息接收接口;*
> *使用場景:
> 1、游戲內做任務賺取代幣時調用;
> 2、游戲內消費代幣時調用。*
### **4.1 請求接口URL**
```
https://sdk-server.eusdk.com/game/bindCoin
```
### **4.2 請求參數**
```
參數類型 / 參數名稱 / 是否必傳 / 描述
---------------------------------
Integer / userId / 必傳 / 用戶Id
Integer / appId / 必傳 / 游戲Id
String / roleId / 必傳 / 角色Id
String / roleName / 必傳 / 角色名稱
Integer / roleLevel / 必傳 / 角色等級
String / serverId / 必傳 / 區服Id
Integer / gameBindCoin / 必傳 / 本次綁定氪金數量 (本次新增總數或本次消費總數)
Integer / residueGameBindCoin / 必傳 / 綁定氪金余額(默認傳0)
String / productId / 非必傳 / 商品ID,綁金消費時顯示
String / productName / 非必傳 / 商品名稱(道具或服務),綁金消費時顯示
Integer / gameBindCoinType / 必傳 / 綁定氪金類型,【1:綁金新增、2:綁金消費】
String / sign / 必傳 / 簽名:該字段不參與簽名,規則參考下面簽名說明
```
> **簽名規則:請參考文檔上方通用規則**
> **簽名樣例:**
*MD5(appId=1&gameBindCoin=100&gameBindCoinType=2&productId=1&productName=元寶&residueGameBindCoin=0&roleId=2019&roleLevel=10&roleName=一葉&serverId=1&userId=2020&key=appSecret)*
*注:appId、appSecret配置參數會提供!*
### **4.3 返回參數**
```
參數類型 / 參數名稱 / 描述
---------------------------------
Integer / state / 狀態碼(state=1 表示成功)
JSONString / data / 返回數據,JSON 格式的字符串
String / msg / 提示信息
返回結果樣例,EUSDK 這邊"state"=1 表示成功
{
"state": 1,
"data": true
}
```
*****
*****
*****
*****
*****
## **5.關卡數據上報接口(非必接)**
> *接口描述:
> 1、關卡事件一般分為三種情況:關卡開啟、關卡成功、關卡失敗。
> 2、當玩家在游戲內完成上述三種情況時,都需要上報相關數據;*
> *使用場景:
> 1、游戲中有各類關卡
> 【比如:單人副本、組隊副本、團隊副本、BOSS副本等等,然后又細分為副本關卡層級】
> 2、當玩家觸發關卡開啟,或在關卡中成功/失敗時,需要將相關事件上報;*
### **5.1 請求接口URL**
```
https://sdk-server.eusdk.com/game/recordCheckpoint
```
### **5.2 請求參數**
```
參數類型 / 參數名稱 / 是否必傳/ 描述
---------------------------------
Integer / checkpointStatus / 必傳 / 事件類型,1-關卡開啟;2-關卡成功;3-關卡失敗
String / checkpointType / 必傳 / 關卡類型 (如果為空,默認值傳“未知”)
String / checkpointId / 必傳 / 關卡id
String / checkpointName / 必傳 / 關卡名稱
Integer / appId / 必傳 / 游戲id
Integer / userId / 必傳 / 用戶id
String / serverId / 必傳 /區服id
String / roleId / 必傳 / 角色id
String / roleName / 必傳 / 角色名稱
String / roleLevel / 必傳 / 角色等級
String / sign / 必傳 / 簽名(簽名規則參考下面說明)
```
### **5.3 返回參數**
```
參數類型 / 參數名稱 / 描述
---------------------------------
String / state / 狀態碼(state='1'表示成功)
String / msg / 狀態碼對應的信息描述
JSONString / data / 返回結果(此接口data返回boolean類型)
返回結果樣例(融合服務這邊"state"="1"表示成功):
{
"state": "1",
"data": true
}
```
> **簽名規則:請參考文檔上方通用規則**
> **簽名樣例:**
*MD5(appId=6&checkpointId=123456&checkpointName=開啟&checkpointStatus=1&checkpointType=checkpoint_start&roleId=1573790161&roleLevel=10&roleName=server_10&serverId=64&userId=466612&key=c74a08098dfc438fb527f4a79544c297)*
*注:appId、appSecret配置參數會提供!*
*****
*****
*****
*****
*****
## **6.任務數據上報接口(非必接)**
> *接口描述:
> 1、任務事件一般分為三種情況:任務開啟、任務成功、任務失敗。
> 2、當玩家在游戲內完成上述三種情況時,都需要上報相關數據;*
> *使用場景:
> 1、游戲中有各類任務,比如:主線任務、支線任務、劇情任務等等。
> 2、當玩家觸發任務開啟,或在任務完成/失敗的時候,需要將相關事件上報;*
### **6.1 請求接口URL**
```
https://sdk-server.eusdk.com/game/recordGameTask
```
### **6.2 請求參數**
```
參數類型 / 參數名稱 / 是否必傳/ 描述
---------------------------------
Integer / taskStatus / 必傳 / 事件類型,1-任務開啟;2-任務成功;3-任務失敗
String / taskType / 必傳 / 任務類型 (如果為空,默認值傳“未知”)
String / taskId / 必傳 / 任務id
String / taskName / 必傳 / 任務名稱
Integer / appId / 必傳 / 游戲id
Integer / userId / 必傳 / 用戶id
String / serverId / 必傳 / 區服id
String / roleId / 必傳 / 角色id
String / roleName / 必傳 / 角色名稱
String / roleLevel / 必傳 / 角色等級
String / sign / 必傳 / 簽名(簽名規則參考下面說明)
```
### **6.3 返回參數**
```
參數類型 / 參數名稱 / 描述
---------------------------------
String / state / 狀態碼(state='1'表示成功)
String / msg / 狀態碼對應的信息描述
JSONString / data / 返回結果(此接口data返回boolean類型)
返回結果樣例(融合服務這邊"state"="1"表示成功):
{
"state": "1",
"data": true
}
```
> **簽名規則:請參考文檔上方通用規則**
> **簽名樣例:**
*MD5(appId=6&roleId=1573790161&roleLevel=10&roleName=server_10&serverId=64&taskId=123456&taskName=開啟&taskStatus=2&taskType=checkpoint_start&userId=466612&key=c74a08098dfc438fb527f4a79544c297)*
*注:appId、appSecret配置參數會提供*