GTaSDK 主要为游戏发行海外地区(港澳台除外)提供登录功能。
接口描述:获取用户账号是否绑定的信息以及 token 值。
注意:选择是否需要遮罩,在 true 时,调用该接口在界面上会有 loading 框,直到获取成功或失败,loading 框才会消失。
接口调用:
Map<String, Object> params = new HashMap<String, Object>();
params.put("isMask", true); // accountInfo 参数 isMask:true/false 是否需要 loading 框
SuperSDK.invoke("platform", "accountInfoJson", params);
接口回调:
// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if ("platform".equals(moduleName)
&& "accountInfoJson".equals(funcName)) {
// accountInfo 回调
accountInfo(result);
}
private void accountInfo(String result) {
JSONObject json = JsonUtils.parseObject(result);
int code = json.getIntValue("code");
if(code != 1) {
String msg = json.getString("msg");
Log.e("result", "调用失败了: "+msg);
return;
}
// 只有 code 为 1时 data 才有值
JSONObject data = json.getJSONObject("data");// 1 是已绑定,其他否
String gta = data.getString("gta");// 是否绑定了 gta 账号
String facebook = data.getString("facebook");// 是否绑定了 facebook 账号
String twitter = data.getString("twitter");// 是否绑定了 twitter 账号
String google = data.getString("google");// 是否绑定了 google 账号
String gamecenter = data.getString("gamecenter");// 是否绑定了 gamecenter 账号
String token = data.getString("token");// 当前登录的 token 值
}
日志打印:
{
code : 1/0/xxx, // 1 获取成功,0 获取失败,xxx 其他错误码 没有可忽略
msg : xxx,
data : {// 1 是已绑定,其他否
"gta" : 1,// 是否绑定了 gta 账号
"facebook" : 1,// 是否绑定了
"twitter" : 1,// 是否绑定了 twitter 账号
"google" : 1,// 是否绑定了 google 账号
"gamecenter" : 1,// 是否绑定了 gamecenter 账号
"token" : xxx// 当前登录的 token 值
}
}
接口描述:根据 bindType 的对应的 value 值来跳转不同的绑定界面,绑定类型有 GTA、Facebook、Google。
接口调用:
Map<String, Object> params = new HashMap<String, Object>();
params.put("bindType", "GTA"); // showAccountLink 参数 bindType 取值为 GTA、Facebook、Google
SuperSDK.invoke("platform", "showAccountLinkJson", params);
接口回调:
// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if ("platform".equals(moduleName)
&& "showAccountLinkJson".equals(funcName)) {
// showAccountLink 回调
showAccountLink(result);
}
private void showAccountLink(String result) {
JSONObject json = JsonUtils.parseObject(result);
int code = json.getIntValue("code");
if(code != 1) {
String msg = json.getString("msg");
Log.e("result", "调用失败了: "+msg);
return;
}
// 只有 code 为 1 时 data 才有值
String data = json.getString("data"); //GTA 、 Facebook 、 Twitter 、Google 绑定账号的类型
Log.e("result", "data: "+data);
}
日志打印:
{
code : 1/0/xxx,// 1 成功,0 失败,xxx 其他错误, code 没有可忽略
msg : xxx,
data : GTA 、 Facebook 、 Twitter 、Google // 绑定账号的类型
}
接口描述:获取某用户在 facebook 中的用户 ID 号。
接口调用:
SuperSDK.invoke("platform", "getfbid", null);
接口回调:
// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if ("platform".equals(moduleName)
&& "getfbid".equals(funcName)) {
// getfbid 回调
getfbid(result);
}
private void getfbid(String result) {
JSONObject json = JsonUtils.parseObject(result);
int code = json.getIntValue("code");
if(code != 1) {
String msg = json.getString("msg");
Log.e("result", "调用失败了: "+msg);
return;
}
String fbid = json.getString("data");// code = 1 可以获取到 fbid,失败获取不到
Log.e("result", "data: "+fbid);
}
日志打印:
{
code : 1/0/xxx, 1获取成功,0没有使用FB登录或FB登录失败,xxx其他错误code 没有可忽略
msg : xxx,
data : fbid // code = 1 可以获取到 fbid,失败获取不到
}
接口描述:查询当前用户是否已绑定邮箱。
接口调用:
SuperSDK.invoke("platform", "queryBindEmail", null);
接口回调:
// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if ("platform".equals(moduleName)
&& "queryBindEmail".equals(funcName)) {
// queryBindEmail 回调
queryBindEmail(result);
}
private void queryBindEmail(String result) {
JSONObject json = JsonUtils.parseObject(result);
int code = json.getIntValue("code");
if(code != 1) {
String msg = json.getString("msg");
Log.e("result", "调用失败了: "+msg);
return;
}
// 只有 code 为 1 时 data 才有值
String email = json.getString("data");// code = 1 可以获取此值
Log.e("result", "data: "+email);
}
日志打印:
{
code : 1/0/xxx,// 1 已绑定,0 未绑定,xxx 其他查询失败 code,没有可忽略
msg : xxx,
data : email// code = 1 可以获取此值
}
接口描述:查询 GTa 用户的用户名。
接口调用:
SuperSDK.invoke("platform", "queryGTaUserName", null);
接口回调:
// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if ("platform".equals(moduleName)
&& "queryGTaUserName".equals(funcName)) {
// queryGTaUserName回调
queryGTaUserName(result);
}
private void queryGTaUserName(String result) {
JSONObject json = JsonUtils.parseObject(result);
int code = json.getIntValue("code");
if(code != 1) {
String msg = json.getString("msg");
Log.e("result", "调用失败了: "+msg);
return;
}
// 只有 code 为 1 时 data 才有值
String username = json.getString("data");// code = 1 可以获取此值
Log.e("result", "data: "+username);
}
日志打印:
{
code : 1/0/xxx,// 1 成功,xxx 其他查询失败 code,没有可忽略
msg : "success",
data : "1003265311@qq.com"// code = 1 可以获取此值
}
接口描述:打开绑定邮箱页面让用户绑定密保邮箱。
接口调用:
SuperSDK.invoke("platform", "showBindEmail", null);
接口回调:
// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if ("platform".equals(moduleName)
&& "showBindEmail".equals(funcName)) {
// showBindEmail 回调
showBindEmail(result);
}
private void showBindEmail(String result) {
JSONObject json = JsonUtils.parseObject(result);
int code = json.getIntValue("code");
if(code != 1) {
String msg = json.getString("msg");
Log.e("result", "调用失败了: "+msg);
return;
}
// 只有 code 为 1 时 data 才有值
String email = json.getString("data");// code = 1 可以获取此值
Log.e("result", "data: "+email);
}
日志打印:
{
code : 1/0/xxx,// 1 绑定成功,0 绑定失败,xxx 其他错误, code 没有可忽略
msg : xxx,
data : email// code = 1 可以获取此值
}
接口描述:传入 GTa 语言参数可更换 GTa 和客服语言。
接口调用:
Map<String,String> lang = new HashMap<>();
lang.put("languagePath","zh_cn"); // 参数 languagePath 取值为语言标识符,比如:zh_cn、zh、en、de 等
SuperSDK.invoke("platform","setLanguagePath", lang);
参数 支持以下几种语言(16种):
语言标识符 | 语言描述 |
---|---|
ar | 阿拉伯语 |
de | 德语 |
en | 英语 |
es | 西班牙语 |
fr | 法语 |
in | 印尼语 |
ja | 日文 |
ko | 韩语 |
pl | 波兰语 |
pt | 葡萄牙语 |
ru | 俄语 |
th | 泰语 |
tr | 土耳其语 |
zh | 中文繁体 |
zh_cn | 中文简体 |
vi | 越南语 |
接口描述:游客单登录接口,自动创建并登录游客,不弹出游客登录框(静默登录)。
注意:该接口适用于 SuperSDK 母包。
接口调用:
SuperSDK.invoke("platform", "GuestSingleLogin", null);
接口回调:
// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if("platform".equals(moduleName)
&& "GuestSingleLogin".equals(funcName)){
// TODO 处理回调 json 信息
JSONObject json = JsonUtils.parseObject(result);
int code = json.getIntValue("code");
if (code != 1) {
// 游戏在这里处理登录失败的逻辑
Log.d("result", "调用失败:" + json.getString("msg"));
return;
}
// 获取 data 里面的值
JSONObject data = json.getJSONObject("data");
// 以下参数,游戏服务器验证会用到,建议游戏把这一步放到服务器端解析
String token = data.getString("osdk_ticket");
String str = EncryptUtils.deBase64fromString(token);
JSONObject jsonObj2 = JsonUtils.parseObject(str);
String userId = jsonObj2.getString("osdk_user_id");
}
日志打印:
moduleName:platform
funcName:GuestSingleLogin
result:{
"code":1,
"data":{
"msg":"登录成功",
"osdk_ticket":"eyJvc2RrX2dhbWVfaWQiOiIxOTYzNzc4NDQiLCJ1c2VyX2lkIjoiMTY3MDQ5MjUyOTE3MjIyNDUyNTYyODg5NSIsImxvZ2luX3Nka19uYW1lIjoiZ3RhcmNhZGUiLCJjaGFubmVsX2lkIjoiMCIsImV4dGVuZCI6IjIxNzN8NDA4fDE3NDciLCJhY2NvdW50X3N5c3RlbV9pZCI6IjAwNjAwMTUiLCJvc2RrX3VzZXJfaWQiOiIwMDYwMDE1XzE2NzA0OTI1MjkxNzIyMjQ1MjU2Mjg4OTUiLCJpcCI6IjQ1LjQwLjYwLjIxNyIsImNvdW50cnkiOiJVUyIsInRpbWUiOjE2NzA0OTQ2MjIsInNpZ24iOiJiMmE4YThjMjVmMTM1ZjM1YjA1MThhMTM3YzBhNGY3ZiJ9",
"status":1,
"userinfo":{
"login_sdk_name":"gtarcade",
"user_id":"1670492529172224525628895"
}
},
"msg":"GuestSingleLogin success"
}
接口描述:游客升级接口。
注意:该接口只有升级成功时有回调。
接口调用:
SuperSDK.invoke("platform", "guestUpgrade", null);
接口回调:
// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if("platform".equals(moduleName) && "guestUpgrade".equals(funcName)) {
// TODO 处理回调 json 信息
}
日志打印:
{
code : 1,// 1 成功,xxx 其他错误, code 没有可忽略
msg : "GuestUpgrade Success"
}
接口描述:可选择第三方登录方式。
登录方式:GTALogin、FacebookLogin、GoogleLogin。
接口调用:
Map<String, String> params = new HashMap<>();
params.put("otherFuncName", "GoogleLogin"); // GTALogin、FacebookLogin、GoogleLogin
SuperSDK.invoke("platform", "otherFunction", params);
说明:参考 海外拓展接口
接口描述:打开用户隐私协议。
注意:只支持日本地区。
接口调用:
Map<String, String> params = new HashMap<>();
params.put("type", "JP");// 用户隐私地区(必须)。如:GDPR:gta 通用协议 JP: 日本
SuperSDK.invoke("platform", "openUserAgreement", params);
接口回调:
// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if("platform".equals(moduleName) && "openUserAgreement".equals(funcName)) {
// TODO 处理回调 json 信息
}
日志打印:
moduleName:platform
funcName:openUserAgreement
result:{
"code":1, // 1/xxx, 1 表示已经同意用户隐私,xxx 表示未同意用户隐私
"msg":"已经同意用户隐私",
"data":"JP"
}
注意:该接口目前暂时只支持日本地区,日本地区的游戏在每次充值前都需要调用该接口。
接口调用:
Map<String, String> params = new HashMap<>();
params.put("country", "JP"); // 传入限制的国家(目前暂时只支持日本) 必须。如:JP
params.put("amount", "120"); // 传入充值金额(需要和打包工具上配置的一样,日本规定只能使用日元) 必须
SuperSDK.invoke("platform", "payCompliance", params);
接口回调:
// OnSuperSDKListener 的 onSuperSDK 方法回调结果,解析后判断
if("platform".equals(moduleName) && "payCompliance".equals(funcName)) {
// TODO 处理回调json信息
}
日志打印:
moduleName:platform
funcName:payCompliance
result:{
"code":1, // 1/xxx, 1 表示可以充值, xxx 表示不可以充值
"msg":"日分充值限制返回 Success, code = 0, msg = 可以充值"
}