銀行卡支付被拒怎麼辦?do not honor 等拒絕代碼的含義與處理方法
銀行卡支付被拒絕代碼詳解:do not honor、餘額不足、安全碼錯誤分別代表什麼,軟拒絕與硬拒絕的區別,以及商戶如何挽回這筆訂單。
本文目錄
銀行卡支付被拒時,發卡行會給出一個拒絕代碼,説明它為什麼不同意這筆付款。有的代碼很明確,比如 insufficient_funds(餘額不足)、expired_card(卡已過期)、incorrect_cvc(安全碼錯誤),買家一看就知道該改什麼。有的則不然:「do not honor」(do_not_honor,也寫作 generic_decline 或代碼 05)表示發卡行拒絕了,卻選擇不説原因。
對商戶來説,拒絕代碼決定了下一步:請買家改正某項信息、稍後再試,還是換一種方式付款。這篇文章解釋最常見的拒絕代碼、軟拒絕與硬拒絕的區別、跨境付款為什麼更容易被拒,以及在 KukoPay 收銀台上,一筆被拒的支付會怎樣處理。
注意:銀行卡被拒發生在扣款之前,和支付成功之後買家發起的拒付(chargeback)是兩回事,下文最後會專門區分。
「do not honor」是什麼意思?
「do not honor」是發卡行的通用拒絕:發卡銀行拒絕了這筆付款,但沒有把原因告訴商戶和支付平台。從買家這一側看,常見原因有:
- 發卡行的風控攔截了這筆付款:金額異常、商戶陌生,或者是一筆來自其他國家的付款;
- 卡片有限制,不能用於網上、境外或某些類型的消費;
- 賬戶上有臨時凍結或額度限制;
- 某項信息不匹配,部分發卡行也會用通用拒絕來表示。
因為原因在發卡行那裏,商戶和支付平台都無法繞過「do not honor」。解決辦法在買家手上:先向銀行確認這筆付款(通常在銀行 App 裏就能操作),然後重試,或者換一張卡、換一種支付方式。
最常見的銀行卡拒絕代碼
不同卡組織和通道的代碼寫法不完全一樣,但含義是一致的。最後一列是 KukoPay 收銀台向買家顯示的提示。
| 拒絕代碼 | 含義 | 買家可以怎麼做 | 收銀台提示 |
|---|---|---|---|
do_not_honor、generic_decline、card_declined | 發卡行拒絕,未給原因 | 聯繫銀行,或換一張卡、換一種方式 | 銀行卡被發卡行拒絕 |
insufficient_funds | 餘額或額度不足 | 換一張卡,或資金到賬後再試 | 卡內餘額不足 |
expired_card | 卡已過有效期 | 使用有效的卡 | 銀行卡已過期 |
incorrect_cvc / invalid_cvc | 安全碼錯誤 | 重新輸入安全碼 | 安全碼(CVC)不正確 |
incorrect_number | 卡號錯誤 | 重新輸入卡號 | 卡號不正確 |
card_not_supported | 這張卡不能用於此類付款 | 換一張卡或換一種方式 | 該銀行卡不支持此類付款 |
currency_not_supported | 這張卡不能用訂單幣種付款 | 換一張卡或換一種方式 | 該銀行卡不支持此幣種 |
card_velocity_exceeded | 達到消費次數或金額上限 | 稍後再試,或換一張卡 | 銀行卡已超出交易限額 |
authentication_required | 需要 3D Secure 驗證但沒有通過 | 重試並完成銀行的驗證 | 銀行卡驗證未通過 |
processing_error | 處理過程中出錯,不是發卡行拒絕 | 稍後重試 | 支付處理出錯 |
涉及欺詐的代碼,比如卡片已掛失或被盜、付款被標記為欺詐,刻意沒有列在表中。把觸發了哪項檢查告訴操作的人,正是卡組織要求支付通道不要做的事,所以這類拒絕和「do not honor」顯示同一句通用提示。
軟拒絕和硬拒絕有什麼區別?
拒絕代碼分為兩類,類別決定了值不值得重試:
- 軟拒絕是暫時的或可以修正的:
insufficient_funds、incorrect_cvc、processing_error、authentication_required,很多時候也包括do_not_honor。改正信息、在銀行 App 裏確認,或者稍後再試,都可能成功。 - 硬拒絕重試也不會改變:卡已過期、掛失、被盜或已註銷,或者這張卡根本不支持這筆付款。買家需要換一張卡或換一種方式。
無論哪一類,都不要用同一張卡自動反覆重試。 在被拒的卡上連續嘗試,在發卡行和風控系統看來像是盜卡測試,反而會讓下一次正常付款更難通過。讓買家自己決定是否再試。
為什麼跨境銀行卡支付更容易被拒?
在發卡行的風控模型裏,一筆付給境外商戶的款項不如本地付款那樣「熟悉」,而有些卡本身就沒有開通境外或網上消費。這就是「do not honor」在跨境付款裏比本地付款更常見的原因。有三件事能幫上忙:
- 提供不止一種付款方式。 卡被拒的買家還可以用錢包完成付款。Apple Pay 和 Google Pay 用的是買家已經在手機上驗證過的卡;中國大陸的買家可以改用支付寶或微信支付,見 海外商戶如何接入支付寶和微信支付收款。
- 讓 3D Secure 發揮作用。 發卡行要求買家驗證時,一次完成的驗證比一筆未驗證的付款更能讓它放行。
- 讓收銀台看起來就是你。 付款頁上有買家認得的商戶名稱和品牌、用買家的語言顯示,放棄付款的買家更少,事後對扣款提出異議的也更少。網站如何接收國際付款 講了幣種、語言和支付方式。
在 KukoPay 上,銀行卡被拒之後會怎樣?
一次被拒並不意味着訂單結束:
- 訂單保持
pending。 收銀台用買家能理解的話、以收銀台的語言提示原因,同一個checkout_url仍然可用:買家可以改正信息、換一張卡或換一種支付方式,收銀台會為他重新發起一筆支付。 - 不扣款,也不收你的手續費。 手續費只對成功支付收取,所以被拒的嘗試不花你一分錢,見 跨境收款手續費怎麼算。
- 訂單只在最後才失敗或過期。
payment.failed表示通道已判定這筆支付終態失敗;沒人完成付款的收銀台在鏈接到期時(默認 24 小時)關閉為expired,並發送payment.expired。 - 通道的原始説明留給客服查詢。 它會出現通道名稱、是寫給開發者看的,所以正式環境的買家永遠看不到,但會和這次支付嘗試一起記錄下來;需要查詢時提供訂單的
trade_no即可。
商戶應該如何處理被拒的支付?
- 不要因為買家説卡被拒了、或者買家離開了頁面,就把訂單標記為失敗。 以 Webhook 為準:收到
payment.succeeded再發貨,收到payment.failed或payment.expired再釋放庫存。只訂閲成功事件,死單就無從發現,見 Webhook。 - 回跳也不能當作結果,無論成功還是失敗,原因見 return_url 和 notify_url 的區別。
- 讓買家回到同一個收銀台鏈接重試。 它沿用原訂單,重試不會產生第二筆訂單,也不會重複扣款。
- 留意哪裏的訂單付不出去。 如果某個市場的買家總是到了收銀台卻沒付款,通常需要的是那裏的本地支付方式,而不是在同一張卡上再試一次。
支付被拒和拒付是一回事嗎?
不是。支付被拒發生在任何資金移動之前:發卡行拒絕,什麼都沒有扣。拒付發生在支付成功之後,買家向銀行對這筆付款提出異議,爭議金額會從你的餘額裏凍結。支付被拒不計入拒付率;拒付才計入。那一側的內容見 信用卡拒付是什麼。
如何在沙箱裏測試拒絕代碼?
沙箱收銀台接受能觸發各種結果的測試卡號,你可以看到買家收到的提示,並確認你的系統在 Webhook 到達之前不改動訂單。沙箱裏的提示還會附上拒絕代碼。
| 測試卡號 | 結果 |
|---|---|
4000 0000 0000 0002 | 被發卡行拒絕(card_declined) |
4000 0000 0000 9995 | 餘額不足(insufficient_funds) |
4000 0000 0000 0069 | 卡已過期(expired_card) |
4000 0000 0000 0127 | 安全碼錯誤(incorrect_cvc) |
4000 0000 0000 0119 | 處理出錯(processing_error) |
4000 0000 0000 3220 | 需要 3D Secure,在驗證頁選擇成功或失敗 |
被拒之後,在同一個鏈接上用 4242 4242 4242 4242 再付一次,確認訂單只入賬一次、只通知一次。完整列表見 沙箱測試。
總結
- 銀行卡拒絕代碼是發卡行拒絕付款的理由;「do not honor」是不給理由的通用拒絕;
- 「do not honor」只有買家和他的銀行能解決:向銀行確認,或換一種方式付款;
- 軟拒絕改正信息或稍後再試可能成功,硬拒絕需要換卡;
- 不要自動重試,也不要因為一次被拒就把訂單標記為失敗;
- 跨境付款更容易被拒,請提供錢包並讓 3D Secure 正常運作;
- 在 KukoPay 上,訂單保持待支付,買家在同一個鏈接上重試,被拒不產生費用。
在沙箱裏把它跑通
註冊商戶後即可申請測試密鑰,不需要等待資質審核。