需要把 SDK内“资源,lib库和配置文件” 目录内 “gswallet”目录,复制到代码包名路径下。
说明:
如果使用打包工具出游戏包,则只需要接入baseSDK中接口即可。打包过程中会将所需资源放入游戏包中
PocketBuff 区块链签名功能。
针对使用PocketBuff 区块链的SDK,做签名功能。
参数 | 类型 | 说明 |
---|---|---|
接口id | String | PocketBuff 本次操作签名固定值”LTMethodName_HuoBIGSSign” |
PrepayId | String | PocketBuff 本次操作签名的PrepayId, 调用api/gs/wallet/prepay API由钱包服务器返回 |
Nonce | String | PocketBuff 本次操作签名的Nonce, 游戏服务器生成 |
Timestamp | String | PocketBuff 本次操作签名的Timestamp,游戏服务器生成 |
Sign | String | PocketBuff 本次操作签名的Sign,游戏服务器生成 |
/**
* @param value0 PocketBuff签名功能id
*/
LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).LTBaseSDKChannelExtend("LTMethodName_HuoBIGSSign","PrepayId", "Nonce", "Timestamp", "Sign");
extendListener 接口说明
参数 | 类型 | 说明 |
---|---|---|
id | String | 解锁成就 固定值”LTMethodName_HuoBIGSSign” |
values | String数组 | values[0] == “100” 签名成功 , values[0] != “100” 签名失败 |
values[1] | String | values[1] 签名成功以后,返回的签名信息,json格式 |
json格式介绍
参数 | 类型 | 说明 |
---|---|---|
transactionId | String | PocketBuff 本次操作签名 服务端产生的交易ID |
customId | String | PocketBuff 本次操作签名 自定义ID |
// 设置扩展功能回调
LTBaseSDK.getInstance(this).LTBaseSDKSetExtendListener(mLTBaseExtendListener);
/**
* 扩展功能回调
* @param id 功能接口id
* @param values 返回数据
* values[0] == "100" 签名成功
* values[0] != "100" 签名失败
*/
private LTBaseExtendListener mLTBaseExtendListener = new LTBaseExtendListener() {
@Override
public void extendListener(String id, String... values) {
Logs.i(LOGTAG, " id:" + id + " strings[0]:" + values[0]);
if (id.equals("LTMethodName_HuoBIGSSign")) {
if (values[0].equals("100")) {
// 签名成功
try {
JSONObject signJson = new JSONObject(data[1]);
String transactionId = signJson.getString("transactionId");
String customId = signJson.getString("customId");
Log.i(LOGTAG, " transactionId:" + transactionId + " customId:" + customId);
} catch (JSONException e) {
e.printStackTrace();
}
} else {
// 签名失败
Logs.i(LOGTAG, " 签名失败 错误码:" + values[0]);
}
}
}
};
检查当前登录的账户是否绑定了PocketBuff账户。
如果绑定了则返回绑定的PocketBuff信息, 未绑定返回未绑定。
/**
* @param value0 PocketBuff检查是否绑定功能id
*/
LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).
LTBaseSDKChannelExtend("LTMethodName_CheckBindHuoBIGS");
extendListener 接口说明
参数 | 类型 | 说明 |
---|---|---|
id | String | 解锁成就 固定值”LTMethodName_CheckBindHuoBIGS” |
values | String数组 | values[0] == “100” 检查成功 , values[0] != “100” 检查失败 |
values[1] | String | values[1] 检查成功以后,返回的信息,包含绑定关系和数据信息 |
返回json格式说明
参数 | 类型 | 说明 |
---|---|---|
gamespaceBind | Boolean | 是否绑定了PocketBuff |
accessToken | String | 如果绑定了才有值,返回绑定的PocketBuff用户token |
openId | String | 如果绑定了才有值,返回绑定的PocketBuff用户openid |
tokenType | String | 如果绑定了才有值,返回绑定的PocketBuff用户 Token 类型,bearer |
expire | Boolean | accessToken 是否过期, true 过期了, false 没有过期。 如果token已经过期, 在签名的时候需要重新绑定 |
walletAddress | String | 用户钱包地址 (请勿往该地址里进行Token的充提) 仅用标识用户使用 |
// 设置扩展功能回调
LTBaseSDK.getInstance(this).LTBaseSDKSetExtendListener(mLTBaseExtendListener);
/**
* 扩展功能回调
* @param id 功能接口id
* @param values 返回数据
* values[0] == "100" 成功
* values[0] != "100" 失败
*/
private LTBaseExtendListener mLTBaseExtendListener = new LTBaseExtendListener() {
@Override
public void extendListener(String id, String... values) {
Logs.i(LOGTAG, " id:" + id + " strings[0]:" + values[0]);
if (id.equals("LTMethodName_CheckBindHuoBIGS")) {
if ("100".equals(data[0])) {
String wemixData = data[1];
Logs.i(LOGTAG,
" LTMethodName_CheckBind 查询绑定成功 失败 ");
try {
JSONObject wemixJsonData = new JSONObject(wemixData);
boolean isBing = wemixJsonData.getBoolean("gamespaceBind");
if (isBing == true) {
String accessToken = wemixJsonData.getString("accessToken");
String openId = wemixJsonData.getString("openId");
String tokenType = wemixJsonData.getString("tokenType");
boolean expire = wemixJsonData.getBoolean("expire");
String walletAddress = wemixJsonData.getString("walletAddress");
LTToast.makeText(mMainActivity, "当前用户已绑定 accessToken:" + accessToken +
" 是否过期:" + expire, Toast.LENGTH_SHORT);
} else {
LTToast.makeText(mMainActivity, "当前用户未绑定", Toast.LENGTH_SHORT);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Logs.i(LOGTAG,
" LTMethodName_CheckBind 查询绑定结果 失败 ");
LTToast.makeText(mMainActivity, " 查询绑定结果 失败 ", Toast.LENGTH_SHORT);
}
}
}
};
游戏主动调用绑定接口,
/**
* @param value0 PocketBuff 绑定功能id
*/
LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).
LTBaseSDKChannelExtend("LTMethodName_BindHuoBIGS");
extendListener 接口说明
参数 | 类型 | 说明 |
---|---|---|
id | String | 解锁成就 固定值”LTMethodName_BindHuoBIGS” |
values | String数组 | values[0] == “100” 检查成功 , values[0] != “100” 检查失败 |
values[1] | String | values[1] 绑定成功以后,返回的信息,包含绑定关系和数据信息 |
返回json格式说明
参数 | 类型 | 说明 |
---|---|---|
accessToken | String | accessToken 信息 |
openId | String | 返回PocketBuff用户openid |
tokenType | String | 返回PocketBuff用户 Token 类型,bearer |
walletAddress | String | 用户钱包地址 (请勿往该地址里进行Token的充提) 仅用标识用户使用 |
// 设置扩展功能回调
LTBaseSDK.getInstance(this).LTBaseSDKSetExtendListener(mLTBaseExtendListener);
/**
* 扩展功能回调
* @param id 功能接口id
* @param values 返回数据
* values[0] == "100" 成功
* values[0] != "100" 失败
*/
private LTBaseExtendListener mLTBaseExtendListener = new LTBaseExtendListener() {
@Override
public void extendListener(String id, String... values) {
Logs.i(LOGTAG, " id:" + id + " strings[0]:" + values[0]);
if (id.equals("LTMethodName_BindHuoBIGS")) {
if ("100".equals(data[0])) {
String wemixData = data[1];
Logs.i(LOGTAG,
" LTMethodName_Bind 绑定结果成功 data[1]:" + data[1]);
try {
JSONObject wemixJsonData = new JSONObject(wemixData);
String accessToken = wemixJsonData.getString("accessToken");
String openId = wemixJsonData.getString("openId");
String tokenType = wemixJsonData.getString("tokenType");
String walletAddress = wemixJsonData.getString("walletAddress");
LTToast.makeText(mMainActivity, "绑定结果成功 accessToken:" + accessToken, Toast.LENGTH_SHORT);
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Logs.i(LOGTAG,
" LTMethodName_Bind 绑定结果 失败 ");
LTToast.makeText(mMainActivity, "绑定结果 失败", Toast.LENGTH_SHORT);
}
}
}
};
检查钱包是否安装,
/**
* @param value0 PocketBuff 钱包是否安装
*/
LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).
LTBaseSDKChannelExtend("LTMethodName_isInstall");
extendListener 接口说明
参数 | 类型 | 说明 |
---|---|---|
id | String | 解锁成就 固定值”LTMethodName_isInstall” |
values | String数组 | values[0] == “1” 钱包安装 , values[0] != “0” 钱包没有安装 |
// 设置扩展功能回调
LTBaseSDK.getInstance(this).LTBaseSDKSetExtendListener(mLTBaseExtendListener);
/**
* 扩展功能回调
* @param id 功能接口id
* @param values 返回数据
* values[0] == "1" 已经安装
* values[0] != "0" 未安装
*/
private LTBaseExtendListener mLTBaseExtendListener = new LTBaseExtendListener() {
@Override
public void extendListener(String id, String... values) {
Logs.i(LOGTAG, " id:" + id + " strings[0]:" + values[0]);
if (id.equals("LTMethodName_isInstall")) {
if ("1".equals(data[0])) {
Logs.i(LOGTAG,
" LTMethodName_isInstall 钱包已经安装 ");
} else {
Logs.i(LOGTAG,
" LTMethodName_isInstall 钱包没有安装 ");
}
}
}
};
获取钱包安装地址
/**
* @param value0 返回钱包安装地址
*/
LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).
LTBaseSDKChannelExtend("LTMethodName_GetInstallUrl");
extendListener 接口说明
参数 | 类型 | 说明 |
---|---|---|
id | String | 解锁成就 固定值”LTMethodName_GetInstallUrl” |
values[0] | String数组 | 钱包安装地址 |
// 设置扩展功能回调
LTBaseSDK.getInstance(this).LTBaseSDKSetExtendListener(mLTBaseExtendListener);
/**
* 扩展功能回调
* @param id 功能接口id
* @param values 返回数据
* values[0] 钱包安装地址
*/
private LTBaseExtendListener mLTBaseExtendListener = new LTBaseExtendListener() {
@Override
public void extendListener(String id, String... values) {
Logs.i(LOGTAG, " id:" + id + " strings[0]:" + values[0]);
if (id.equals("LTMethodName_GetInstallUrl")) {
Logs.i(LOGTAG, " id:" + id + " 钱包安装地址:" + values[0]);
}
}
};
错误码 | 类型 | 说明 |
---|---|---|
100 | String | 签名成功 |
101 | String | 授权失败 |
102 | String | 获取PocketBuff信息失败 |
103 | String | PocketBuff签名错误 |
104 | String | PocketBuff签名返回为空 |
105 | String | PocketBuff绑定失败 — 其他错误 |
106 | String | 查询绑定状态失败 |
107 | String | PocketBuff绑定取消 |
108 | String | 游客绑定取消 |
113 | String | 当前用户已经绑定了其他PocketBuff 账号 |
114 | String | 当前PocketBuff账号 ,已经被绑定 |
上海中清龙图软件有限公司