curl i Node.js.
Czego potrzebujesz
Utworzenie produktu i rejestracja webhooka to czynności jednorazowe. Jeśli jeszcze ich nie wykonałeś, zacznij od Konfiguracji i wróć tutaj.
1. Utwórz płatność
Zapisz u siebie parametr
externalId z otrzymanego redirectUrl (tutaj ec6RtwTZKb). To wygenerowany przez Paymove skrót płatności - inny niż Twój externalId - i to nim sprawdzisz później status.Pracujesz w Node.js lub TypeScripcie? Zamiast ręcznego
fetch użyj oficjalnego SDK - npm install @paymove-io/sdk. Pakiet jest na licencji MIT, nie ma żadnych zależności, wymaga Node 18+ i zawiera typy TypeScript. Sam składa zagnieżdżone body żądania i zwraca typowane błędy. Szczegóły: SDK JavaScript.SDK nie zawiera funkcji weryfikacji podpisu webhooka - krok 3 piszesz samodzielnie niezależnie od wybranej drogi.2. Przekieruj klienta
details.returnUrl.
3. Odbierz i zweryfikuj webhook
To jedyne wiarygodne potwierdzenie zapłaty. Poniższy handler robi cztery rzeczy: pobiera surowe body, weryfikuje podpis, odpowiada natychmiast i realizuje zamówienie idempotentnie.expectedCode (domyślnie 200) - treść odpowiedzi nie jest sprawdzana.
Domyślnie webhook przychodzi wyłącznie dla statusu
COMPLETED. Jeśli potrzebujesz powiadomień także o anulowaniach i błędach, napisz na integration@paymove.io. Pełen opis: Statusy płatności.4. Awaryjne sprawdzenie statusu
Jeśli klient wrócił nareturnUrl, a webhook jeszcze nie dotarł, możesz odpytać o status. Użyj skrótu płatności zapisanego w kroku 1:
Zanim wypuścisz na produkcję
- Zmień adres bazowy na
https://api.paymove.ioi klucz nask_live_…. - Sprawdź, czy
externalIdjest unikalny dla każdego zamówienia - ponowne użycie zwróci starą płatność ze starą kwotą. - Upewnij się, że kwota trafiająca do
pricepowstaje po stronie serwera, a nie przychodzi z przeglądarki. - Ustaw
retriesprzy rejestracji webhooka - domyślnie wynosi0, czyli brak ponowień.
Co dalej
REST API
Wszystkie parametry, pełne odpowiedzi i zmiana kwoty płatności.
Weryfikacja podpisu
Kod w Node.js, Pythonie i Javie oraz wektor testowy.
Kody błędów
Co znaczy każdy błąd i jak go obsłużyć.
SDK JavaScript
Gotowy klient dla Node.js.