先記住這一點

支付失敗不是一件事,而是三類事:卡片資料錯、驗證沒走完、收單方判定風險高。三類的處理動作互相沖突——資料錯要改資訊重試,驗證沒走完要重新走完 3DS,被風控攔截則重試越多越糟。先按報錯文字定位類別,再決定動作。Stripe 對同一筆扣款的自動重試建議上限是 8 次,並說明發卡行可能把額外重試視為潛在欺詐。

扣款為什麼會「時好時壞」

發卡行的自動化系統在收到扣款請求時,會按消費習慣、帳戶餘額,以及卡片資料(有效期、地址資訊、CVC)等訊號決定是否授權 [2]。同一個訂閱上個月成功、這個月失敗,通常是這些訊號變了,而不是卡壞了。

對訂閱類扣款來說,幾個訊號格外敏感:

  • 帳單地址與發卡行系統裡登記的那一條是否一致;
  • 短時間內同一筆扣款的次數;
  • 發卡地與網路環境的屬地是否衝突——Stripe 說明,用一國發行的卡在另一國的 IP 下操作,可能被判為潛在的未授權用卡,但也承認跨境旅行等情形屬於例外 [2];
  • 發卡行的預設攔截規則:部分發卡行預設不允許線上交易、跨境交易或某些品類的消費 [2]。

把這幾項分開看,才能判斷下一步該改什麼。改錯方向會讓失敗次數增加,而失敗次數本身就是風險訊號。

能看到程式碼時:對照這張表

Stripe 把發卡行返回的原因整理成一組固定的拒付程式碼。多數時候持卡人看不到它,但在虛擬卡 App、銀行 App 或支付除錯視圖裡是能讀到的。下表摘出與訂閱扣款關係最直接的程式碼,含義與下一步均按 Stripe 官方說明轉述 [1] [2]。

程式碼官方給出的含義官方給出的下一步
incorrect_number / invalid_number卡號不正確用正確的卡號重試
incorrect_cvc / invalid_cvcCVC 不正確用正確的 CVC 重試
incorrect_zip帳單郵編不正確用正確的帳單郵編重試
incorrect_address帳單地址不正確用正確的地址重試
invalid_expiry_month / invalid_expiry_year有效期無效用正確的有效期重試
expired_card卡已過期換一張卡
insufficient_funds餘額不足以完成這筆支付改用其他支付方式
withdrawal_count_limit_exceeded超出卡內餘額或信用額度改用其他支付方式
card_velocity_exceeded超出卡內餘額、信用額度或交易金額限制聯絡發卡行
currency_not_supported卡不支援該幣種向發卡行確認該幣種是否可用
card_not_supported卡不支援這類消費向發卡行確認該卡能否用於此類消費
authentication_required交易需要 3D Secure 等驗證重新發起並在驗證環節完成驗證;無持卡人在場的續費無法完成互動式驗證
authentication_not_handled未完成所需驗證就繼續了交易完整走完 3DS 或 SCA 流程
processing_error處理卡片時出錯重試;仍失敗則聯絡發卡行
do_not_honor原因未知聯絡發卡行
generic_decline原因未知,或被 Stripe Radar / Adaptive Acceptance 攔截聯絡發卡行
transaction_not_allowed原因未知聯絡發卡行
pickup_card / restricted_card該卡不能用於這筆支付(可能已被報失或被盜)聯絡發卡行
fraudulentStripe 懷疑該筆支付屬於欺詐Stripe 要求商戶不向持卡人披露更細的原因,對外一律呈現為 generic_decline
lost_card / stolen_card卡片已被報失或報盜不向持卡人披露具體原因

讀這張表要注意兩點。第一,程式碼說明的是「誰拒絕的」,不總是「為什麼拒絕」:do_not_honor、generic_decline、transaction_not_allowed 三類的官方描述都是「原因未知」。第二,Stripe 明確說明發卡行把大多數拒付歸類為 generic,並且出於隱私與安全,發卡行只與持卡人本人討論拒付細節 [2]。所以「程式碼查不到原因」是正常結果,不是資訊缺失。

只看到 「card was declined」 時

這是最常見的情況:頁面只給一句通用提示。它不是頁面偷懶,而是上面那條規則的直接結果——發卡行沒有把細節交出來,商戶也就無從展示。

此時的正確下一步只有一條:聯絡發卡行,問這筆扣款為什麼被拒。繼續換卡、換地址、反覆提交,都是在不知道原因的情況下改變變數,結果無法解釋,還會累積失敗次數。

OpenAI 幫助中心把續費失敗歸到三個方向去查:發卡行是否攔截了這筆扣款、帳單資訊是否與發卡行記錄一致、以及該地區是否存在支付限制 [3]。這個順序與本節的判斷一致:先問發卡行,再核對資訊,最後才考慮地區因素。

三類成因,處理動作互相沖突

把上表的程式碼歸成三類,每類對應一套動作。混用會互相抵消。

類別典型程式碼該做什麼重試有用嗎
卡片資料錯誤incorrect_*、invalid_*、expired_card逐項核對卡面資訊與帳單地址後重新提交有用,前提是改對了
驗證流程未完成authentication_required、authentication_not_handled重新發起並完整走完 3DS 或 SCA只有走完驗證才有用
收單方或發卡方風控generic_decline、do_not_honor、fraudulent、card_not_supported聯絡發卡行確認限制,或改用另一張卡反覆重試會讓判斷更差

第三類裡有一個容易忽略的分支:generic_decline 的官方描述包含「被 Stripe Radar 或 Adaptive Acceptance 攔截」 [1]。這種情況下扣款請求可能根本沒到發卡行,所以銀行客服查不到記錄——這不是客服在敷衍,而是請求確實沒到那一層。判斷依據是:如果銀行端完全沒有這筆授權記錄,問題更可能在收單側而不是發卡側。

重試還是不重試:看 advice code

除了拒付程式碼,Stripe 還會返回一個 advice code,直接告訴你這筆能不能重試 [2]:

  • do_not_try_again——不要用這張卡再試同一筆交易;
  • try_again_later——可以稍後重試;
  • confirm_card_data——提供的資訊有誤,需要先核對卡面資訊。

沒有程式碼可看時,按這個原則處理:同一張卡對同一筆扣款,連續提交不要超過一兩次。Stripe 說明卡組織限制同一筆扣款的重試次數,其建議上限是 8 次,並提醒發卡行可能把額外重試視為潛在欺詐,反而讓正常扣款更容易被拒 [2]。

訂閱場景還有一層:自動續費屬於無持卡人在場的扣款,觸發 authentication_required 時無法彈出驗證頁讓人完成 3DS。Stripe 對此的建議是先在有持卡人在場時完成驗證並儲存,再用於後續扣款 [1]。這也是為什麼「第一次手動訂閱能過、之後自動續費失敗」會反覆出現。

逐項排查清單

按順序做,每做完一項再提交一次,不要一次改多個變數。

  1. 卡面資訊逐位核對:卡號、有效期、CVC。虛擬卡請從 App 裡複製,不要憑記憶輸入。
  2. 帳單地址與郵編:要的是發卡行系統裡登記的那一條,不是「看起來合理」的那一條。隨便填一個當地地址不會通過校驗。
  3. 餘額與額度:確認夠這一筆,並留意是否已有預授權凍結佔用了額度。
  4. 卡的功能開關:部分卡預設關閉線上交易、跨境交易或訂閱類扣款,需要在 App 裡單獨開啟。
  5. 提交頻率:短時間內對同一筆的重複提交本身就是一個風險訊號。
  6. 網路與裝置環境:Stripe 把發卡地與 IP 屬地衝突列為可能的拒付原因 [2]。頻繁切換環境會讓這個訊號變差。

六項都做完仍然失敗,就不要再試了,直接聯絡發卡行。此時你能提供的最有用的資訊是:失敗的時間、金額、商戶名稱,以及你看到的任何程式碼。

什麼情況必須聯絡發卡行

出現下列任一情況,下一步都在發卡行而不是在商戶頁面:

  • 程式碼是 do_not_honor、generic_decline、transaction_not_allowed、security_violation、service_not_allowed 中的任意一個——官方對這幾類給出的下一步都是「持卡人聯絡發卡行」 [1];
  • 程式碼是 card_not_supported 或 currency_not_supported,需要確認這張卡是否被允許用於這類消費或這個幣種;
  • 程式碼是 card_velocity_exceeded、pickup_card 或 restricted_card;
  • 同一張卡在其他商戶能正常消費,只有這一個商戶失敗;
  • 你已經在同一張卡上失敗三次以上。

聯絡發卡行時可以直接問三個問題:這筆扣款是否到達了你們的授權系統;如果到了,拒付原因程式碼是什麼;這張卡是否對線上、跨境或訂閱類交易有額外限制。

不該做的事

  • 不要在同一張卡上連續重試。見上一節的重試上限與欺詐判斷說明。
  • 不要因為支付失敗就重新註冊帳號。支付失敗與帳號因違規被停用是兩回事,混在一起處理會帶來額外風險,見本站《ChatGPT、Claude 封號怎麼辦?按官方規則預防與申訴》。
  • 不要用他人的卡或代付服務「過一下」。共享帳號與支付憑證在兩家平臺的使用條款裡都屬於可停用情形。
  • 不要相信「內部管道解鎖」或「包過」的服務。拒付由發卡行與收單方決定,第三方無法代為更改;本站不提供規避風控的方法。

支付失敗本身不改變帳號狀態,也不影響後續正常訂閱。真正會讓情況變糟的是在不瞭解原因的前提下反覆嘗試。

常見問題

ChatGPT Plus 支付失敗會導致封號嗎?

兩者是不同的處理路徑。OpenAI 條款把「付款無法完成」與因違規停用帳號分開:前者可能導致帳號降級或暫停訪問,直到收到付款。本文只處理支付環節;帳號被停用請按官方申訴管道處理。

換帳單地址真的有用嗎?

地址校驗是發卡行與收單方都在用的訊號,Stripe 說明校驗失敗時應讓持卡人核對資訊後再發起。前提是填寫的地址與發卡行登記的記錄一致;隨便填一個當地地址不會通過校驗,還可能讓風控評分變差。

虛擬卡被拒,換成實體卡會更好嗎?

Stripe 提到部分卡種對可購買品類有限制(例如 FSA / HSA 卡只限特定商戶),說明卡種確實是發卡行返回的訊號之一。但本站不把卡種當成通過保證,也不認為換卡種能替代排查。

銀行說查不到這筆交易,但頁面提示失敗?

說明請求可能沒有到達發卡行。<code>generic_decline</code> 的官方描述包含「被 Stripe Radar 或 Adaptive Acceptance 攔截」這一情形,這種情況下扣款在收單側就被攔下了,銀行端不會有記錄。

同一筆應該重複提交幾次?

看 advice code:<code>do_not_try_again</code> 就不要再用這張卡試;<code>try_again_later</code> 可以稍後重試;<code>confirm_card_data</code> 要先核對資訊。看不到程式碼時,先聯絡發卡行,不要連續提交。