csob / paymentgateway

English documentation of the ČSOB Payment Gateway that offers an API for credit card payments, Apple Pay, Google Pay, mallpay and ČSOB Payment Button.
https://platbakartou.csob.cz/platebni-brana
GNU General Public License v3.0
121 stars 68 forks source link

WooCommerce prázdná odpověď payment/init #530

Closed mklusak closed 3 years ago

mklusak commented 4 years ago

Dobrý den,

klientovi poslední dobou divně funguje starý WooCommerce plugin, kdy se především zahraniční zákazníci nepřesměrují na platební bránu. Jde o klienta M1MIPS0765.

V logu pak vidím toto:

----- Mon, 21 Sep 2020 18:03:08 +0000 ----- orderNumber 237 ----- Mon, 21 Sep 2020 18:03:08 +0000 ----- parts of orderNumber 237, ----- Mon, 21 Sep 2020 18:03:08 +0000 ----- Checking order 237, orderId 3985 ----- Mon, 21 Sep 2020 18:03:08 +0000 ----- SELECT * FROM monetTransaction WHERE orderNumber=237 ----- Mon, 21 Sep 2020 18:03:08 +0000 ----- after select ----- Mon, 21 Sep 2020 18:03:08 +0000 ----- cart created ----- Mon, 21 Sep 2020 18:03:08 +0000 ----- loaded paymentStatus: PayId: ----- Mon, 21 Sep 2020 18:03:08 +0000 ----- payment not inicialized OR payment cancelled or declined OR detected cart changes ----- Mon, 21 Sep 2020 18:03:08 +0000 ----- payment/init, url: https://api.platebnibrana.csob.cz/api/v1.6/payment/init/ ----- Mon, 21 Sep 2020 18:03:08 +0000 ----- payment/init sign: M1MIPS0765|237|20200921180308|payment|card|26403|EUR|true|https://refereezone.eu/wp-...... ----- Mon, 21 Sep 2020 18:03:08 +0000 ----- payment/init data: {"merchantId":"M1MIPS0765","orderNo":"237","dttm":"20200921180308","payOperation":"p..... ----- Mon, 21 Sep 2020 18:03:09 +0000 ----- payment/init result:

----- Mon, 21 Sep 2020 18:05:12 +0000 ----- orderNumber 237 ----- Mon, 21 Sep 2020 18:05:12 +0000 ----- parts of orderNumber 237, ----- Mon, 21 Sep 2020 18:05:12 +0000 ----- Checking order 237, orderId 3985 ----- Mon, 21 Sep 2020 18:05:12 +0000 ----- SELECT * FROM monetTransaction WHERE orderNumber=237 ----- Mon, 21 Sep 2020 18:05:12 +0000 ----- after select ----- Mon, 21 Sep 2020 18:05:12 +0000 ----- cart created ----- Mon, 21 Sep 2020 18:05:12 +0000 ----- loaded paymentStatus: PayId: ----- Mon, 21 Sep 2020 18:05:12 +0000 ----- payment not inicialized OR payment cancelled or declined OR detected cart changes ----- Mon, 21 Sep 2020 18:05:12 +0000 ----- payment/init, url: https://api.platebnibrana.csob.cz/api/v1.6/payment/init/ ----- Mon, 21 Sep 2020 18:05:12 +0000 ----- payment/init sign: M1MIPS0765|237|20200921180512|payment|card|26403|EUR|true|https://refereezone.eu/..... ----- Mon, 21 Sep 2020 18:05:12 +0000 ----- payment/init data: {"merchantId":"M1MIPS0765","orderNo":"237","dttm":"20200921180512","payOperat... ----- Mon, 21 Sep 2020 18:05:13 +0000 ----- payment/init result:

----- Mon, 21 Sep 2020 18:07:48 +0000 ----- orderNumber 237 ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- parts of orderNumber 237, ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- Checking order 237, orderId 3985 ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- SELECT * FROM monetTransaction WHERE orderNumber=237 ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- after select ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- cart created ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- loaded paymentStatus: PayId: ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- payment not inicialized OR payment cancelled or declined OR detected cart changes ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- payment/init, url: https://api.platebnibrana.csob.cz/api/v1.6/payment/init/ ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- payment/init sign: M1MIPS0765|237|20200921180748|payment|card|26403|EUR|true|https://refereezone.eu/wp-....... ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- payment/init data: {"merchantId":"M1MIPS0765","orderNo":"237","dttm":"20200921180748","pay....... ----- Mon, 21 Sep 2020 18:07:48 +0000 ----- payment/init result:

payment/init result vždy prázdný ... a mezitím jiné jiné transakce proběhlé bez problémů.

Kde by mohl být problém?

mbazant commented 4 years ago

Dobrý den,

Váš požadavek byl přidělen odpovědnému kolegovi.

S pozdravem Michal Bažant Monet+

dkomarek2 commented 4 years ago

Dobrý den,

bohužel WooCommerce plugin již nadále není oficiálně podporovaný bankou.

Nicméně se mi podařilo dohledat zmíněnou transakci "orderNo": "237" a skončila chybou ohledně špatného padpisu. Tzn. chybné klíče nebo se neshodoval obsahově odesílaný JSON se stringem pro vytvoření podpisu a nebo špatný algoritmus pro vytvoření podpisu (správný je "SHA-1"). Ovšem vzhledem k tomu, že ostatní platby vám prošly tak předpokládám, že klíče máte správné.

Jinak obsahově odesílaný JSON obsahoval tyto problémy:

Opravte si prosím implementaci pokud můžete a vyzkoušejte znovu.

S pozdravem,

Daniel Komárek IT application specialist

mklusak commented 4 years ago

Dobrý den,

děkuji za odpověď, včera jsem došel k témuž, že klíčový problém je v té hodnotě totalAmount, kterou WooCommerce (v kombinaci s WPML / multicurrency pluginem) pro některé objednávky dodá v tomto pitomém formátu ... a všechny tyto objednávky přestaly za poslední měsíc(e) procházet. Po zaokrouhlení na celá čísla se zdá vše správně funkční.

Co mě ale zaráží je to, že API v těchto případech nevrátilo žádnou odpověď - vůbec nic.

dkomarek2 commented 4 years ago

Dobrý den,

proč vám API nevrací odpověď netuším ale nyní již znáte problém a nejspíš jej tedy dokážete odstranit. Můžete tedy nám i případným dalším lidem se stejným problémem napsat jak jste problém odstranil až se vám to podaří.

Děkuji.

S pozdravem,

Daniel Komárek IT application specialist

mklusak commented 4 years ago

Dobrý den,

problém byl opravdu odstraněn tím zajištěním, aby totalAmount bylo vždy celé číslo, ostatní připomínky z Vaší odpovědi na tento problém neměly vliv.

Že ale API platební brány nevrátí v dané situaci vůbec žádnou odpověď, ani chybovou hlášku/kód, ani HTTP chybu ... to by se přece stát nemělo, ne?

dkomarek2 commented 4 years ago

Dobrý den,

Děkuji za vysvětlení ohledně odstranění problému.

Ohledně response z brány vám neporadím jelikož jde o spojení s nepodporovaným pluginem kde funkcionalitu negarantujeme.

S pozdravem,

Daniel Komárek IT application specialist