3D Secure 是什麼?3DS 驗證如何運作,對商戶意味着什麼
3D Secure 是什麼、3DS 驗證如何運作、無感驗證與挑戰驗證的區別、3D Secure 驗證為什麼會失敗,以及上線前如何在沙箱裏測試。
本文目錄
3D Secure(3DS)是網上銀行卡付款中的一道額外檢查:由發卡行確認付款人就是持卡人本人,通常通過銀行 App 裏的確認、短信一次性驗證碼,或手機上的生物識別完成。Visa 把它叫作 Visa Secure,Mastercard 叫 Identity Check,但它們是同一套協議,目前的版本是 EMV 3-D Secure(3DS2)。
對商戶來説,3D Secure 驗證重要在三點:它讓發卡行願意批准原本可能拒絕的付款;對於盜刷類拒付,責任通常會從你轉移到發卡行;在歐洲,它是滿足強客戶認證要求的方式。這篇文章説明 3DS 如何運作、無感驗證與挑戰驗證的區別、3D Secure 驗證為什麼會失敗,以及它在 KukoPay 收銀台上的表現。
3D Secure 是如何運作的?
一筆 3DS 付款,在買家提交卡片和發卡行做決定之間多了一步:
- 買家在收銀台輸入銀行卡。
- 收銀台把這筆付款的信息發給發卡行:金額、商戶、設備和瀏覽器信息。
- 發卡行評估風險並選擇流程:
- 無感驗證(frictionless):信息足以讓它放心,買家什麼都看不到,付款繼續;
- 挑戰驗證(challenge):買家需要證明是本人,在銀行 App 裏確認、輸入驗證碼或用生物識別。
- 發卡行授權或拒絕這筆付款,此時它已經知道持卡人是否通過了驗證。
版本差異就體現在這裏。早期的 3DS1 會把每位買家都帶到一個密碼頁,影響轉化。3DS2 共享的信息多得多,所以大部分付款無需挑戰就能通過,真正出現的挑戰也能在手機上的銀行 App 裏完成。
為什麼 3D Secure 對商戶很重要?
跨境付款被發卡行拒絕的更少
面對一筆付給陌生境外商戶的款項,如果自己的客戶剛剛確認過,發卡行更願意批准。沒有驗證,其中一部分付款會以通用的「do not honor」告終,這個代碼的含義見 銀行卡支付被拒怎麼辦。
盜刷拒付的責任轉移
一筆付款通過了 3D Secure 驗證,持卡人事後聲稱不是本人所為時,卡組織規則通常會把這筆盜刷拒付的責任轉移給發卡行。具體取決於卡組織和拒付原因。有兩點限制值得了解:
- 它針對的是盜刷類申訴,不包括「未收到貨」或「與描述不符」這類爭議,這些仍然需要你提供證據;
- 它不是忽視拒付率的理由,拒付仍然會計入拒付率。
拒付如何凍結資金、什麼樣的證據能贏,見 信用卡拒付是什麼。
歐洲的強客戶認證
根據歐洲經濟區和英國的 PSD2 規定,消費者的大部分網上銀行卡付款都需要強客戶認證(SCA),而 3D Secure 正是銀行卡付款滿足這一要求的方式。如果你向歐洲買家銷售,他們的發卡行會更頻繁地要求 3DS。
無感驗證和挑戰驗證,買家看到的有什麼不同?
| 流程 | 發生了什麼 | 買家看到什麼 |
|---|---|---|
| 無感驗證 | 發卡行僅憑信息就放心了 | 沒有額外步驟,付款直接完成 |
| 挑戰驗證 | 發卡行需要證明 | 銀行 App 提示、短信驗證碼或生物識別,然後回到收銀台 |
一筆付款走哪種流程由發卡行決定,而不是商戶。你要做的是確保挑戰出現時能夠完成:收銀台能把它顯示出來,買家也有足夠的時間完成。
3D Secure 驗證為什麼會失敗?
3D Secure 驗證失敗,通常是以下幾種情況之一:
- 買家沒有完成挑戰:關閉了窗口、驗證碼過期,或銀行 App 的提示超時;
- 買家沒通過:驗證碼輸錯,或在 App 裏拒絕了;
- 發卡行無法完成驗證:卡片或發卡行對它的支持不完善,或銀行的服務暫時不可用。
在 KukoPay 收銀台上,買家會看到「銀行卡驗證未通過,請重試或更換支付方式」,並可以馬上重試。
3D Secure 在 KukoPay 上是怎樣處理的?
你不需要單獨對接 3D Secure。發卡行要求驗證時,託管收銀台會顯示它的挑戰頁面,結果通過正常的訂單流程告訴你:
- 驗證成功 → 訂單變為
paid,你會收到payment.succeeded,即使買家驗證完就關閉了瀏覽器也一樣。 - 驗證失敗 → 訂單保持
pending;買家可以在同一個checkout_url上重試或換一種支付方式。 - 買家沒完成驗證就回來了 → 未完成的支付會先被取消,再發起新的支付,所以之後在舊驗證頁上的操作不會重複扣款。如果發現買家其實已經完成了驗證,就按那筆付款入賬,不會讓他再付一次。
你這一側有兩件事,能避免 3DS 讓你流失訂單:
- 在你自己的取消時間之前留出餘量。 如果你的系統會取消未付款訂單,下單時傳
expires_at,並在你的截止時間之前留幾分鐘,讓最後一刻開始的挑戰有時間完成。見 統一下單。 - 以 Webhook 履約,而不是回跳。 挑戰會把買家帶走再帶回來,而回跳不能證明已付款,原因見 return_url 和 notify_url 的區別。
卡號在託管收銀台中輸入,從不經過你的服務器,所以 3DS 不會給你增加任何處理卡數據的負擔。
如何在沙箱裏測試 3D Secure
使用 3D Secure 測試卡 4000 0000 0000 3220,有效期填任意未來日期,安全碼填任意 3 位數字。沙箱會打開一個測試驗證頁,你可以選擇:
- 完成驗證:訂單變為已支付,並發送
payment.succeeded; - 驗證失敗:訂單保持
pending,收銀台讓買家再試一次; - 或者兩個都不選,直接回到收銀台,以確認之後在舊頁面上的操作不會扣款。
其他測試卡和沙箱場景整理在 支付測試卡號大全 和 沙箱測試 裏。
3D Secure 會降低轉化率嗎?
如果每筆付款都要挑戰,會的,3DS1 就是這樣。在 3DS2 下,大部分通過驗證的付款都是無感的,在買家自己的銀行 App 裏完成挑戰也很快。真正要權衡的是另一面:一筆因為缺少驗證而被拒的跨境付款,或者一筆本可避免的盜刷拒付,代價通常遠大於在銀行 App 裏多花的幾秒鐘。錢包能進一步減少麻煩:Apple Pay 和 Google Pay 在設備上完成驗證,中國大陸的買家可以用支付寶或微信支付(見 海外商戶如何接入支付寶和微信支付收款)。
總結
- 3D Secure 讓發卡行在批准付款前確認買家就是持卡人;
- 3DS2 按每筆付款決定無感驗證或挑戰驗證,大部分買家不會多看到任何步驟;
- 它有助於提高跨境付款的通過率,通常會把盜刷拒付的責任轉移給發卡行,並滿足歐洲的強客戶認證;
- 在 KukoPay 上,收銀台替你完成挑戰;驗證失敗時訂單保持待支付,可以重試;
- 為最後一刻的挑戰留出時間,以 Webhook 履約,並用
4000 0000 0000 3220測試。
在沙箱裏把它跑通
註冊商戶後即可申請測試密鑰,不需要等待資質審核。