本文指导您通过集成支付宝小程序唤起实人认证服务。
操作步骤
认证初始化、发起认证流程。
Page({ data: { //全局变量 certifyInfo: { } }, //点击触发认证初始化 makeRequest: function () { this.fetchCertifyInfo(); }, //小程序服务端向阿里云服务端发起初始化请求,获取认证ID和认证URL fetchCertifyInfo: function () { my.request({ // 示例后端接口URL url: 'https://example.com/.../initFaceVerifyController/initFaceVerify', // 请求方式 method: 'POST', headers: { 'content-type': 'application/json', }, dataType: 'json', data: { serviceParameters: { //用户身份证件号码 certNo: "1******************9", //用户姓名。 certName: "张先生", //商户业务页面回调的目标地址。 returnUrl: "https://www.aliyun.com", } }, success: (res) => { if (res.data && res.statusCode === 200) { // 请求成功,处理返回的数据 this.setData({ certifyInfo: res.data, }); my.alert({ content: "获取成功" }); } else { // 处理错误情况 my.alert({ title: '请求失败', content: '无法获取用户信息', buttonText: '确定' }); } }, fail: (error) => { // 请求失败处理 my.alert({ title: '网络错误', content: '请检查网络连接', buttonText: '确定' }); } }); }, // 调用支付宝开放能力,发起认证服务 startAPVerify: function (options, callback) { // my.call 是支付宝小程序提供的API或自定义的全局函数 my.call('startBizService', { name: 'open-certify', param: JSON.stringify(options), }, callback); }, // 点击跳转认证页面 openVerifyPage: function (options) { this.startAPVerify({ certifyId: this.data.certifyInfo.certifyId, url: this.data.certifyInfo.certifyUrl, }, (verifyResult) => { // 认证结果回调触发 if (verifyResult.resultStatus === '9000') { // 验证成功,接入方在此处处理后续的业务逻辑 // ... return; } // 用户主动取消认证 if (verifyResult.resultStatus === '6001') { // 可做下 toast 弱提示 my.showToast({ content: '认证已取消', icon: 'none', duration: 2000 }); 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
用户未认证。
文档内容是否对您有帮助?