本文指导您通过集成支付宝小程序唤起实人认证服务。

操作步骤

  1. 调用 API 发起认证。
    1. 发起认证服务。
      调用 startBizService 接口请求认证。
      function startAPVerify(options, callback) {
          my.call('startBizService', {
              name: 'open-certify',
              param: JSON.stringify(options),
          }, callback);
      }
    2. 唤起认证流程。
      发起认证包含的信息包括 certifyId 和网关 url。两者都通过服务端的相关接口取得。
      startAPVerify({ 
          certifyId: certifyId, url: url }, function (verifyResult) {
          // 认证结果回调触发, 以下处理逻辑为示例代码,开发者可根据自身业务特性来自行处理
          if (verifyResult.resultStatus === '9000') {
              // 验证成功,接入方在此处处理后续的业务逻辑
              // ...   
              return;
          }
      
          // 用户主动取消认证
          if (verifyResult.resultStatus === '6001') {
              // 可做下 toast 弱提示
              return;
          }
      
          const errorCode = verifyResult.result && verifyResult.result.errorCode;
          // 其他结果状态码判断和处理 ...
          }
      });
  2. 验证认证结果。
    回调函数带入的参数verifyResult: { resultStatus:‘xx’, result: { } }说明如下:
    参数名称 类型 描述
    resultStatus string 认证流程结果状态码,具体请参见下文ResultStatus定义。
    result.certifyId string 本次认证流水号certifyId。
    result.errorCode string 业务异常错误码。
    说明 result的对象可能为null,API接入者代码逻辑需要做防御性处理,避免NPE异常。
    resultStatus枚举取值如下:
    状态码 描述
    9000 认证通过。
    6002 网络异常。
    6001 用户取消了业务流程,主动退出。
    4000 业务异常。
    说明
    • resultStatus为6001、6002时,result对象数据为空,接入者不需要获取result对象数据。
    • resultStatus为9000时,由于前端数据是可以修改的,业务方需要去查询认证结果接口的最终状态。
    当resultStatus为4000时,包含的部分错误码如下表格所示 :
    错误码 描述
    UNKNOWN_ERROR 未知异常。
    SYSTEM_ERROR 系统异常。
    USER_IS_NOT_CERTIFY 用户未认证。