跳轉到主要內容

銀行卡支付被拒怎麼辦?do not honor 等拒絕代碼的含義與處理方法

銀行卡支付被拒絕代碼詳解:do not honor、餘額不足、安全碼錯誤分別代表什麼,軟拒絕與硬拒絕的區別,以及商戶如何挽回這筆訂單。

發佈於 約 6 分鐘閲讀

手繪插畫:一張畫着叉的銀行卡,周圍是 do_not_honor、insufficient_funds、expired_card 標籤,旁邊一個雙手抱臂、一臉困惑的人
本文目錄
  1. 「do not honor」是什麼意思?
  2. 最常見的銀行卡拒絕代碼
  3. 軟拒絕和硬拒絕有什麼區別?
  4. 為什麼跨境銀行卡支付更容易被拒?
  5. 在 KukoPay 上,銀行卡被拒之後會怎樣?
  6. 商戶應該如何處理被拒的支付?
  7. 支付被拒和拒付是一回事嗎?
  8. 如何在沙箱裏測試拒絕代碼?
  9. 總結

銀行卡支付被拒時,發卡行會給出一個拒絕代碼,説明它為什麼不同意這筆付款。有的代碼很明確,比如 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」在跨境付款裏比本地付款更常見的原因。有三件事能幫上忙:

  1. 提供不止一種付款方式。 卡被拒的買家還可以用錢包完成付款。Apple Pay 和 Google Pay 用的是買家已經在手機上驗證過的卡;中國大陸的買家可以改用支付寶或微信支付,見 海外商戶如何接入支付寶和微信支付收款。
  2. 讓 3D Secure 發揮作用。 發卡行要求買家驗證時,一次完成的驗證比一筆未驗證的付款更能讓它放行。
  3. 讓收銀台看起來就是你。 付款頁上有買家認得的商戶名稱和品牌、用買家的語言顯示,放棄付款的買家更少,事後對扣款提出異議的也更少。網站如何接收國際付款 講了幣種、語言和支付方式。

在 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 上,訂單保持待支付,買家在同一個鏈接上重試,被拒不產生費用。

在沙箱裏把它跑通

註冊商戶後即可申請測試密鑰,不需要等待資質審核。