本文指導您通過集成支付寶小程序喚起實人認證服務。
操作步驟
認證初始化、發起認證流程。
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
用戶未認證。
文檔內容是否對您有幫助?