文档管理中心
我的

此版本文档已归档不再维护,推荐您使用最新版本。

API参考游戏服务客户端API游戏接口getPlayerCertificationIntent

getPlayerCertificationIntent接口-v3

接口功能

应用调用此接口可以查询用户当前的实名认证情况,如果用户未实名应用可以通过返回结果中的Intent对象跳转到实名认证页面。

调用场景

如果游戏需要进行防沉迷处理,应用可以通过此接口与getPlayerCertificationInfo接口配合实现,具体的处理逻辑可参考游戏防沉迷。

接口约束

  • 本接口目前仅对中国大陆用户有效,非中国大陆用户将返回7006错误码。

  • 如果接口返回7001或7006错误码,请联系华为技术支持定位错误原因,请勿直接对用户进行强制实名认证。

  • 调用本接口前必须已经初始化HuaweiApiClient对象并连接HMS Core(APK),具体参见初始化HuaweiApiClient对象。如果HuaweiApiClient.isConnected()为true表示当前已经连接,请勿重复连接。

调用方法

收起
自动换行
深色代码主题
复制
  1. PendingResult<CertificateIntentResult> pendingRst = HuaweiGame.HuaweiGameApi.getPlayerCertificationIntent(HuaweiApiClient client);

请求参数

参数名称必选(M)/可选(O)类型参数说明
clientMHuaweiApiClient连接HMS Core(APK)的HuaweiApiClient对象。如果未初始化HuaweiApiClient对象,对象的初始化方法请参见初始化HuaweiApiClient对象。

返回值

收起
自动换行
深色代码主题
复制
  1. PendingResult<CertificateIntentResult> pendingRst = HuaweiGame.HuaweiGameApi.getPlayerCertificationIntent(apiClient);
  2. pendingRst.setResultCallback(new ResultCallback<CertificateIntentResult>() {
  3.    @Override
  4.      public void onResult(CertificateIntentResult result) {
  5.    }
  6. });

返回PendingResult类型的执行结果,开发者可以使用pendingRst.setResultCallback设置回调方法,并在onResult回调中接收回调结果,回调结果如下。

参数名称必选(M)/可选(O)类型参数说明
resultMCertificateIntentResult包含实名认证查询结果的对象信息。

CertificateIntentResult

参数名称必选(M)/可选(O)类型获取方法参数说明
statusMStatusresult.getStatus()包含查询结果业务返回码的对象,可通过result.getStatus().getStatusCode()方式获取,具体请参见返回码。
如果返回码为0,表示用户未实名。
intentOIntentresult.getCertificationIntent()如果用户未实名,将返回此Intent对象,应用可以使用此对象调用startActivityForResult方法跳转到实名认证页面。

返回码

类型返回码常量返回码值返回码说明处理建议
HMS SDK框架错误码参见HMS SDK框架错误码。
业务返回码GameStatusCodes.GAME_STATE_SUCCESS0用户未实名。/
GameStatusCodes.GAME_STATE_ERROR7001用户未登录或调用帐号接口异常。检查用户是否已登录,检查用户注册地与服务地是否一致。
GameStatusCodes.FORCED_REAL_NAME_CANCEL7021实名认证时用户选择取消或没有实名。
提示用户必须实名。
GameStatusCode.RTN_CODE_PARAMS_ERROR7005请求参数错误请检查传参是否正确。
GameStatusCodes.GAME_STATE_NO_SUPPORT7006当前区域不提供游戏服务。您所在的地区目前还不支持接入华为游戏服务。如果是非华为手机出现此错误码,请尝试升级HMS Core(APK)至最新版本。
GameStatusCode.GAME_STATE_ACCOUNT_NOT_MATCH7019应用内登录帐号与系统当前帐号不一致请提示用户重新登录。
无7016已经实名。无需处理。

调用示例

收起
自动换行
深色代码主题
复制
  1. if (apiClient != null && apiClient.isConnected()) {
  2.    PendingResult<CertificateIntentResult> pendingRst = HuaweiGame.HuaweiGameApi.getPlayerCertificationIntent(apiClient);
  3.    pendingRst.setResultCallback(new ResultCallback<CertificateIntentResult>() {
  4.        @Override
  5.        public void onResult(CertificateIntentResult result) {
  6.            if (result == null) {
  7.                return;
  8.            }
  9.            Status status = result.getStatus();
  10.            if (status == null) {
  11.                return;
  12.            }
  13.            else{
  14.                int statusCode = result.getStatus().getStatusCode();
  15.                if(statusCode == GameStatusCodes.GAME_STATE_SUCCESS) {
  16.                    showLog("GetCtfIntent success, Start intent");
  17.                    /**
  18.                     * 拉起实名认证页面
  19.                     */
  20.                    Intent intent = result.getCertificationIntent();
  21.                    startActivityForResult(intent,1000);
  22.                 }
  23.            }
  24.        }
  25.    });
  26. }
  27. else {
  28.    apiClient.connect(this);
  29. }