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

applepay/process -> Cannot construct instance of `cz.monetplus.mips.model.eapi.EApiBase$AuthData` #652

Open radek-jurica opened 1 year ago

radek-jurica commented 1 year ago

Dobrý den,

při zaslání requestu na API endpoint applepay/process se nám vrátí kód 400 s následující chybou:

Invalid attribute type in request: Cannot construct instance of cz.monetplus.mips.model.eapi.EApiBase$AuthData (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value

Problém je v parametru fingerprint, který předáváme jako JSON objekt (enkodovany do base64; zkouseli jsme i posilat primo jako JSON string). V dokumentaci je uvedeno, ze typ parametr je "Objekt", ale bohuzel nevime jaky objekt.

V odpovědi na request na applepay/init se nám vůbec nevrátí property "actions" pro ověření fingerprintu.

Jedná se o ověření ve webovém prohlížeči.

Díky za pomoc.

FVarak commented 1 year ago

Dobrý den, Váš požadavek byl předán k řešení. O dalším průběhu Vás budeme informovat.

jgrmelova commented 1 year ago

Dobrý den,

můžu Vás, prosím, požádat o Merchant ID a přibližný čas pokusu applepay/init pro dohledání logů?

Moc děkuji.

radek-jurica commented 1 year ago

Dobrý den,

děkuji za reakci.

jgrmelova commented 1 year ago

Dobrý den, 

děkuji za upřesnění. V logu vidím poslední pokus pro applepay/init 24.11. 16:13, kde vidím následující:

Nov 24, 2022 @ 16:13:59.811    Received applepayInit request M1E3CB0759 / f5d89b3151c5@HK, orderNo: 5838479 Nov 24, 2022 @ 16:13:59.857    decoded applepay encrypted message: ... Nov 24, 2022 @ 16:13:59.860    skipping processing, unable to load merchant's applepay processing certificate Nov 24, 2022 @ 16:13:59.881    Trx M1E3CB0759 / f5d89b3151c5@HK declined: Invalid payload

f5d89b3151c5@HK - mCode 3231-   APPLEPAY_INVALID_MERCHANT_CONFIG - applepay / nelze provest decrypt, merchant applepay processing certificate nebo pkcs12 chybí. 

Certifikát pro ApplePay vidím, že byl nahrán v systému POS Merchant cca 24.11.2022 16:25. Po tomto čase v logu již nevidím, žádný další pokus o applepay/init.

Můžete, prosím, zkusit zaslat požadavek applepay/init znovu a zaslat mi přesný čas pokusu? 

Co se týče  fingerprintu, měl by vypadat takto (s reálnými daty z prohlížeče): "fingerprint": {       "browser" : {           "acceptHeader" : "application/json, text/plain, /",           "challengeWindowSize" : "01",           "javaEnabled" : false,           "language" : "cs_CZ",           "colorDepth" : 24,           "screenHeight" : 720,           "screenWidth" : 1280,           "timezone" : -60,           "javascriptEnabled" : true,           "userAgent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"

      }   }

Hezký den. 

radek-jurica commented 1 year ago

Dobrý den,

děkuji za upřesnění. Předávali jsme parametr fingerprint ve špatném formátu a vracelo nám to zmíněnou chybu. Poslední záznamy z logu ze dne 24.11. v 16:13 pro typ Apple pay jsou zvláštní, protože jsme to určitě testovali až do cca 18:00, ale dnes jsme asi přišli na důvod proč. Pokud se transakce z jakéhokoliv důvodu neprovede, tak je následně označena jako „Neznámá“, viz. tento screenshot - https://take.ms/xhbU3 Obě dvě jsou přes Apple pay na naší straně, ale jen jedna transakce se provedla a je označena správně jako Apple Pay.

Apple Pay již funguje a transakce se provádí celá a správně, ale ještě jsem se chtěl zeptat na doplňující otázku. Zkoušeli jsme několik částek (i přes 500 Kč), ale nikdy se v property Actions neobjevila nutnost provést 3DS check a tedy jsme to neměli možnost jej implementovat. Dokážete nám říct v jakých případech je 3DS vyžadován, abychom si mohli nastavit tyto parametry? U platební karty, kterou jsem použil mám 3DS určitě zapnutý.

Děkuji za informaci.

— S pozdravem, Radek Juřica

1. 12. 2022 v 15:00, jgrmelova @.***>:

Dobrý den,

děkuji za upřesnění. V logu vidím poslední pokus pro applepay/init 24.11. 16:13, kde vidím následující:

Nov 24, 2022 @ 16:13:59.811 Received applepayInit request M1E3CB0759 / @., orderNo: 5838479 Nov 24, 2022 @ 16:13:59.857 decoded applepay encrypted message: ... Nov 24, 2022 @ 16:13:59.860 skipping processing, unable to load merchant's applepay processing certificate Nov 24, 2022 @ 16:13:59.881 Trx M1E3CB0759 / @. declined: Invalid payload

@.*** - mCode 3231- APPLEPAY_INVALID_MERCHANT_CONFIG - applepay / nelze provest decrypt, merchant applepay processing certificate nebo pkcs12 chybí.

Certifikát pro ApplePay vidím, že byl nahrán v systému POS Merchant cca 24.11.2022 16:25. Po tomto čase v logu již nevidím, žádný další pokus o applepay/init.

Můžete, prosím, zkusit zaslat požadavek applepay/init znovu a zaslat mi přesný čas pokusu?

Co se týče fingerprintu, měl by vypadat takto (s reálnými daty z prohlížeče): "fingerprint": { "browser" : { "acceptHeader" : "application/json, text/plain, /", "challengeWindowSize" : "01", "javaEnabled" : false, "language" : "cs_CZ", "colorDepth" : 24, "screenHeight" : 720, "screenWidth" : 1280, "timezone" : -60, "javascriptEnabled" : true, "userAgent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"

  }

}

Hezký den.

— Reply to this email directly, view it on GitHub https://github.com/csob/paymentgateway/issues/652#issuecomment-1333809201, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB37B4X5Z4OLSYD5WGFN66TWLCVP5ANCNFSM6AAAAAASKUFUVM. You are receiving this because you authored the thread.

jgrmelova commented 1 year ago

Dobrý den,

bylo by, prosím, možné k Vašemu dotazu doplnit nějakou konkrétní transakci (číslo objednávky, variabilní symbol nebo PayID)?

Děkuji.

janbrasna commented 1 year ago

@jgrmelova ID jsou videt na screenshotu, u reverzovane 408a538704c4@HL (1165838479) je videt typ "Apple Pay", kdezto u zamitnute accac1568af4@HL (5838479) je metoda platby jako "Neznamy".

Kazdopadne pokud ta chybova hlaska "Cannot construct instance of cz.monetplus.mips.model.eapi.EApiBase$AuthData" nepochazi z klienta (nejspis ne) ale vraci ji primo server, asi by mela byt konkretni chybovou hlaskou osetrena situace, kdy fingerprint misto pole obsahuje string, a vracet se validacni kod a duvod pro ukazujici na danou hodnotu. (Ted to vypada jako nejaka interni chyba parsovani.)

janbrasna commented 1 year ago

@radek-jurica Pro integracni prostredi se chovani k overeni na simulatorech ridi castkou transakce:

Pro produkci si to ridi vydavatel karty, tj. pokud danym tokenem uz mate historii placeni jinde a vydavatelska banka nema duvod si rikat o aktualni challenge, tak pak platby obzvlaste u MC prochazi v Pay rovnou; u VISA se s kryptogramem zachazi jinak a tam overeni nastava casteji, ale opet, zalezi na vracenych ECI a SLI hodnotach a lisi se to platba od platby. Testovat v produkci na overeni se da napr. u nove karty, tj. s bankou ktera umi vydavat mnoztvi "jednorazovych" virtualnich karet ktere lze take tokenizovat do penezenky. U nove nikdy nepouzite karty je vetsi sance ze se overeni objevi, hlavne u VISA karet. Ale garance neni, cele 3DS 2 ma tyto challenge za cil minimalizovat, a u kryptogramu z Pay a MC karet je temer vzdy otisku zarizeni duverovano. Google Pay a oneclicky vyvolavaji overeni casteji.