Skip to content

getGameSignature

获取游戏签名

getGameSignature 方法用于获取指定游戏的启动授权签名。该签名包含了游戏版本、权限及运行时所需的加密信息,是后续进行预加载(PreLoad)或通过签名启动游戏的必要参数。


方法声明

java
/**
 * 获取游戏签名
 *
 * @param params   包含游戏 ID 的参数对象
 * @param listener 签名获取结果的监听器
 */
public static void getGameSignature(SUDOPGetGameSignatureParams params, SUDOPGetGameSignatureListener listener);

参数说明

1. SUDOPGetGameSignatureParams

用于指定需要授权的游戏信息:

属性类型描述
gameIdString必填。需要获取签名的游戏唯一标识。

2. SUDOPGetGameSignatureListener

用于接收签名数据或错误信息:

  • void onSuccess(String gameSignature):获取成功。返回的 gameSignature 字符串可用于后续的启动或预载接口。
  • void onFailure(int retCode, String retMsg):获取失败。可能原因包括游戏 ID 不存在、应用权限不足或网络连接超时。

运行行为

  1. 鉴权校验:SDK 内部会首先确认当前是否已通过 auth 接口完成用户鉴权。
  2. 安全请求:向 SUD 服务端发起安全请求,获取经过加密处理的游戏运行通行证。
  3. 缓存管理:SDK 可能会对有效的签名进行短时缓存,以优化重复启动的性能。

代码示例

java
// 1. 设置获取签名的参数
SUDOPGetGameSignatureParams params = new SUDOPGetGameSignatureParams();
params.gameId = "game_101";

// 2. 发起请求
SUDOP.getGameSignature(params, new SUDOPGetGameSignatureListener() {
    @Override
    public void onSuccess(String gameSignature) {
        // 获取成功,可以保存此签名用于 startGameByGameSignature
        Log.i("SUDOP", "Game signature obtained: " + gameSignature);
    }

    @Override
    public void onFailure(int retCode, String retMsg) {
        // 获取失败
        Log.e("SUDOP", "Failed to get game signature: " + retMsg);
    }
});

注意事项

  • 前置条件:调用此方法前必须确保 initSDK 成功,且已调用 auth 完成用户登录鉴权。
  • 安全性gameSignature 包含敏感的授权信息,仅建议在内存中传递,不建议持久化到本地存储。
  • 有效期:签名具有一定的时效性。若在预加载或启动时返回签名失效错误,需重新调用此接口。