Środowisko testowe

Twoja aplikacja wysyła. Nikt tego nie dostaje.

Echo staje w miejscu serwera pocztowego, bramki SMS i bramki płatności. Aplikacja wysyła prawdziwy ruch — mail ląduje w panelu zamiast w cudzej skrzynce, SMS zamiast na czyimś telefonie, płatność rozstrzygasz kliknięciem zamiast przelewem. Nie zmieniasz kodu, tylko adres.

Twoja aplikacja środowisko testowe SMTP SMS PŁATNOŚĆ Echo panel + API serwer pocztowy odbiorcy operator komórkowy bank i realny przelew

Trzy kanały, jedno narzędzie

Każdy kanał mówi protokołem, którego aplikacja już używa. Podmieniasz adres w konfiguracji i tyle.

Poczta

Serwer SMTP

Przyjmuje wszystko: STARTTLS, SMTPS, logowanie, załączniki. W panelu obejrzysz wersję HTML, tekstową, nagłówki i surowe źródło.

# settings.py
EMAIL_HOST = "echo.openskills.pl"
EMAIL_PORT = 1025
EMAIL_USE_TLS = True
SMS

Bramka w API SMSPlanet

Te same ścieżki, te same pola, te same kody błędów. Doręczenia są symulowane, a webhook przychodzi w oryginalnym formacie.

# zamiast api2.smsplanet.pl
POST /g/sms-dev/sms
  from=TEST to=500100200
  msg=Kod: 1234
Płatności

Bramka w API Paynow

Tworzysz płatność, dostajesz redirectUrl, klikasz „Zapłać” — i aplikacja odbiera podpisaną notyfikację, tak jak na produkcji.

# zamiast api.paynow.pl
POST /g/platnosci/v3/payments
  amount: 12300
  externalId: "ZAM-1"

Jak to działa

Od podmiany adresu do pierwszej przechwyconej wiadomości mija zwykle minuta.

Podmień adres

W panelu tworzysz bramkę i kopiujesz gotowy fragment konfiguracji — dla Django, Node, PHP albo curla. Klucze są już podstawione.

Wyślij normalnie

Aplikacja robi to, co zawsze: wysyła maila, strzela do bramki SMS, tworzy płatność. Żadnych atrap w kodzie i żadnych „if TESTING”.

Obejrzyj i rozstrzygnij

Wszystko pojawia się w panelu na żywo. Doręczasz SMS albo go zrywasz, potwierdzasz płatność albo odrzucasz, wysyłasz webhooka jeszcze raz.

Zgodność, nie przybliżenie

Atrapa jest warta tyle, ile jej wierność. Echo odwzorowuje te części API, na których wykłada się integracja.

Kody błędów SMSPlanet

Nieznane pole nadawcy to 103, pusta lista odbiorców 106, zła data 108, brak środków 109. Twoja obsługa błędów ma na czym pracować.

Liczenie części SMS

GSM-7 i UCS-2 tak jak u operatora — jedno „ą” skraca wiadomość ze 160 do 70 znaków i widzisz to od razu.

Podpis notyfikacji Paynow

Nagłówek Signature to Base64(HMAC-SHA256) z ciała żądania. Weryfikacja po Twojej stronie działa bez zmian.

Idempotency-Key i statusy

Powtórzone żądanie zwraca tę samą płatność. Statusy to NEW, PENDING, CONFIRMED, REJECTED, ERROR, EXPIRED, ABANDONED.

Scenariusze błędów na żądanie

Odrzucanie odbiorców regułą, opóźnienie odpowiedzi SMTP, udział niedoręczonych SMS-ów, płatności zawsze odrzucane. Ścieżka błędu też wymaga testu.

Log webhooków z powtórką

Widzisz nagłówki, ciało i odpowiedź swojej aplikacji. Jeden przycisk wysyła to samo jeszcze raz.