本文指导您在支付宝端内H5页面中集成金融级实人认证服务。
前提条件
说明 您可以参考以下代码获取支付宝版本号,并做好startBizService版本的兼容处理。
const matchResult = window.navigator.userAgent.match(/AliApp\(AP\/([\d\.]+)\)/i);
const apVersion = (matchResult && matchResult[1]) || ''; // 如:10.1.58.00000170。
操作步骤
- 调用API发起认证。
- 注入js库。
function ready(callback) { // 如果jsbridge已经注入则直接调用。 if (window.AlipayJSBridge) { callback && callback(); } else { // 如果没有注入则监听注入的事件。 document.addEventListener('AlipayJSBridgeReady', callback, false); } }
- 发起认证服务。调用startBizService接口发起请求认证。
function startAPVerify(options, callback) { AlipayJSBridge.call('startBizService', { name: 'open-certify', param: JSON.stringify(options), }, callback); }
- 唤起认证流程。发起认证的信息包括certifyId和网关url。两者都通过服务端的相关接口取得。
ready(function() { // 需要确保在AlipayJSBridge ready之后才调。 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; // 其他结果状态码判断和处理。 }); });
- 注入js库。
- 验证认证结果。回调函数带入的参数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 用户未认证。