Skip to main content
如果你嵌入 Fluz widget,驗證即隨之而來。你不需要建置驗證流程、收集身分欄位或處理證件——widget 會將驗證作為一道關卡,在讓顧客繼續之前先通過它。 這是唯一一條顧客身分資訊完全不會接觸你基礎架構的路徑,通常也是選擇此方式的決定性因素。
先決條件
  • 已在 Developer Portal 設定的 widget 應用,且完成 OAuth 設定。請參考 設定 App Widget
  • 你的應用需由 Fluz 啟用 VERIFY_KYC scope。請參考 必要的 scope
  • 已註冊的 webhook 端點。請參考 驗證客戶

驗證在流程中的位置

驗證是 widget 既有順序中的一個步驟,而非獨立的整合:
1

Your page calls FluzEmbedded.init()

Widget 會在 iframe 中開啟。
2

The customer signs in or registers

若顧客尚未擁有 Fluz 帳戶,widget 會為其建立一個。
3

The widget checks verification status

若顧客已通過驗證,將直接往下進行;若未通過,則在此執行驗證。
4

The customer completes any remaining steps

設定 PIN 與授權 OAuth scopes。
5

The customer completes their transaction

確認,然後完成。
由於驗證位於交易之前,無法通過驗證的顧客將完全不會進入交易步驟。

顧客會看到什麼

當未驗證的顧客抵達關卡時,widget 會先在背景嘗試靜默驗證。許多顧客在此階段即可通過,而不需提供任何資訊。 若未能解決,widget 會在 iframe 內呈現驗證表單,並預先填入 Fluz 既有資料。顧客檢閱、補齊缺漏並送出。之後 widget 會顯示等待狀態,處理完成後自動繼續。 若驗證仍未成功,widget 會將顧客升級至文件驗證——於同一個 iframe 內擷取其政府核發的身分證件與自拍照。
以上全都在 widget 內完成。你不需要偵測顧客目前的階段,也不需自行觸發升級。

Scopes

Widget 應用會在 OAuth 授權步驟中自動請求所需的 scopes,包括 VERIFY_KYC。你不需要手動把它加入 widget 的 scope 清單。 你仍需讓 Fluz 在應用本身啟用 VERIFY_KYC。若未啟用,widget 會因權限不足而載入失敗,而不是略過驗證。
產生要以 patToken 傳給 widget 的短期權杖時,請在 Authorization: Basic 標頭使用你的 API Key——不是 OAuth client ID,也不是你的 app_id。使用錯誤的值是導致 widget 載入失敗的最常見原因。請參考 取得你的 API 憑證

知道驗證結果

Widget 會直接告知顧客結果,但你的應用不應從 widget 關閉來推斷驗證狀態。請改用 webhooks。 當顧客在 widget 中開始驗證時,Fluz 會發出 WIDGET_KYC_INITIATION。這需要 VERIFY_KYC scope。
此事件標記驗證的開始,而非結果。使用 externalReferenceId 將事件對應到你自己的顧客紀錄,並同時訂閱驗證結果相關事件,以便得知最終結果。請參考 Webhooks

將 widget 與 API 結合

Widget 與 API 在每位顧客上共用一個驗證狀態,因此兩種方式可以無縫組合:
  • 透過 API 完成驗證的顧客,會直接通過 widget 的關卡。
  • 在 widget 完成驗證的顧客,對你的 API 呼叫同樣視為已驗證。
  • 在任一通路用盡嘗試次數的顧客,在兩邊都視為已用盡。
若你在導入期間以 API 驗證顧客,並於後續交由 widget,請檢查顧客目前的驗證狀態,而非假設 widget 會再提供一次嘗試。

測試

在測試環境中以發佈的測試身分執行完整的 widget 流程,包括刻意的拒絕情境,以便看到升級至文件驗證。測試環境的 widget 會指向 staging 環境而非生產環境——請確認你載入的是 staging 的 widget script 與 base URL。請參考 測試 KYC 流程Staging 與正式環境