Bazowanie na paymentId w przypadku podnoszenia płatności nie jest dobrym rozwiązaniem brakuje funkcjonalności
Opened this issue · 4 comments
Scenariusz pozytywny
- Dodawanie płatności - otrzymujemy zwrotnie paymentId (XXX-XX-XX-XX), status (NEW), redirectUrl
- za pomocą redirectUrl przekierowujemy klienta do bramki
- klient opłaca i wraca. Sprawdzamy z URL paymentId ?paymentId=XXX-XX-XX-XX&paymentStatus=CONFIRMED.
- Sprawdzamy status płatności wykorzystując paymentId przez API i mamy informacje o wpłacie do konkretnego zamówienia (oczywiście paymentId XXX-XX-XX-XX rejestrujemy w bazie podczas tworzenia płatności aby odpytać API o status płatności i porównać z URL powrotu).
Scenariusz problematyczny
- Dodawanie płatności - otrzymujemy zwrotnie paymentId (XXX-XX-XX-XX), status (NEW), redirectUrl
- za pomocą redirectUrl przekierowujemy klienta do bramki
- klient ma problem z płatnością (błędny BLIK czy cokolwiek). Ponawia płatność i po stronie bramki generuje się nowy paymentId (YYY-YY-YY-YY). Załóżmy, że zapłaci i wraca do sklepu ale jego paymentId to YYY-YY-YY-YY. Sprawdzamy z URL paymentId ?paymentId=YYY-YY-YY-YY&paymentStatus=CONFIRMED. Symbol XXX-XX-XX-XX ma status ABANDONED i nie ma żadnych informacji o powiazaniu YYY-YY-YY-YY z XXX-XX-XX-XX
- Sprawdzamy status płatności wykorzystując paymentId powrotu YYY-YY-YY-YY ( ?paymentId=YYY-YY-YY-YY&paymentStatus=CONFIRMED). I nie możemy z niczym tego powiązać.
Na początku utrzymujemy paymentId XXX-XX-XX-XX (przykład) następnie podczas podnoszenia płatności w bramce (poza sklepem) tworzona jest nowa sesja YYY-YY-YY-YY. ?paymentId=YYY-YY-YY-YY&paymentStatus=CONFIRMED. Do czego podpiąć YYY-YY-YY-YY my nie mamy informacji jakiej transakcji to dotyczy.
Jak wykonać zwrot kiedy to też bazuje na paymentId? My mamy informacje o XXX-XX-XX-XX a nie o YYY-YY-YY-YY
Rozwiązanie kiedy ktoś musi łączyć wpłaty logując się do panelu jest słabe.
Dzień dobry,
dziękujemy za zgłoszenie. Podnoszenie płatności, a co za tym idzie ich wiązanie, bazuje na parametrze externalId. Po krótce wygląda to tak:
-
w przypadku podnoszenia, przy tworzeniu się nowej płatności wyślemy notyfikację z takim samym externalID jak przy starej, porzuconej płatności,
-
czyli płatność porzucona i podnoszona jest połączona tym samym externalId,
-
na podstawie notyfikacji NEW i przesłanym w niej externalId następuję połączenie płatności i zamówienia.
Szczegółowo opisany ten proces jest w dokumentacji:
https://docs.paynow.pl/#section/Payments/Payment-recovery
W razie dodatkowych pytań, pozostajemy do dyspozycji.
Zespół paynow
"w przypadku podnoszenia, przy tworzeniu się nowej płatności wyślemy notyfikację z takim samym externalID jak przy starej, porzuconej płatności," - notyfikacje gdzie? Na adres powrotu sklepu?
"czyli płatność porzucona i podnoszona jest połączona tym samym externalId" - owszem ale po waszej stronie a nie w API. Niestety wszystko bazuje na paymentId który się zmienia. Odpytanie o status również bazuej na paymentId, więc słabo.
Dzień dobry,
notyfikacje wysyłamy na ustalony adres powiadomień. W standardowym procesie, to wysyłane przez nas powiadomienia są źródłem wiedzy o statusie transakcji, a nie odpytania z Państwa strony. Zachęcamy do skorzystania z funkcji powiadomień - z pełnym opisem ich działania zapoznają się Państwo w dokumentacji: https://docs.paynow.pl
externalId jest wartością niezbędną dla requestu płatności i po stronie API łączy ze sobą transakcje. Jeżeli skonfigurują Państwo adres powiadomień, problem z łączeniem transakcji zniknie.
z pozdrowieniami,
zespół Paynow
Faktycznie przychodzi takie powiadomienie i tam wszystko jest. Dokumentacja jest bardzo uboga w tej kwestii powinniście to rozszerzyć. Pozdrawiam