后端对接
获取用户信息回调
用户进入游戏以及刷新用户钱包余额时调用
请求格式
请求方式: POST
编码格式: Content-Type: application/json;charset=UTF-8
| 参数 | 类型 | 说明 |
|---|---|---|
| appId | int | 商户 App ID |
| gameId | int | Combo Game 游戏 ID |
| userId | string | 用户 ID |
| token | string | App 加载游戏时携带的商户提供的用户鉴权 token |
| ts | long | 当前时间戳毫秒 |
| sign | string | MD5 小写字符串 |
{
"gameId": 1001,
"userId": "1234556",
"token": "xxxx",
"ts": 1750151429551,
"sign": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}签名算法
sign = MD5(appId + gameId + token + ts + userId + appKey)
示例代码
public static String sign(int appId, int gameId, String token, long ts, String userId, String appKey) {
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
String sourceString = String.format(Locale.CHINA, "%d%d%s%d%s%s", appId, gameId, token, ts, userId, appKey);
return bytesToHex(digest.digest(sourceString.getBytes(StandardCharsets.UTF_8)));
} catch (Exception e) {
System.out.println("加密失败");
}
return null;
}
private static final byte[] HEX_ARRAY = "0123456789abcdef".getBytes(StandardCharsets.US_ASCII);
public static String bytesToHex(byte[] bytes) {
byte[] hexChars = new byte[bytes.length * 2];
for (int j = 0; j < bytes.length; j++) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = HEX_ARRAY[v >>> 4];
hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
}
return new String(hexChars, StandardCharsets.UTF_8);
}h := md5.New()
h.Write([]byte(fmt.Sprintf("%d%d%s%d%s%s", appId, gameId, token, ts, userId, appKey)))
sign := hex.EncodeToString(h.Sum(nil))返回格式
编码格式: Content-Type: application/json;charset=UTF-8
| 字段 | 类型 | 说明 |
|---|---|---|
| code | int | 错误码,详见错误码页 |
| msg | string | 错误信息,若无错误可以传空字符串或者 OK |
| data | object | 数据体 |
| data.userId | string | 用户 ID |
| data.nickname | string | 用户昵称 |
| data.avatar | string | 用户头像 URL |
| data.balance | long | 用户钱包余额 |
{
"code": 0,
"msg": "OK",
"data": {
"userId": "123456",
"nickname": "xxx",
"avatar": "xxx",
"balance": 88888888
}
}