需要把 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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账号 ,已经被绑定 |

上海中清龙图软件有限公司