conedevelopment / simplepay-gateway

OTP SimplePay bővítmény WooCommerce (WordPress) áruházak részére.
https://simplepay.conedevelopment.com
MIT License
57 stars 22 forks source link

WooCommerce státusz nem változik sikertelen fizetésű IPN esetén #156

Closed jofbe closed 11 months ago

jofbe commented 11 months ago

Hiba leírása

Sziasztok! A legutóbbi frissítésig (pár nappal ezelőtt) minden rendben működött (Simple 2.7.1, WC 8.2.1). A frissítés óta a sikertelen fizetési tranzakciós rendelések "FIzetés előtt" státuszon maradnak, akár napokig.

Korábban a simplepay hibái miatt beállításra került egy +90 perces timeout nyújtás, most ezt is kivettem.

Most minden sikeres fizetésnél jól működik a rendszer, de megszakított-, timeout-olt-, hibás fizetési próbálkozásoknál csak annyit látok a simple admin oldalon, hogy ők elküldték a megfelelő IPN hívást, a WC mégsem kezelte le. Ha ezek után manuálisan indítok IPN-t, az sem csinál semmi változást a státuszban. A WC-s simplepay napló file-jainál csak a sikeres IPN hívások vannak feltűntetve.

iamgergo commented 11 months ago

Szia!

Én most hallok először róla, hogy nem sikeres tranzakció esetén is küldhet IPN-t a SimplePay. De igazad van, mert ez áll a dokumentációban:

2021.06.15. után a sikertelen végstátuszok esetén is küldhet a rendszer IPN üzenetet. Ez a funkció opcionális, ami csak kereskedői beállításra történik meg. Azon kereskedői rendszerek esetén, ahol korábban implementálva volt a funkció a sikeres státuszokra, nem igényel kötelező jellegű változtatást.

Viszont erről a módosításról nem nagyon értesültünk, így ez nincs is belefejlesztve a bővítménybe. Hamarosan bővítem a kódot, és egy új verzióval már elérhető lesz az általad vázolt eshetőség IPN kezelése is.

Egy kis türelmet kérek, hamarosan jelentkezem!

Köszi!

jofbe commented 11 months ago

@iamgergo , köszönöm!

Addig is, amíg elkészül ez a fejlesztés, van ötleted, hogy miért nem változnak a simplepay-es rendelések státuszai? Ha lejár a timeout idő, akkor valamilyen sikertelen státusznak kéne beállnia. Esetleg ötlet, hogy a kódnak melyik részére érdemes valamilyen debug kódot írnom, hogy kiderüljön, hol van a gond a flow-ban?

iamgergo commented 11 months ago

@jofbe Kiment az új verzió, meg tudod erősíteni, hogy most rendben lemegy az IPN minden esetben?

Esetleg ötlet, hogy a kódnak melyik részére érdemes valamilyen debug kódot írnom, hogy kiderüljön, hol van a gond a flow-ban?

Nem tudom pontosan mi az elvárás, de a PaymentHandler-ben tudsz kísérletezni. Ott kezeljük le az egyes eseteket.

jofbe commented 11 months ago

@iamgergo a frissítés után már a napló file-ban megjelent egy "status":"CANCELLED" is, aminek örülök.

Egy olyan dolog van még, hogy ezzel a tranzakció bejegyzéssel törlődött a mai napi (ehhez a plugin-hez tartozó) összes napló bejegyzés, de ez remélhetőleg csak egyszeri eset volt ;)

A logolással kapcsolatban elvárásom nem igazán volt, csak szerettem volna rájönni, hogy az IPN hívás hol tűnhetett el, de ezek szerint megérkezik, így a hiba másban lehet.

iamgergo commented 11 months ago

Egy olyan dolog van még, hogy ezzel a tranzakció bejegyzéssel törlődött a mai napi (ehhez a plugin-hez tartozó) összes napló bejegyzés, de ez remélhetőleg csak egyszeri eset volt ;)

Nem csak egy új fájlba logol?

jofbe commented 11 months ago

Nem, ezzel a dátummal ettől a plugin-től csak 1 napló file van, most már két IPN-el, az én teszt megszakítottammal, és egy sikeressel. Aztán rájöttem, hogy a többi vásárlás utánvétes fizetéssel volt, így persze, hogy nem volt hozzájuk tartozó IPN hívás...

A problémám viszont sajnos még aktuális, 7 óra elteltével is Fizetés előtt státuszon van a teszt rendelésem, ahol megszakítottam a kártyás fizetést. Viszont mivel az IPN hívás megérkezett, lehet, hogy a WooCommerce maga a hibás?!

iamgergo commented 11 months ago

Hogyan szakítottad meg? A vissza gombbal? Ha igen, akkor a mi részünkről helyes a fizetés előtt, azt viszont nem tudom, hogy mikor állítja át a Woo ezt failed-re.

jofbe commented 11 months ago

Igen, a vissza gombbal szakítottam meg. Megpróbálom a Woo support-ját ;)