Statusy
Status jest zawsze przekazywany jako łańcuch znaków -
"COMPLETED", nie liczba. Wartości liczbowe spotykane w starszych integracjach są wewnętrzną reprezentacją bazodanową i nie pojawiają się ani w API, ani w webhookach.CANCELED - przez jedno „l”.
Kiedy przychodzi webhook
Oznacza to, że w domyślnej konfiguracji brak webhooka nie odróżnia płatności nieudanej od płatności trwającej. Jeśli musisz rozpoznać nieudane płatności, użyj zapytania o status albo poproś o włączenie pełnych powiadomień.Payload webhooka
Kształt zależy od tego, czy przy rejestracji webhooka ustawiłeśrequestTemplate.
Bez requestTemplate
Paymove wysyła pełny obiekt płatności. Pola bez wartości są pomijane, więc konkretne powiadomienie może zawierać ich mniej:
Payload nie zawiera pola
event ani type i nie jest opakowany w kopertę. To płaski obiekt, a rodzaj zdarzenia rozpoznajesz po polu status.Z requestTemplate
Payload to dokładnie to, co wyrenderuje Twój szablon. Dla szablonu {"orderId": "{{externalId}}", "price": "{{price}}"} otrzymasz:
{{status}}, {{paymentMethod}}, {{email}}, {{date}} czy {{orderId}}, nie tylko {{externalId}} i {{price}}. Zwróć uwagę, że wartości wstawiane do szablonu tekstowego trafiają do payloadu jako łańcuchy znaków.
Szablon wymusza własny kształt payloadu i zawiera wyłącznie to, co w nim wypiszesz. Jeśli chcesz rozróżniać statusy, dodaj
{{status}} do szablonu albo w ogóle nie ustawiaj requestTemplate.Sprawdzenie statusu zapytaniem
Przydatne jako uzupełnienie webhooka - na przykład gdy klient wrócił nareturnUrl, a powiadomienie jeszcze nie dotarło.
Gdy płatność o podanym skrócie nie istnieje, otrzymasz:
Endpoint nie wymaga klucza API. Nie przekazuj do niego danych wrażliwych i nie traktuj samej odpowiedzi jako jedynego dowodu płatności w krytycznych przepływach - wiarygodnym potwierdzeniem jest zweryfikowany webhook.
Zalecany przepływ
- Utwórz płatność i zapisz u siebie
externalIdoraz skrót płatności zredirectUrl. - Przekieruj klienta na checkout.
- Na stronie
returnUrlpokaż komunikat „przetwarzamy płatność” - bez realizacji zamówienia. - Poczekaj na webhook, zweryfikuj jego podpis i zrealizuj zamówienie idempotentnie.
- Jeśli po powrocie klienta webhook jeszcze nie dotarł, możesz odpytać o status, żeby od razu pokazać właściwy komunikat.
Zwroty
Zwroty realizuje Paymove - nie ma publicznego endpointu API do ich wykonywania. Jeśli potrzebujesz zwrócić płatność, skontaktuj się z integration@paymove.io. Po wykonaniu zwrotu płatność przyjmuje statusREFUNDED.
Co dalej
Weryfikacja podpisu
Obowiązkowy krok przed realizacją zamówienia.
Konfiguracja webhooka
Rejestracja webhooka i przypisanie go do produktu.