ベスト プラクティス | Tencent Cloud Smart Eyes Face Core を使用して整合性試験をエスコートする

クリックして参加: Tencent Cloud AI ユーザー実践賞を受賞した提出活動!

2020年に新型コロナウイルス感染症が流行して以降、各国の試験は大なり小なり影響を受けており、各国の受験者にとって「延期」「中止」「追試験」がキーワードとなっている。従来の意味でのオフライン試験作業 群衆が集まるリスクが増大し、手動の試験監督モデルに大きく依存しているため、人的および物的リソースのコストが増加しています。

その後、オンライン試験の波が到来し、キャンパスから職場まで、特に学力試験、トレーニング、認定試験などが疫病の影響ですべてオンラインに移行し、さまざまな業界でオンライン試験の需要が爆発的に増加しました。オンライン試験の主な問題の 1 つは、ユーザーがプラットフォームの登録から試験ログインまで実名の本人確認を必要とすることです。手動による確認に依存すると、必然的に多くの人的資源と財政的リソースが消費されます。では、もっと賢い方法はあるのでしょうか?

私は開発者として、多くのオンライン トレーニングや認定試験にも参加してきましたが、調査の結果、製品の使いやすさと費用対効果の観点から、Tencent Cloud Smart Eye Face Kernel は試験分野で成熟したアプリケーションを備えていることがわかりました。試験利用者の本人確認に対応できるだけでなく、試験中に違反がないかどうかをランダムに選択してチェックする必要がある場合は、顔認識などの機能と組み合わせて不正行為防止管理を実現することもできます。

次に、Tencent Cloud Eyes の顔認証機能を使用して、オンライン試験中にユーザーの本人確認を完了する方法を詳しく説明します。

1. 準備作業

準備作業には、顔認証サービスの有効化、ビジネス アプリケーション、Tencent Cloud Huiyan 顔認証構成の理解、アカウントのクラウド API キーの取得が含まれます。以下の 5 つの手順について詳しく説明します。

ステップ 1: 顔認証サービスを有効にする

まず、Tencent Cloud Huiyan顔照合コンソールに入りましょう. 初めて顔照合サービスを使用するユーザーは、まず顔照合サービスをアクティブ化する必要があります。直接「申請を送信」をクリックし、実際の状況に応じて情報を入力し、申請を送信してください。

特別なリマインダー:

1. インターネット業界と金融業界はビジネス関連の資格をアップロードする必要があります。

2. Tencent Cloud E-Pass サービスは、権威データベースの比較をサポートするだけでなく、顧客の ID カード写真の自撮りもサポートするため、必要な機能の組み合わせは次のとおりです。 生体顔認証 (生体検出完了後に写真を権威データベースと比較)および身元情報の実名検証 (2 つの要素)。

ステップ 2: ビジネス アプリケーション

顔認証サービスを正常にアクティブ化したら、セルフサービス アクセス ページに入ります。現在、電子証明書サービスは企業の実名認証を完了した Tencent Cloud ユーザーのみを対象として開発されており、サービスを利用する前に企業の資格審査に合格する必要があります。

「認証ガイド」ボタンをクリックして「エンタープライズ アカウント認証ガイド」ページに入り、ガイドラインに従ってエンタープライズ アカウントの実名認証を完了します。

エンタープライズ認証が完了したら、マーチャント ID を申請し、電子証明書サービスを開始できます。

ステップ 3: Tencent クラウド電子証明書サービスを理解する

まずは、公式サイトの製品紹介ページで電子証明書サービスの機能やメリットについて知ることができます。

ステップ 4: アカウントのクラウド API キーを取得する

個人キーが必要です。Tencent Cloud Access Management のAPI キー管理ページで、新しい個人キーを作成しました。注: 適用された API キーは適切に保管する必要があります。

2. 電子証明書の顔認証サービスにアクセスします

ステップ 1: アクセス文書を表示し、アクセス方法を選択します

まず、電子証明書アクセス文書を確認します。左側のディレクトリ列で、電子証明書アプレット アクセス、電子証明書アプレット アクセス (ユニアプリ)、電子証明書の 3 つのアクセス方法があることがわかります。アプレット アクセス Zhengtong H5 アクセス。このうち、電子証明書ミニ プログラム アクセスと電子証明書ミニ プログラム アクセス (ユニアプリ) は、アクセス当事者のミニ プログラムと eID ミニ プログラム間の対話ロジックを実現するために WeChat ミニ プログラムのサポートを必要としますが、H5 アクセス方法のみが必要です。アクセス側がバックグラウンドで電子証明書サービス インターフェイスを呼び出すと、ユーザーがアクセスできる H5 ページを取得できます。

オンライン試験の本人確認申請シナリオと組み合わせて、アクセスには H5 ベースの電子証明書サービスを選択しました。

ステップ 2: インタラクションプロセスを決定する

E-Certificate H5 アクセス ガイドを見ると、E-Certificate H5 アクセス方法では、E-Certificate バックエンド インターフェイスとの 2 つの対話が必要であることがわかります。つまり、最初に EidToken と検証 URL を取得し、候補の後に取得します。検証プロセスが完了します。結果を検証します。検証結果を取得するにはポーリング方式とリダイレクト方式があり、今回はリダイレクト方式を選択します。シーケンス図は以下のとおりです。

このうち、アクセス パーティーのフロント エンドは候補者の個人 WeChat であり、アクセス パーティーのサーバー エンドは私たちが実装したアクセス ロジックです。実装プロセス全体は次のとおりです。

1. アクセス当事者が GetEidToken を呼び出すインターフェイスを指す QR コードを候補者に発行します。

2. 受験者はWeChatを使用してQRコードをスキャンし、カーネルURLで指定されたH5ページにジャンプし、IDカードのOCR認識と顔認証の本人確認を実行し、認証完了後、RedirectUrlで指定されたアクセスが自動的に呼び出され、取得されます。検証結果 Square バックエンド インターフェイス。

3. E-Certificate のリダイレクト メソッドは、RedirectUrl で指定されたインターフェイスにトークンをパラメーターとして自動的に渡すため、結果を取得するためのアクセス側のインターフェイスはトークンを取得し、E-Certificate バックエンドによって提供される GetEidResult インターフェイスを呼び出すことができます。検証結果が得られます。

このプロセスは、以下の実際の使用法ページのフローチャートでわかりやすく説明できます。

ステップ 3: アクセスの実装

2 番目のステップの分析に基づいて、電子証明書 H5 メソッドへのアクセスを完了するには、2 つのアクセス パーティ バックエンド インターフェイスを実装するだけで済みます。同時に、QR コードをスキャンして本人確認を開始するために、 getToken ポインターを実装する必要がある QR コードのインターフェイス。main 関数で 3 つのインターフェイスが開かれ、次のように実装されます。

func main() {
   // http请求路径和接口名
   http.HandleFunc("/gettoken", getToken)
   http.HandleFunc("/redirect", getResult)
   http.HandleFunc("/getqrcode", getQRCode)

   // 在IP:Port开启服务
   err := http.ListenAndServe("ServerIP:Port", nil)
   if err != nil {
      fmt.Println("ListenAndServe Error:", err.Error())
   }
}

3 つの http インターフェイスの実装は次のとおりです。

1. getToken インターフェイス: 候補者によってトリガーされ、電子証明書バックエンド GetEidToken が呼び出され、コア URL が取得され、候補者は顔認識認証を実行します。Go ベースの実装は次のとおりです。

func getToken(w http.ResponseWriter, req *http.Request) {
   credential := common.NewCredential(
      "SecretId",
      "SecretKey",
   )
   cpf := profile.NewClientProfile()
   cpf.HttpProfile.Endpoint = "faceid.tencentcloudapi.com"
   client, _ := faceid.NewClient(credential, "", cpf)

   request := faceid.NewGetEidTokenRequest()

   // 装填参数
   merchantId := "MerchantId"
   redirectUrl := "http://ServerIP:Port/redirect"
   request.MerchantId = &merchantId
   request.RedirectUrl = &redirectUrl

   // 发起调用
   response, err := client.GetEidToken(request)
   if _, ok := err.(*errors.TencentCloudSDKError); ok {
      fmt.Printf("An API error has returned: %s", err)
      return
   }
   if err != nil {
      panic(err)
   }
   // 控制前端H5页面跳转
   http.Redirect(w, req, *response.Response.Url, 302)
}

2.getResult インターフェイス: RedirectUrl は、候補者が H5 ページでの検証を完了した後、電子証明書フロントエンドが自動的にそれを呼び出し、検証トークンを渡して検証結果を取得することを指定します。Go での実装は次のとおりです。

func getResult(w http.ResponseWriter, req *http.Request) {
   credential := common.NewCredential(
      "SecretId",
      "SecretKey",
   )

   cpf := profile.NewClientProfile()
   cpf.HttpProfile.Endpoint = "faceid.tencentcloudapi.com"
   client, _ := faceid.NewClient(credential, "", cpf)

   request := faceid.NewGetEidResultRequest()
   // 装填参数
   err := req.ParseForm()
   if err != nil {
      fmt.Println(err.Error())
   }
   token, found := req.Form["token"]
   if !found {
      fmt.Println("参数解析出错")
   }
   request.EidToken = &token[0]
   // 发起结果查询
   response, err := client.GetEidResult(request)
   if _, ok := err.(*errors.TencentCloudSDKError); ok {
      fmt.Println("An API error has returned: %s", err)
      return
   }
   if err != nil {
      panic(err)
   }
   // 获取结果信息
   code := response.Response.Text.ErrCode
   name := response.Response.Text.Name
   if *code == 0 {
      res := "认证通过,该用户是" + *name
      fmt.Println(res)
      fmt.Fprint(w, res)
   } else {
      res := "!!!认证未通过,该用户不是" + *name
      fmt.Println(res)
      fmt.Fprint(w, res)
   }
}

3. QR コードを取得するためのインターフェイスの実装コードは次のとおりです。

func getQRCode(w http.ResponseWriter, req *http.Request) {
   err1 := req.ParseForm()
   if err1 != nil {
      fmt.Println(err1.Error())
   }
   url := "http://ServerIP:Port/gettoken"
   // 设置http响应头首部行
   w.Header().Set("content-type", "image/png")
   w.Write(stringToQR(url))
}

// 字符串转二维码
func stringToQR(url string) []byte {
   res, err := qrcode.Encode(url, qrcode.Medium, 256)
   if err != nil {
      fmt.Println(err.Error())
   }
   return res
}

アクセス プロセスでは、公式ドキュメントの API インターフェイスの例を最大限に活用して、インターフェイスの呼び出しフレームワーク コードを取得でき、その中で独自のロジックを完成させるだけで済みます。ここでは電子証明書トークンの取得を例に、公式API呼び出し例の使い方を説明します。まず、電子証明書アクセス ページの [電子証明書トークンの取得] をクリックして、インターフェイス呼び出しの説明ページに入ります。

次に、インターフェイスの説明ページで [クリックしてデバッグ] を選択してインターフェイス デバッグ インターフェイスに入り、言語を選択してコードをコピーします。 

3.エフェクト表示

最後に、携帯電話が PC によって提供されるサービスにアクセスできるように、同じネットワーク セグメント上にテスト環境をセットアップしました (実際のシナリオでは、サービスは公衆ネットワーク上に展開できます)。最終的な完全なテスト結果は次のとおりです。 :ビデオを見る

おすすめ

転載: blog.csdn.net/tencentAI/article/details/126969959