支付測試卡號大全:每種支付結果的測試卡,以及卡號之外還要測什麼
支付測試卡號大全:支付成功、各種被拒原因和 3D Secure 的測試卡號,如何在支付沙箱中使用,以及 Webhook、退款和錢包等同樣重要的測試。
測試卡號是只能在支付沙箱裏使用的銀行卡號:它們不會移動任何資金,每一個都對應一個固定的結果,比如支付成功、因某個具體原因被拒,或者觸發 3D Secure 驗證。用對測試卡號,就能在接入真實銀行卡之前,把真實買家可能走的每一條路都走一遍。
下面是 KukoPay 沙箱接受的測試卡號、它們的用法,以及同樣重要、但與卡號無關的測試:Webhook、退款、錢包和重複請求。
支付成功的測試卡號
有效期填任意未來日期,安全碼填任意 3 位數字(American Express 為 4 位)。
| 卡號 | 卡組織 | 結果 |
|---|---|---|
4242 4242 4242 4242 | Visa | 支付成功 |
5555 5555 5555 4444 | Mastercard | 支付成功 |
3782 822463 10005 | American 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 是什麼。
測試卡號怎麼用?
- 創建一筆沙箱訂單:用
kuko_test_密鑰調用POST /v1/orders,或在控制台 開發者 → 沙箱聯調 點擊 發起測試下單。請求示例見 快速接入。 - 打開
checkout_url並選擇銀行卡。沙箱表單會列出測試卡號,點擊即可填入。 - 付款,然後檢查你這一側:Webhook 收到了、驗簽通過了、訂單只履約了一次。
環境由密鑰決定:kuko_test_ 密鑰永遠不會產生真實扣款,kuko_live_ 密鑰在賬戶審核通過前會被拒絕,所以測試代碼不可能意外扣到真實的卡。
永遠不要在沙箱裏輸入真實卡號。KukoPay 的沙箱表單只接受上面的測試卡號,卡號只在瀏覽器裏用來選擇測試結果,不會發送到服務器。
應該測試哪些支付場景?
卡號覆蓋的是買家這一側。支付對接通常壞在服務端,所以這些也要測:
| 場景 | 怎麼測 | 檢查什麼 |
|---|---|---|
| 支付成功 | 4242 4242 4242 4242 | 收到 payment.succeeded、驗簽通過、只履約一次 |
| 被拒後重試 | 先用 …0002,再在同一個鏈接上用 4242… | 一筆訂單,只付一次款、只通知一次 |
| 3D Secure | 4000 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 重投、退款和放棄付款;
- 錢包有測試授權頁,模擬結果 和 發送測試回調 不打開收銀台也能測試你的服務端。
在沙箱裏把它跑通
註冊商戶後即可申請測試密鑰,不需要等待資質審核。