Przejdź do głównej zawartości

Środowisko testowe

dpay.pl udostępnia tryb testowy, który pozwala przetestować integrację bez obciążania prawdziwych kont. Transakcje testowe są widoczne w panelu administracyjnym, ale nie generują rzeczywistych przepływów pieniężnych.

Włączanie trybu testowego

  1. Zaloguj się do panel.dpay.pl.
  2. Przejdź do Punkty Płatności > Serwisy.
  3. Wybierz serwis, który chcesz przetestować.
  4. Włącz przełącznik Tryb testowy.
informacja

Tryb testowy jest dostępny od razu po utworzeniu serwisu - nie musisz czekać na weryfikację konta, aby rozpocząć integrację.

Co się dzieje w trybie testowym?

  • Brak rzeczywistych obciążeń - żadne pieniądze nie są pobierane z kont klientów
  • Transakcje widoczne w panelu - wszystkie testowe transakcje pojawiają się w historii transakcji z oznaczeniem testowym
  • IPN działa normalnie - powiadomienia IPN są wysyłane na Twój endpoint tak samo jak w trybie produkcyjnym
  • Pełne API - wszystkie endpointy działają identycznie jak na produkcji

Testowanie IPN lokalnie

Podczas developmentu Twój serwer zwykle działa na localhost, który nie jest dostępny z internetu. Aby dpay.pl mogło wysyłać powiadomienia IPN na Twój lokalny serwer, użyj narzędzia do tunelowania.

ngrok

ngrok tworzy tunel HTTPS do Twojego lokalnego serwera:

# Uruchom tunel (zakładając, że Twój serwer działa na porcie 3000)
ngrok http 3000

ngrok wygeneruje publiczny adres, np. https://abc123.ngrok-free.app. Użyj go jako url_ipn:

{
"url_ipn": "https://abc123.ngrok-free.app/api/ipn"
}

Alternatywy

wskazówka

Pamiętaj, że adres tunelu zmienia się po każdym restarcie (w darmowej wersji ngrok). Aktualizuj url_ipn w zapytaniach testowych.

Testowanie scenariuszy

Płatność zakończona sukcesem

  1. Zarejestruj transakcję przez API z prawidłowymi danymi.
  2. Klient zostaje przekierowany na bramkę płatności.
  3. Po zatwierdzeniu płatności - IPN trafia na Twój endpoint ze statusem paid.
  4. Klient jest przekierowany na url_success.

Płatność anulowana

  1. Zarejestruj transakcję przez API.
  2. Na bramce klient wybiera opcję anulowania.
  3. Klient jest przekierowany na url_fail.

IPN niedostępny (retry)

  1. Wyłącz tymczasowo swój endpoint IPN (np. zatrzymaj serwer).
  2. Zarejestruj i opłać transakcję testową.
  3. dpay.pl będzie ponawiać dostarczenie IPN (do 10 prób z exponential backoff).
  4. Uruchom serwer ponownie - IPN zostanie dostarczony przy następnej próbie.
  5. Sprawdź w panelu historię dostarczeń IPN dla danej transakcji.

Testowanie zwrotów

  1. Wykonaj udaną transakcję testową.
  2. Wywołaj endpoint zwrotu z transaction_id opłaconej transakcji.
  3. Sprawdź odpowiedź API i status transakcji w panelu.

Weryfikacja odpowiedzi API

W trybie testowym odpowiedzi API mają identyczny format jak na produkcji. Upewnij się, że Twoja aplikacja poprawnie obsługuje:

ScenariuszCo sprawdzić
Sukces rejestracjiPole error: false, obecność transactionId i URL w msg
Błąd checksumOdpowiedź 400 z komunikatem Invalid checksum
IPNWeryfikacja signature, idempotentność, odpowiedź 200 OK
ZwrotStatus success w odpowiedzi, aktualizacja refunded_amount

Checklist przed przejściem na produkcję

Przed wyłączeniem trybu testowego upewnij się, że:

  • Checksum - generowany poprawnie dla wszystkich typów zapytań (rejestracja, zwrot)
  • IPN - endpoint działa, weryfikuje podpis (signature), odpowiada 200 OK
  • Idempotentność - IPN przetwarzany tylko raz per transakcja
  • Weryfikacja kwoty - kwota z IPN porównywana z kwotą zamówienia w bazie
  • Obsługa błędów - aplikacja poprawnie reaguje na błędy API (400, 401, 500)
  • HTTPS - wszystkie adresy URL (url_success, url_fail, url_ipn) używają HTTPS
  • Secret Hash - przechowywany bezpiecznie w zmiennych środowiskowych, nie w kodzie
  • Zwroty - jeśli korzystasz ze zwrotów, przetestowane zwroty pełne i częściowe
  • Logowanie - przychodzące IPN i odpowiedzi API są logowane do celów diagnostycznych

Po spełnieniu wszystkich punktów wyłącz tryb testowy w panelu - Twój serwis jest gotowy na produkcję.