qg.login(object)

支持最低平台版本号'1040' (minPlatformVersion>='1040')

登录接口

参数

object

属性 类型 是否必填 说明
success function 接口调用成功的回调函
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(无论成功失败都会执行)

此接口向下兼容,不会影响老版本的使用

success(res) 回调函数

res

属性 类型 说明
data Object 返回数据

data

属性 类型 说明
token string token

示例代码:

qg.login({
  success: function(res) {
    var data = JSON.stringify(res.data)
    console.log(data)
  },
  fail: function(res) {
    // errCode、errMsg
    console.log(JSON.stringify(res))
  }
})


通过游戏大厅 Token 获取用户信息

请求URI https://play.open.oppomobile.com/instant-game-open/userInfo
HTTP Method GET
说明 CP登录小游戏大厅后,小游戏大厅会返回一个Token给CP,CP可以调用此接口获取其用户信息。
请求
Header
Content-Type application/json
参数 类型 是否必需 说明
pkgName 字符串 游戏包名
token 字符串 登录时获得的token
timeStamp 字符串 时间戳,毫秒,取当前时间值
sign 字符串 签名
version 字符串 接口版本号(当前最新版本号为1.0.0)
成功响应
HTTP状态码 200
Header 说明
Content-Type application/json
对象 字段 类型 是否必有 说明
返回码,请求成功的话,返回“200” 版本号为 1.0.0 时返回 errCode
版本号为 1.0.0 之前的返回 errorcode
整型 必有 错误码
请求成功的话,返回“成功” 版本号为 1.0.0 时返回 errMsg
版本号为 1.0.0 之前的返回 errormsg
字符串 必有 错误信息
userInfo userId 字符串 必有 用户id
userName 字符串 必有 用户昵称
avatar 字符串 必有 头像地址
sex 字符串 必有 用户性别,F-女,M-男
location 字符串 必有 用户位置信息
constellation 字符串 必有 用户星座信息
age 字符串 必有 用户年龄


错误码

errCode errMsg
200 成功
900 参数错误
1005 认证失败
500 系统错误


签名生成步骤

第一步,准备签名所需参数(version 字段不参与签名)

pkgName(游戏包名)
appKey(游戏上架时分配的Key)
appSecret(游戏上架时分配的密钥)
token(登录时获得的token)
timeStamp(时间戳,毫秒,取当前时间值)

第二步,将参数按照字典序排序,使用 URL 键值对的格式(即 key1=value1&key2=value2…)拼接成字符串

appKey = 11 & appSecret = 22 & pkgName = com.oppo.testgame &
timeStamp = 1526304757000 & token = ccb5ae1cf111de847db508edb90fa633

第三步,使用 md5 算法对构造的源串进行加密,将得到的字符串所有字符转换为大写

C26228F50092BC9CA251AF41C4F70022

示例代码:

https://play.open.oppomobile.com/instant-game-open/userInfo?pkgName=com.oppo.testgame&timeStamp=1526304757000&token=ccb5ae1cf111de847db508edb90fa633&sign=C26228F50092BC9CA251AF41C4F70022&version=1.0.0


签名参考代码:

package com.oppo.util;

import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;
import org.apache.commons.codec.digest.DigestUtils;

public class Example {
    public static String getSignContent() {

        TreeMap<String, String> treeMap = new TreeMap<>();
        treeMap.put("pkgName", "com.oppo.testgame");
        treeMap.put("token", "ccb5ae1cf111de847db508edb90fa633");
        treeMap.put("timeStamp", "1526304757000");
        treeMap.put("appKey", "11");
        treeMap.put("appSecret", "22");

        Set<String> keys = treeMap.keySet();
        StringBuilder sb = new StringBuilder();
        Iterator<String> iterator = keys.iterator();
        while (iterator.hasNext()) {
            String key = iterator.next();
            sb.append(key).append("=").append(treeMap.get(key)).append("&");
        }

        String signContent = sb.toString().substring(0, sb.length() - 1);

        return signContent;

    }

    public static String sign(String content) {
        String signString = DigestUtils.md5Hex(content).toUpperCase();
        return signString;
    }

    public static void main(String[] args) {
        String signContent = getSignContent();
        String sign = sign(signContent);
        System.out.println(sign);
    }
}
© 2020 OPPO. All rights reserved.

results matching ""

    No results matching ""