本文指导您在支付宝端内H5页面中集成金融级实人认证服务。
前提条件
客户端安装的支付宝版本必须是10.1.32+。
说明
您可以参考以下代码获取支付宝版本号,并做好startBizService版本的兼容处理。
const matchResult = window.navigator.userAgent.match(/AliApp\(AP\/([\d\.]+)\)/i);
const apVersion = (matchResult && matchResult[1]) || ''; // 如:10.1.58.00000170。
操作步骤
注入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; // 其他结果状态码判断和处理。 }); });
验证认证结果。
回调函数带入的参数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
用户未认证。
文档内容是否对您有帮助?