PocketBuff拓展功能说明

1.0 接入特殊说明

需要把 SDK内“资源,lib库和配置文件” 目录内 “gswallet”目录,复制到代码包名路径下。
说明:
如果使用打包工具出游戏包,则只需要接入baseSDK中接口即可。打包过程中会将所需资源放入游戏包中

1.1 签名功能说明

PocketBuff 区块链签名功能。
针对使用PocketBuff 区块链的SDK,做签名功能。

1.1.1 接口定义

参数 类型 说明
接口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,游戏服务器生成
  1. /**
  2. * @param value0 PocketBuff签名功能id
  3. */
  4. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).LTBaseSDKChannelExtend("LTMethodName_HuoBIGSSign","PrepayId", "Nonce", "Timestamp", "Sign");

1.1.2 功能回调说明

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
  1. // 设置扩展功能回调
  2. LTBaseSDK.getInstance(this).LTBaseSDKSetExtendListener(mLTBaseExtendListener);
  3. /**
  4. * 扩展功能回调
  5. * @param id 功能接口id
  6. * @param values 返回数据
  7. * values[0] == "100" 签名成功
  8. * values[0] != "100" 签名失败
  9. */
  10. private LTBaseExtendListener mLTBaseExtendListener = new LTBaseExtendListener() {
  11. @Override
  12. public void extendListener(String id, String... values) {
  13. Logs.i(LOGTAG, " id:" + id + " strings[0]:" + values[0]);
  14. if (id.equals("LTMethodName_HuoBIGSSign")) {
  15. if (values[0].equals("100")) {
  16. // 签名成功
  17. try {
  18. JSONObject signJson = new JSONObject(data[1]);
  19. String transactionId = signJson.getString("transactionId");
  20. String customId = signJson.getString("customId");
  21. Log.i(LOGTAG, " transactionId:" + transactionId + " customId:" + customId);
  22. } catch (JSONException e) {
  23. e.printStackTrace();
  24. }
  25. } else {
  26. // 签名失败
  27. Logs.i(LOGTAG, " 签名失败 错误码:" + values[0]);
  28. }
  29. }
  30. }
  31. };

1.2 检查是否绑定功能说明

检查当前登录的账户是否绑定了PocketBuff账户。
如果绑定了则返回绑定的PocketBuff信息, 未绑定返回未绑定。

1.2.1 接口定义

  1. /**
  2. * @param value0 PocketBuff检查是否绑定功能id
  3. */
  4. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).
  5. LTBaseSDKChannelExtend("LTMethodName_CheckBindHuoBIGS");

1.2.2 功能回调说明

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的充提) 仅用标识用户使用
  1. // 设置扩展功能回调
  2. LTBaseSDK.getInstance(this).LTBaseSDKSetExtendListener(mLTBaseExtendListener);
  3. /**
  4. * 扩展功能回调
  5. * @param id 功能接口id
  6. * @param values 返回数据
  7. * values[0] == "100" 成功
  8. * values[0] != "100" 失败
  9. */
  10. private LTBaseExtendListener mLTBaseExtendListener = new LTBaseExtendListener() {
  11. @Override
  12. public void extendListener(String id, String... values) {
  13. Logs.i(LOGTAG, " id:" + id + " strings[0]:" + values[0]);
  14. if (id.equals("LTMethodName_CheckBindHuoBIGS")) {
  15. if ("100".equals(data[0])) {
  16. String wemixData = data[1];
  17. Logs.i(LOGTAG,
  18. " LTMethodName_CheckBind 查询绑定成功 失败 ");
  19. try {
  20. JSONObject wemixJsonData = new JSONObject(wemixData);
  21. boolean isBing = wemixJsonData.getBoolean("gamespaceBind");
  22. if (isBing == true) {
  23. String accessToken = wemixJsonData.getString("accessToken");
  24. String openId = wemixJsonData.getString("openId");
  25. String tokenType = wemixJsonData.getString("tokenType");
  26. boolean expire = wemixJsonData.getBoolean("expire");
  27. String walletAddress = wemixJsonData.getString("walletAddress");
  28. LTToast.makeText(mMainActivity, "当前用户已绑定 accessToken:" + accessToken +
  29. " 是否过期:" + expire, Toast.LENGTH_SHORT);
  30. } else {
  31. LTToast.makeText(mMainActivity, "当前用户未绑定", Toast.LENGTH_SHORT);
  32. }
  33. } catch (JSONException e) {
  34. e.printStackTrace();
  35. }
  36. } else {
  37. Logs.i(LOGTAG,
  38. " LTMethodName_CheckBind 查询绑定结果 失败 ");
  39. LTToast.makeText(mMainActivity, " 查询绑定结果 失败 ", Toast.LENGTH_SHORT);
  40. }
  41. }
  42. }
  43. };

1.3 绑定PocketBuff功能说明

游戏主动调用绑定接口,

1.3.1 接口定义

  1. /**
  2. * @param value0 PocketBuff 绑定功能id
  3. */
  4. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).
  5. LTBaseSDKChannelExtend("LTMethodName_BindHuoBIGS");

1.3.2 功能回调说明

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的充提) 仅用标识用户使用
  1. // 设置扩展功能回调
  2. LTBaseSDK.getInstance(this).LTBaseSDKSetExtendListener(mLTBaseExtendListener);
  3. /**
  4. * 扩展功能回调
  5. * @param id 功能接口id
  6. * @param values 返回数据
  7. * values[0] == "100" 成功
  8. * values[0] != "100" 失败
  9. */
  10. private LTBaseExtendListener mLTBaseExtendListener = new LTBaseExtendListener() {
  11. @Override
  12. public void extendListener(String id, String... values) {
  13. Logs.i(LOGTAG, " id:" + id + " strings[0]:" + values[0]);
  14. if (id.equals("LTMethodName_BindHuoBIGS")) {
  15. if ("100".equals(data[0])) {
  16. String wemixData = data[1];
  17. Logs.i(LOGTAG,
  18. " LTMethodName_Bind 绑定结果成功 data[1]:" + data[1]);
  19. try {
  20. JSONObject wemixJsonData = new JSONObject(wemixData);
  21. String accessToken = wemixJsonData.getString("accessToken");
  22. String openId = wemixJsonData.getString("openId");
  23. String tokenType = wemixJsonData.getString("tokenType");
  24. String walletAddress = wemixJsonData.getString("walletAddress");
  25. LTToast.makeText(mMainActivity, "绑定结果成功 accessToken:" + accessToken, Toast.LENGTH_SHORT);
  26. } catch (JSONException e) {
  27. e.printStackTrace();
  28. }
  29. } else {
  30. Logs.i(LOGTAG,
  31. " LTMethodName_Bind 绑定结果 失败 ");
  32. LTToast.makeText(mMainActivity, "绑定结果 失败", Toast.LENGTH_SHORT);
  33. }
  34. }
  35. }
  36. };

1.4 检查钱包是否安装功能

检查钱包是否安装,

1.4.1 接口定义

  1. /**
  2. * @param value0 PocketBuff 钱包是否安装
  3. */
  4. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).
  5. LTBaseSDKChannelExtend("LTMethodName_isInstall");

1.4.2 功能回调说明

extendListener 接口说明

参数 类型 说明
id String 解锁成就 固定值”LTMethodName_isInstall”
values String数组 values[0] == “1” 钱包安装 , values[0] != “0” 钱包没有安装
  1. // 设置扩展功能回调
  2. LTBaseSDK.getInstance(this).LTBaseSDKSetExtendListener(mLTBaseExtendListener);
  3. /**
  4. * 扩展功能回调
  5. * @param id 功能接口id
  6. * @param values 返回数据
  7. * values[0] == "1" 已经安装
  8. * values[0] != "0" 未安装
  9. */
  10. private LTBaseExtendListener mLTBaseExtendListener = new LTBaseExtendListener() {
  11. @Override
  12. public void extendListener(String id, String... values) {
  13. Logs.i(LOGTAG, " id:" + id + " strings[0]:" + values[0]);
  14. if (id.equals("LTMethodName_isInstall")) {
  15. if ("1".equals(data[0])) {
  16. Logs.i(LOGTAG,
  17. " LTMethodName_isInstall 钱包已经安装 ");
  18. } else {
  19. Logs.i(LOGTAG,
  20. " LTMethodName_isInstall 钱包没有安装 ");
  21. }
  22. }
  23. }
  24. };

1.5 获取钱包安装地址功能

获取钱包安装地址

1.5.1 接口定义

  1. /**
  2. * @param value0 返回钱包安装地址
  3. */
  4. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).
  5. LTBaseSDKChannelExtend("LTMethodName_GetInstallUrl");

1.5.2 功能回调说明

extendListener 接口说明

参数 类型 说明
id String 解锁成就 固定值”LTMethodName_GetInstallUrl”
values[0] String数组 钱包安装地址
  1. // 设置扩展功能回调
  2. LTBaseSDK.getInstance(this).LTBaseSDKSetExtendListener(mLTBaseExtendListener);
  3. /**
  4. * 扩展功能回调
  5. * @param id 功能接口id
  6. * @param values 返回数据
  7. * values[0] 钱包安装地址
  8. */
  9. private LTBaseExtendListener mLTBaseExtendListener = new LTBaseExtendListener() {
  10. @Override
  11. public void extendListener(String id, String... values) {
  12. Logs.i(LOGTAG, " id:" + id + " strings[0]:" + values[0]);
  13. if (id.equals("LTMethodName_GetInstallUrl")) {
  14. Logs.i(LOGTAG, " id:" + id + " 钱包安装地址:" + values[0]);
  15. }
  16. }
  17. };

1.6.0 PocketBuff相关错误码说明

错误码 类型 说明
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账号 ,已经被绑定