Symulowana bramka płatności (sandbox)
Poznaj odpowiedzi API płatności: symuluj akceptacje, odmowy i 3-D Secure z opublikowanymi kartami testowymi — całkowicie offline.
🔒 Symulator edukacyjny: nie łączy się z żadnym bankiem, siecią kartową ani dostawcą płatności. Akceptowane są tylko opublikowane numery kart testowych.
Opublikowane numery kart testowych
| Numer karty | Sieć | Symulowany wynik | |
|---|---|---|---|
| 4242 4242 4242 4242 | Visa | Płatność zakończona sukcesem | |
| 4000 0000 0000 0002 | Visa | Odmowa: generic_decline | |
| 4000 0000 0000 9995 | Visa | Odmowa: insufficient_funds | |
| 4000 0000 0000 0069 | Visa | Odmowa: expired_card | |
| 4000 0000 0000 0127 | Visa | Odmowa: incorrect_cvc | |
| 4000 0000 0000 0119 | Visa | Błąd: processing_error | |
| 4000 0025 0000 3155 | Visa | Wymaga uwierzytelnienia 3-D Secure | |
| 5555 5555 5555 4444 | Mastercard | Płatność zakończona sukcesem | |
| 3782 822463 10005 | American Express | Płatność zakończona sukcesem |
Jak działa przepływ płatności
Twój serwer tworzy i potwierdza payment intent, bramka odpowiada statusem, a webhook później informuje backend o ostatecznym wyniku. Realizuj zamówienia na podstawie webhooka, a nie przekierowania w przeglądarce.
{
"method": "POST",
"path": "/v1/payment_intents",
"body": {
"amount": 2000,
"currency": "usd",
"confirm": true,
"payment_method_data": {
"type": "card",
"card": {
"number": "4242424242424242",
"exp_month": 12,
"exp_year": 2030,
"cvc": "123"
}
}
}
}{
"id": "pi_test_3kq9x2m7v1c8b5n4z6a0d2f1",
"object": "payment_intent",
"livemode": false,
"amount": 2000,
"currency": "usd",
"status": "succeeded",
"payment_method": {
"type": "card",
"card": {
"brand": "visa",
"last4": "4242",
"exp_month": 12,
"exp_year": 2030
}
},
"latest_charge": {
"id": "ch_test_8h2j4k6l1m3n5p7q9r0s2t4u",
"authorization_code": "T4K2Q9",
"outcome": {
"network_status": "approved_by_network",
"type": "authorized"
}
}
}{
"id": "evt_test_1a2b3c4d5e6f7g8h9i0j1k2l",
"object": "event",
"type": "payment_intent.succeeded",
"livemode": false,
"data": {
"object": {
"id": "pi_test_3kq9x2m7v1c8b5n4z6a0d2f1",
"status": "succeeded",
"amount": 2000,
"currency": "usd"
}
}
}{
"id": "evt_test_9z8y7x6w5v4u3t2s1r0q9p8o",
"object": "event",
"type": "payment_intent.payment_failed",
"livemode": false,
"data": {
"object": {
"id": "pi_test_7f6e5d4c3b2a1z0y9x8w7v6u",
"status": "requires_payment_method",
"last_payment_error": {
"type": "card_error",
"code": "card_declined",
"decline_code": "insufficient_funds",
"message": "Your card has insufficient funds."
}
}
}
}O narzędziu Symulowana bramka płatności (sandbox)
Ten symulowany sandbox bramki płatności pozwala programistom poznać odpowiedzi API płatności kartowych bez użycia prawdziwych pieniędzy. Wybierz jeden z opublikowanych numerów kart testowych, wpisz dowolną przyszłą datę ważności, CVC i kwotę, a następnie kliknij Symuluj płatność. Strona zwraca obiekt JSON w kształcie typowego payment intent: id, status, sieć kartową i ostatnie cztery cyfry, kod i komunikat odmowy w razie niepowodzenia oraz fikcyjny kod autoryzacji przy akceptacji. Karta 3-D Secure pokazuje symulowane wyzwanie, abyś mógł przećwiczyć obsługę statusu requires_action, a każdy wynik zawiera odpowiadające mu zdarzenie webhook. Symulator działa w całości w przeglądarce: nie łączy się z żadnym bankiem, siecią kartową ani dostawcą płatności i akceptuje tylko opublikowane numery testowe z tabeli. Prawdziwe numery kart są odrzucane lokalnie i nigdzie nie są wysyłane.
FAQ
Czy sandbox obciąża kartę lub łączy się z bankiem?
Nie. Wszystko jest symulowane w przeglądarce. Żadne żądanie nie trafia do Visatk, banku, sieci kartowej ani dostawcy płatności, a pieniądze się nie przemieszczają.
Dlaczego mój numer karty został odrzucony?
Sandbox akceptuje tylko opublikowane numery testowe z tabeli. Każdy inny numer, w tym prawdziwa karta, jest odrzucany lokalnie, więc nigdy nie zostanie potraktowany jako zaakceptowany.
Czy mogę używać tych numerów u mojego prawdziwego dostawcy płatności?
To szeroko opublikowane numery testowe używane w trybach testowych dostawców. Działają tylko z testowymi kluczami API w sandboxie dostawcy; w trybie produkcyjnym są zawsze odrzucane.