Webhook 與整合
身份驗證 webhook、託管頁面同小工具。
將申請人送往託管驗證頁面,或者將小工具嵌入你自己嘅流程,結果一出就收到已簽署嘅 webhook,並讓持有連結嘅任何人喺公開憑證查核頁面確認結果。一個可以喺一個下午內上線嘅 KYC API 整合。
- HMAC-SHA256 簽署嘅回呼
- 由桌面電腦到手機嘅 QR 碼交接
- Sandbox 工作階段從不收費
託管驗證頁面
一條連結,完成整個流程。
透過 API 建立會話,就會取得一個驗證 URL。你可以經電郵、短訊或者喺你自己嘅應用程式內發送 — 其餘交俾頁面處理。
桌面電腦
申請人喺書桌前打開連結。
QR 交接
頁面顯示一個 QR 碼同一張簡短說明卡。
手機擷取
掃描後,同一個工作階段會切換到文件同自拍擷取。
已驗證
工作階段達到 VERIFIED,依然係喺手機上。
返回你呢邊
無論結果如何,都會重新導向到你嘅返回網址,並發出一個已簽署嘅 webhook。
運作方式好似付款重新導向
申請人會去到你會話專屬 URL 嘅頁面。唔使開戶口,亦唔使安裝應用程式。
QR 轉交,由桌面電腦轉到手機
喺桌面電腦開啟時,頁面會顯示 QR code 同一張簡短說明卡,而唔係要求相機存取權限。掃描後會喺手機開啟同一條連結,並直接轉入證件同自拍拍攝。
帶住答案返回你度
會話一旦達到 VERIFIED,頁面就會重新導向至你嘅返回 URL,並附上會話 ID 同狀態,令你嘅應用程式毋須等其他嘢,就知道發生咗咩事。
合資格方案可用品牌化設定
你嘅公司名稱、標誌、強調色,以及條款同私隱連結,會套用於託管頁面同憑證檢查頁面。
Webhooks
結果一出,即時送出已簽署回呼。
建立會話時提供一個 webhook URL,會話一完成,我哋就會即時將結果發送到該處,毋須輪詢。
有簽署,唔止係發送
每次遞送都帶有 X-Bio-Signature 標頭:即請求內容嘅 HMAC-SHA256,等你信任之前可以證明內容確實來自我哋。
會重試,唔係發完就算
遞送失敗會重試三次,每次嘗試前等待時間都會愈來愈長。
每次嘗試都有紀錄
不論成功定失敗,我哋都會喺我哋嘅一方保留該次嘗試嘅紀錄。
即將推出 入口網站內嘅遞送紀錄(等你可以自己睇到每次嘗試)即將推出。
以最新嘅 VERIFIED 為準
重試意味住遞送喺罕見情況下可能亂序送到。根本唔好以有無收到 webhook 作為邏輯依據 — 應該以會話 ID 為依據,並讓較後嘅 VERIFIED 覆蓋較早嗰個。如果你自己保存狀態,請按會話 ID 去重,而唔係按收到 webhook 去重。
驗證簽署
先信任載荷內容,再採取行動。
喺解析任何內容之前,先對原始請求主體重新計算 HMAC-SHA256,並同 X-Bio-Signature 比對。
const crypto = require("crypto");
function verifySignature(rawBody, signatureHeader, secret) {
const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
const a = Buffer.from(expected, "hex");
const b = Buffer.from(signatureHeader || "", "hex");
return a.length === b.length && crypto.timingSafeEqual(a, b);
}
// Read the raw body — don't let a JSON body-parser touch it first.
app.post("/hooks/shieldid", express.raw({ type: "application/json" }), (req, res) => {
const signature = req.header("X-Bio-Signature") || "";
if (!verifySignature(req.body, signature, process.env.SHIELDID_WEBHOOK_SECRET)) {
return res.status(401).send("invalid signature");
}
const event = JSON.parse(req.body);
// Treat the latest VERIFIED status as authoritative; de-duplicate by session_id.
res.status(200).send("ok");
});JS widget
託管流程,直接放入你自己嘅頁面。
Widget 會建立會話,並喺 iframe 內以內嵌方式呈現同一個託管流程,令申請人唔使離開你嘅網站。
- 喺 iframe 內呈現,具備相機同麥克風存取權限,大小配合其容器。
- 以同託管頁面一樣嘅方式讀取會話狀態:會話完成後,經你嘅返回 URL 同 webhook。
即將推出 頁內完成回呼(onComplete、onCancel、onStep、自動調整大小)即將推出。在此之前,請使用 return_url 同 webhook 得知會話幾時完成——兩者現已可用。
部署到正式環境之前
小工具目前接受直接喺瀏覽器入面使用 API 金鑰。請視之為 sandbox 嘅方便做法,而非正式環境嘅模式:請由你自己嘅後端建立會話,金鑰只保存喺伺服器端,並只將所得嘅會話交俾小工具,千祈唔好交出訪客瀏覽器讀取到嘅正式金鑰。
<script src="https://cdn.shieldid.ca/sdk/v1/widget.js"></script>
<div id="shieldid-verify"></div>
<script>
TLVerify.init({
apiKey: "vk_sand_your_key", // sandbox only — see the note above for production
containerId: "shieldid-verify",
returnUrl: "https://yourapp.example/verified",
webhookUrl: "https://yourapp.example/hooks/shieldid",
locale: "en",
});
</script>憑證查核頁面
供已驗證會話使用嘅公開頁面。
會話一旦達到 VERIFIED,其專屬嘅憑證查核連結就會顯示淺白嘅確認內容:申請人姓名、文件類型同狀態。任何持有連結嘅人——共同簽署人、前台職員、交易對手——都可以確認結果,毋須登入你嘅儀表板。
Jordan Reyes
範例資料加州駕駛執照
已驗證
- 查看毋須登入。
- 頁面上永遠唔會出現原始證件圖像,亦唔會出現信心分數——只有狀態同身份,冇其他。
- 外觀品牌同託管頁面一致,適用於合資格方案。
整合模式
六類企業點樣接駁。
基本組件喺各處都一樣:一個會話、一條連結或一個小工具、一個 webhook。邊種模式啱用,就視乎你幾時、點樣需要答案。
法律及律師事務所
共管公寓及 HOA 業主協會
金融科技及借貸
市集及零工平台
E-signature
問題
有關整合嘅直接解答。
立即開始
設定 webhook,睇住佢觸發。
建立一個附有 webhook URL 嘅 sandbox 會話,用你自己部手機做一次驗證,然後查看佢發出嘅已簽署回呼。