最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

騰訊雲AI發表於2022-07-07

近些年,不法分子盜用他人的電話資訊實施詐騙嚴重影響了部分人的正常生活。針對這一情況,運營商也加強了對高危電話使用者進行二次實人、實名、語音認證,提醒使用者使用的電話卡涉嫌法律風險並承諾合規使用;但在實際落地上也面臨挑戰,不僅會增加人力等成本,還很容易出錯。作為一名軟體開發工程師,我開始嘗試和調研,希望可以通過更加智慧和降本增效的方式來解決這一問題。


在調研的過程中,我發現騰訊雲AI推出的意願核身功能就挺匹配。但意願核身功能會不會被第三方軟體攻擊呢,他們的核驗結果是不是一定準確呢?


帶著這些疑問,我去查閱了官方資料,發現騰訊雲AI 意願核身功能是結合人臉核身與實時音視訊技術打造的一款滿足實名、實人、真實意願的產品,還是首批通過國家信通院人臉識別評估的產品,並且榮獲四級(優秀級)安全防護等級。流程上也很簡單:第一步對客戶的身份證件進行OCR識別,保證身份證的真實性;第二步讓客戶進行人臉核身,保證該客戶身份的真實性;最後讓客戶進行意願核身,保證客戶的真實意願。不僅如此,騰訊雲AI 意願核身也提供了微信小程式、微信H5、SDK等多種接入方式。


接下來,我將詳細講述我是如何接入騰訊雲AI 意願核身的。


1. 準備工作

第一步:開通人臉核身服務

我們先進入騰訊雲AI ,首次使用人臉核身服務的使用者,需要先開通人臉核身服務。直接 點選提交申請,按照實際情況填寫資訊,提交申請。 特別提醒:1. 網際網路行業和金融行業必須上傳業務相關營業資質。 2. 因為 騰訊雲AI  意願核身不僅支援權威庫比對,還  支援客戶自傳照片,所以需要的功能組合為:活體人臉核身(完成活體檢測後照片與權威庫比對)和活體人臉比對(完成活體檢測後照片與上傳照片比對)。

最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

第二步:業務申請

我們可以根據自己的業務需求,選擇相對應的接入模式

需要注意以下幾點:1.  只能個人政務/個人辦理政府業務(政府機構或事業單位)、教育(學校)、醫療(公立醫療機構、網際網路醫院、私立醫療機構)和商業服務(公證)才能使用微信原生H5(浮層模式),其他機構可以使用微信H5(普通模式)。

2. 只有政務民生(政府機構或事業單位)、 教育(學校)、 醫療(公立醫療機構、網際網路醫院、私立醫療機構)、 金融業(銀行、信託、公募基金、證券/期貨、保險、消費金融)、 快遞業與郵政(寄件/收件)、 交通服務(叫車、航空、地鐵、水運、城市交通卡、城市共享交通、火車、公交公司、長途客運、租車、高速服務)、 生活服務(生活繳費)、 IT科技(基礎電信運營商、轉售行動通訊)、 旅遊(酒店服務)、 商業服務(公證)和 社交(直播)才能使用微信小程式。

3. 如果需要申請微信原生H5(浮層模式)和微信小程式,但是沒有對應的微信小程式和公眾號,可以 前往微信公眾平臺 進行申請。

4. 申請微信原生H5(浮層模式)和微信小程式需要相應的 資質檔案

最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

第三步:瞭解騰訊雲AI 意願核身

我們可以先去官網上了解一下 騰訊雲AI 意願核身 、計費錯誤碼等資訊。

最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

第四步:意願核身配置

在相關的業務通過稽核之後,我們需要聯絡騰訊雲AI 人臉核身助手,完成意願核身業務的配置。

最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

第五步: 獲取賬號的雲API金鑰

我們需要個人金鑰。在騰訊雲訪問管理的 ,我們新建了個人金鑰。 注意:所申請的API金鑰需要妥善保管。

最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

2. 接入意願核身

第一步:給騰訊雲AI 意願核身授權

小程式開發需要授權, 開啟二維碼   ,小程式管理員掃碼後,單擊自定義許可權,只勾選人臉核身許可權,將該許可權授權給慧眼第三方平臺,操作步驟如下圖所示:

最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

第二步:給騰訊雲AI 意願核身賦予開啟實時播放/錄製音視訊流許可權

使用騰訊雲AI 意願核身需要開啟實時播放音視訊流 (live-player) 和實時錄製音視訊流(live-pusher),所以我們要登入   微信公眾平臺   開啟對應的許可權 。

最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

第三步:給騰訊雲AI 意願核身域名新增白名單

登入   微信公眾平臺 ,給騰訊雲AI 意願核身需要的域名加白名單許可權 相關操作如下所示:

1. 需要將以下域名新增到 request 合法域名: https://events.tim.qq.com;https://faceid.qq.com;https://grouptalk.c2c.qq.com; https://pingtas.qq.com;https://web.sdk.qcloud.com;https://webim.tim.qq.com;https://yun.tim.qq.com;

2.需要將以下域名新增到 socket 合法域名:wss://wss.im.qcloud.com;wss://wss.tim.qq.com;

3.需要將以下域名新增到 uploadFile 合法域名:https://cos.ap-shanghai.myqcloud.com;https://faceid.qq.com;

4.需要將以下域名新增到 uploadFile 合法域名:https://cos.ap-shanghai.myqcloud.com;https://faceid.qq.com;


最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

第四步:初始化騰訊雲AI 意願核身SDK

下載   ,將 verify_mpsdk 資料夾放到小程式專案根目錄,呼叫 init 方法,初始化意願核身 SDK。 微信小程式接入意願核身,騰訊雲AI 團隊也提供了 ,可以供我們參考。

//app.js
App({
    onLaunch: function () {
        // 初始化意願核身元件
        const Verify = require('/verify_mpsdk/main');
        Verify.init();
    }
})
// app.json
{
    "pages":[
        "verify_mpsdk/index/index"
    ]
}

第五步:後端接入騰訊雲AI 意願核身 實名核身鑑權介面

呼叫騰訊雲AI 意願核身 , 獲取意願核身流程標識BizToken。Java SDK的引入可以參考 Java SDK接入指引 特別提示:需要傳入意願核身所需欄位(欄位名 IntentionVerifyText);SecretId和SecretKey在準備接入的第五步就可以拿到了。 騰訊雲AI 意願核身提供了多種主流語言接入,包含Java、Python、Go等,我們使用的是Java語言,就以Java為例:

import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.faceid.v20180301.FaceidClient;
import com.tencentcloudapi.faceid.v20180301.models.*;
public class DetectAuth
{
    public static void main(String [] args) {
        try{
            // 例項化一個認證物件,入參需要傳入騰訊雲賬戶secretId,secretKey,此處還需注意金鑰對的保密
            // 金鑰可前往網站進行獲取
            Credential cred = new Credential("SecretId", "SecretKey");
            // 例項化一個http選項,可選的,沒有特殊需求可以跳過
            HttpProfile httpProfile = new HttpProfile();
            httpProfile.setEndpoint("faceid.tencentcloudapi.com");
            // 例項化一個client選項,可選的,沒有特殊需求可以跳過
            ClientProfile clientProfile = new ClientProfile();
            clientProfile.setHttpProfile(httpProfile);
            // 例項化要請求產品的client物件,clientProfile是可選的
            FaceidClient client = new FaceidClient(cred, "", clientProfile);
            // 例項化一個請求物件,每個介面都會對應一個request物件
            DetectAuthRequest req = new DetectAuthRequest();
            
            // 返回的resp是一個DetectAuthResponse的例項,與請求物件對應
            DetectAuthResponse resp = client.DetectAuth(req);
            // 輸出json格式的字串回包
            System.out.println(DetectAuthResponse.toJsonString(resp));
        } catch (TencentCloudSDKException e) {
            System.out.println(e.toString());
        }
    }
}

第六步:進入意願核身流程

接入方服務端將 BizToken 返回給接入方小程式,然後小程式呼叫核身方法 startVerify 進入核身流程。 注意:wx.startVerify方法中的BizToken為第二步介面的返回結果。

// 單擊某個按鈕時,觸發該函式
gotoVerify: function () {
    // 去接入方服務端呼叫DetectAuth介面獲取BizToken,需要接入方服務端自行實現
    let BizToken = getBizToken();
    // 呼叫實名核身功能
    wx.startVerify({
        data: {
            token: BizToken // BizToken
        },
        success: (res) => { // 驗證成功後觸發
            // res 包含驗證成功的token
        },
        fail: (err) => {  // 驗證失敗時觸發
            // err 包含錯誤碼,錯誤資訊
        }
    });
}

第七步:後端接入騰訊雲AI 獲取意願核身結果介面

呼叫騰訊雲AI 意願核身   ,拉取意願核身結果。 小程式在完成意願核身之後,回撥我們的後臺,我們的後臺通過獲取意願核身結果介面和第二步生成的BizToken,去騰訊雲AI 意願核身後臺拉去使用者意願核身結果。下面的SecretId和SecretKey在準備接入的第五步就可以拿到了。

騰訊雲AI 意願核身提供了多種主流語言接入,包含Java、Python、Go等,我們使用的是Java語言,就以Java為例:

import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.faceid.v20180301.FaceidClient;
import com.tencentcloudapi.faceid.v20180301.models.*;
public class GetDetectInfoEnhanced
{
    public static void main(String [] args) {
        try{
            // 例項化一個認證物件,入參需要傳入騰訊雲賬戶secretId,secretKey,此處還需注意金鑰對的保密
            // 金鑰可前往網站進行獲取
            Credential cred = new Credential("SecretId", "SecretKey");
            // 例項化一個http選項,可選的,沒有特殊需求可以跳過
            HttpProfile httpProfile = new HttpProfile();
            httpProfile.setEndpoint("faceid.tencentcloudapi.com");
            // 例項化一個client選項,可選的,沒有特殊需求可以跳過
            ClientProfile clientProfile = new ClientProfile();
            clientProfile.setHttpProfile(httpProfile);
            // 例項化要請求產品的client物件,clientProfile是可選的
            FaceidClient client = new FaceidClient(cred, "", clientProfile);
            // 例項化一個請求物件,每個介面都會對應一個request物件
            GetDetectInfoEnhancedRequest req = new GetDetectInfoEnhancedRequest();
            
            // 返回的resp是一個GetDetectInfoEnhancedResponse的例項,與請求物件對應
            GetDetectInfoEnhancedResponse resp = client.GetDetectInfoEnhanced(req);
            // 輸出json格式的字串回包
            System.out.println(GetDetectInfoEnhancedResponse.toJsonString(resp));
        } catch (TencentCloudSDKException e) {
            System.out.println(e.toString());
        }
    }
}

3. 意願核身效果展示

下面就是我們接入意願核身的效果展示了,效果還是很不錯的。

https://cloud.tencent.com/developer/video/31897

4. 查詢呼叫量

開啟騰訊雲AI 人臉核身的控制檯,點選計費統計,就可以看到意願核身的計費量情況。

最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

通過許可權管理模組,主賬號可以向子賬號授權,被授權的子賬號就可以看見所有子賬號的呼叫情況。

最佳實踐 | 用騰訊雲AI意願核身為電話合規保駕護航

瞭解更多騰訊雲AI意願核身產品資訊:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014348/viewspace-2904626/,如需轉載,請註明出處,否則將追究法律責任。

相關文章