跳轉到主要內容

支付測試卡號大全:每種支付結果的測試卡,以及卡號之外還要測什麼

支付測試卡號大全:支付成功、各種被拒原因和 3D Secure 的測試卡號,如何在支付沙箱中使用,以及 Webhook、退款和錢包等同樣重要的測試。

發佈於 約 5 分鐘閲讀

手繪插畫:一疊扇形展開、分別標着 4242、3220 和 0002 的測試卡,旁邊是一張打了勾的清單和一個咧嘴笑、雙手抱臂的人
本文目錄
  1. 支付成功的測試卡號
  2. 被拒和 3D Secure 的測試卡號
  3. 測試卡號怎麼用?
  4. 應該測試哪些支付場景?
  5. 如何在沙箱裏測試錢包支付
  6. 不打開收銀台也能測試
  7. 用沙箱資金測試退款和提現
  8. 正式上線
  9. 總結

測試卡號是只能在支付沙箱裏使用的銀行卡號:它們不會移動任何資金,每一個都對應一個固定的結果,比如支付成功、因某個具體原因被拒,或者觸發 3D Secure 驗證。用對測試卡號,就能在接入真實銀行卡之前,把真實買家可能走的每一條路都走一遍。

下面是 KukoPay 沙箱接受的測試卡號、它們的用法,以及同樣重要、但與卡號無關的測試:Webhook、退款、錢包和重複請求。

支付成功的測試卡號

有效期填任意未來日期,安全碼填任意 3 位數字(American Express 為 4 位)。

卡號卡組織結果
4242 4242 4242 4242Visa支付成功
5555 5555 5555 4444Mastercard支付成功
3782 822463 10005American Express支付成功
6200 0000 0000 0005銀聯支付成功

4242 4242 4242 4242 是開發者最先想到的卡號,用它來測「正常路徑」:創建訂單、買家付款、收到 Webhook、訂單只履約一次。

被拒和 3D Secure 的測試卡號

卡號結果代碼
4000 0000 0000 3220需要 3D Secure 驗證,在驗證頁選擇成功或失敗—
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

被拒之後,訂單保持 pending,同一個收銀台鏈接仍然可用,和正式環境完全一樣;沙箱會在提示後面附上代碼,方便你分辨遇到的是哪種情況。每個代碼對真實買家意味着什麼,見 銀行卡支付被拒怎麼辦;3220 背後的驗證流程,見 3D Secure 是什麼。

測試卡號怎麼用?

  1. 創建一筆沙箱訂單:用 kuko_test_ 密鑰調用 POST /v1/orders,或在控制台 開發者 → 沙箱聯調 點擊 發起測試下單。請求示例見 快速接入。
  2. 打開 checkout_url 並選擇銀行卡。沙箱表單會列出測試卡號,點擊即可填入。
  3. 付款,然後檢查你這一側:Webhook 收到了、驗簽通過了、訂單只履約了一次。

環境由密鑰決定:kuko_test_ 密鑰永遠不會產生真實扣款,kuko_live_ 密鑰在賬戶審核通過前會被拒絕,所以測試代碼不可能意外扣到真實的卡。

永遠不要在沙箱裏輸入真實卡號。KukoPay 的沙箱表單只接受上面的測試卡號,卡號只在瀏覽器裏用來選擇測試結果,不會發送到服務器。

應該測試哪些支付場景?

卡號覆蓋的是買家這一側。支付對接通常壞在服務端,所以這些也要測:

場景怎麼測檢查什麼
支付成功4242 4242 4242 4242收到 payment.succeeded、驗簽通過、只履約一次
被拒後重試先用 …0002,再在同一個鏈接上用 4242…一筆訂單,只付一次款、只通知一次
3D Secure4000 0000 0000 3220驗證成功、失敗,以及沒完成就返回
重複下單用同一個 out_trade_no 創建兩次返回的是同一筆訂單
Webhook 重投讓接收端第一次返回 500事件以相同的 id 重投,只處理一次
全額與部分退款對已支付的沙箱訂單退款退款的最終狀態,以及 refund.succeeded
放棄付款下單時把 expires_at 設為 5 分鐘後,打開鏈接後離開訂單過期,收到 payment.expired
錯誤處理錯誤的密鑰(401 invalid_api_key)、帶小數的金額(400)你的代碼給出有用的錯誤提示,而不是崩潰

Webhook 這幾行最常被跳過,事後才後悔:重投是常態,Webhook 重複通知怎麼辦 講了如何讓每筆付款只履約一次。同樣,永遠不要把買家的回跳當作結果,見 return_url 和 notify_url 的區別。

如何在沙箱裏測試錢包支付

支付寶、微信支付、PayPal、Apple Pay 和 Google Pay 沒有卡號可填。在沙箱裏選擇其中一種,會打開一個帶 授權付款 和 拒絕付款 的測試授權頁:

  • 授權:訂單變為已支付並發送 payment.succeeded,即使在這個頁面上直接關閉瀏覽器也一樣;
  • 拒絕:訂單保持 pending,買家可以換一種方式;
  • 不做選擇直接回到收銀台:未完成的支付會先被取消,再發起新的支付。

真實錢包對買家的表現,見 海外商戶如何接入支付寶和微信支付收款。

不打開收銀台也能測試

控制台 開發者 下有兩個工具,可以在還沒有任何買家流程時就測試你的服務端:

  • 模擬結果:對一筆還沒打開過收銀台的沙箱訂單,模擬成功(並選擇買家「使用」的支付方式)、失敗或過期。它走的是真實流程:訂單狀態變化、沙箱餘額按該支付方式的真實費率入賬、事件被記錄、Webhook 按正式規則投遞和重試,所以模擬成功的訂單之後還可以退款,用來測試退款回調。
  • 發送測試回調:向你選擇的端點或地址發送一條與正式 Webhook 格式、簽名完全相同的請求,並同時顯示發出的內容和你的服務端返回的結果。它的事件 id 以 evt_test_ 開頭、帶 "test": true,不會改動任何訂單或餘額,請確保你的接收端不會因為它發貨。

用沙箱資金測試退款和提現

沙箱錢包初始有 $5,000.00 測試資金,退款和提現都可以完整演練;在錢包頁點擊 補充測試資金 即可補回。沙箱提現會立即完成,記下的流水與正式提現最終的流水相同,方便你在真金白銀流動之前練習對賬。沙箱的手續費按真實公式計算,見 跨境收款手續費怎麼算。

正式上線

沙箱測試通過後,切換只需要換密鑰:在服務端把 kuko_test_ 換成 kuko_live_。接口地址、字段、收銀台和 Webhook 都不變,所以你測過的一切依然成立。完整的上線檢查清單見 網站如何接收國際付款。

總結

  • 測試卡號只能在沙箱裏使用,每一個對應一個固定結果;
  • 4242 4242 4242 4242 支付成功,4000 0000 0000 3220 觸發 3D Secure,其他 4000 0000 0000 … 卡號產生特定的拒絕原因;
  • 有效期填任意未來日期、安全碼隨意,永遠不要用真實卡;
  • 服務端也要測:重複請求、Webhook 重投、退款和放棄付款;
  • 錢包有測試授權頁,模擬結果 和 發送測試回調 不打開收銀台也能測試你的服務端。

在沙箱裏把它跑通

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