> 注:此文档为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配置参数会提供*