Closed honzastefan closed 2 years ago
Dobrý den,
požadavek byl předán na servis.
S pozdravem
-- Jan Stuchlík IT Support Specialist
Dobrý den,
snažil jsem se dohledat váš request pro reverse a následný payment/status ale marně. Transakce je ve State 8 a reverse na ni jsem v logu nenašel.
Můžete prosím zkontrolovat, zda jste poslal správné payId transakce?
Případně jiný příklad?
Děkuji.
S pozdravem,
Daniel Komárek IT application specialist
Dobry den,
Z tohoto testu je patrne ze pouzivam stejne hodnoty payId. Je to zkuporovano primo z Idei a pokud dobre vidim tak odpoved na process a nasledne reverse pouziva stejne PayId.
pokusim se tedy podrobně popsat jak to testuji.
Muj stav před pokusem vypada takto v POS:
Následně tedy provedu ECHO, INIT, PROCESS
Process mi vrati toto:
CsobGwPaymentResponse(payId=cc80a8b8717c@GL, timestamp=20211209152040, resultCode=0, resultMessage=OK, paymentStatus=7, authCode=491833, customerCode=null, statusDetail=null, signature=LNmkfWgjwRBjmZrvYjE3yw6Nni4/SQi1BZs+58HZlk0zhu0pvpBwq27a8XPEx2N/FyQlxOOdUVifITj/nPNX0gMdYrtOKA5BeZtIAKm6w9mgp4EgTV0HrDQvKBVug/J0nyVS66HBywkT9BPf1NsjkSK8YcWS4hcqPlmbFjVFjH/CufK6YsaSVTynwYpk6znRBHr8iFBowLYCeziFz2adxvkFpzjsKxWySS7Gns7lYRghfr3hPp7vC2Oas5iUa91zk4YJW8djVfE5QqRfnA0l+lF9qM+CfndRrqidwr1SM2ofqw7T0pOgiaa9fHnsdV566xCADWf9JzhA7XtWieiZaw==)
Na webu POS se mi objevi toto:
Prvni zvlastni vec je, ze pri pouziti karty pro reverzovani se mi provede test na OK platbu. Jediné co mě k tomto napada ze test neni zavisly na konkretni karte, ale na poradi v jakem to provadim, Nikde neni zminka o tom, ze by na tom zalezeno, nebo jsem tu informaci nenasel.
Pak provedu dotaz na STATUS a tem mi vrati toto, pridal jsem to sem jen pro jistotu stejne se to chovalo i pred tim nez jsem to sem pridal. Takze odeslani dotazu na status na to nema vliv.
CsobGwPaymentResponse(payId=cc80a8b8717c@GL, timestamp=20211209154055, resultCode=0, resultMessage=OK, paymentStatus=7, authCode=491833, customerCode=null, statusDetail=null, signature=hxQOT7UK1/swowUe/BU9l8moNAXHpBLTPzKEr3okxtNSO1IGJVgEuWmdRLmmLSO90AErZf5KldCXw/hwKecLZZHBlafHSiJRsWwdFhPVkyWV44mcLrNhgQ1iQt/eo2cU4J3aD8OfI4IxnEipjU3EZkikkGE1n2suflxD2ZkNqPEsQC0G7C3sIyaWRfQSF2XZ1dU5Vr3wHLrG3KHzGc0wxZ/rWz8JPgtXhyde33sJanIbTlWOWF7Fps6zTr8q64jeEMU67y75GJuCcdnv0DIPMHoFmO5HyaE8IMya8bS0CSjZgOGKg2kECn9YfUY9oFOapxBFAQYCLqphSVVhHAtKaA==)
Pak si pripravim request.
CsobGwPaymentRequest(merchantId=M1MIPS9355, payId=cc80a8b8717c@GL, timestamp=20211209154314, signature=YoroUFrFv8BtJyYifZJIUwb/z5C6fZUb6/+Q91ChvGyYGgZc3M8LfOunxpxPG1tYCF1O4wfr9iQlzQUdrrqIS/KAw5zt80c8vIv/uXdU3h4FAuDh0Y4wSKHLcStxE69TVKBp2LXwJXQvxwQ36lPoe+kzYuk1QlbQW/FRc50bmiqRw0/iKuwCMRM/KP5NPlThSzVSS2Zugo+fcopzt9dpACsz4JedxBm9mx3s08gNbtHFBc7mPY3YM51eDAuIkYHl8wSxnveo2VDNtL38IuUK2bircgbRcTH0xoboptPEmHxh9NbaDE9EZuQlrXdgWzq+XGATP0KFfeRCIBuGOOlXow==)
A odeslu a brana vrati html s kodem 200
HTTP/1.1 200 OK cache-control: no-cache connection: close content-length: 246 content-type: text/html; charset=utf-8 pragma: no-cache
Chtel jsem ted vyzkouset jestli zalezi na poradi provedeni testu. Pri provedeni dalsi platby me to pak hlasi starou dobrou hlasku.
Stejny stav byl i pred dvema dny. CSOB FW me po nejake dobe odblokoval, takze jsem mohl pokracovat v investigaci problemu. Dostal jsem se do uplne presne stejneho stavu. POS me ukazoval, ze jsem proved OK platbu i pres to ze jsem provedl platbu s kartou pro reverzaci.
Az me FW odblokuje zkusim tedy nejdriv provest test na OK platbu a pak az teprve na Reversovani. U te blokace jsem si myslel, že me FW zablokuje kvuli tomu ze me Feign client dekodoval enkodovane znaky v podpisu. Uprime jsem jeste zatim neimplementoval api, ktere by vyzadovalo podpisy a ruzne specialni znaky v URL. Tak jsem si myslel, ze by to mohlo byt tim. Ale vzhledem k tomu bug Feign Clienta jsem vyresil tak je mi divne, ze se mi to ted bloklo na zaklade komunikace pres POST a json body.
S tim ze mam jeden pokus za den na test jsem se nejak naucil zit a debuguju to stylem, abych toho odhalil co nejvic jit pri prvnim pokusu. Ale je to take dosti otravne.
Mel jsem termin pro zakaznika konec listopadu, ale tyto porodni bolesti, kde nikdo nevi proc FW blokuje platby a nasledne prechod do ostre verze jsou vskutku otravne. A bohuzel se mi jeste nepodarilo Vam predat dostatek informaci pro to, abyste mi mohli pomoct. Uz skutecne nevim co s tim.
Diky
S pozdravem
Jan Stefan
Dobrý den,
Pokud potřebujete provést testovací scénář "Reverzováno", tak jste správně vytvořil transakci pomocí requestů Init a následně Process. Tím jste se dostal do stavu transakce "7".
payment/init -> vytvoří transakci payment/process -> spustí zpracování transakce (předá vám URL s formulářem platební brány)
Ale reverzování transakce provedete pomocí requestu payment/reverse (nikoli payment/process). Viz definice: https://github.com/csob/paymentgateway/wiki/Z%C3%A1kladn%C3%AD-metody#payment-reverse-operation Takže tam žádnou kartu nepotřebujete.
S pozdravem,
Daniel Komárek IT application specialist
@dkomarek2 Pokud nemuzete dohledat operaci v logu tak je to nejspis proto, ze to zarizne uz firewall, viz ta "200 OK text/html" odpoved na api call, coz znamena ze to na branu ani nedorazilo… viz #609 a dalsi issues…
@honzastefan Pro ty reverzy jen pozn. pokud utikaji stavy; ono se to meni pulnoci viz #422 …
Dobrý den,
ano, taky si myslím, že ty requesty co pak obchodník odesílá končí zablokované na FW. Ale jak jsem již psal, tak ikdyž je transakce již ve State 7, tak jestli to dobře chápu tak se snažili je "stornovat" odesláním requestu "payment/process" což nedává smysl. Reversuje se pomocí "payment/reverse". Předpokládám, že pokud obchodník pošle správný request, tak ten projde.
S pozdravem,
Daniel Komárek IT application specialist
Ne neni to tak odesilal jsem to normalne na payment/reverse.
Nechapu kde jste vzal ze jsem to posilal na payment process......?????
Ten printscreen jen ukazuje ze kdyz jsem pokus opakoval, tak uz jsem ani neprosel pres payment/process protoze jsem byl zase zarizlej.
Jeste bych se chtel zeptat jestli tam teda hraji nejakou roli ti cisla karet? Proc tedy testy probihaji na ruzne cisla karet kdyz to nema zadny vliv?
Nechapu jeste co tedy delam spatne, ze me ten firewall blokuje.
Dobrý den,
omlouvám se ale z toho zadání to tak vyplývalo.
Můžete mi prosím uvést jaká data odesíláte pro ten reverse? Z toho screenu s chybou je vidět, že tam bude nějaký neočekávaný znak (asi ta ostrá závorka). V zadání je jako příklad takový tvar:
URL: https://api.platebnibrana.csob.cz/api/v1.8/payment/reverse
poslaný jako PUT a v těle je něco takového:
{ "merchantId":"012345", "payId":"d165e3c4b624fBD", "dttm":"20190925131559", "signature":"base64-encoded-request-signature" }
Jinak význam použití testovacích karet je popsán zde: https://github.com/csob/paymentgateway/wiki/Testovac%C3%AD-karty Jsou tam například karty, u kterých náš simulátor zamítá z nějakého důvodu atp.
Děkuji
S pozdravem,
Daniel Komárek IT application specialist
Abychom se oprostili od meho programu. Simuluju pres Postmana.
Tak ted testuju nad platbou eee355cad567@GL
Na odeslani dotazu na status mi to vraci toto
pri odeslani Reverse tohoto
Jeste posilam test metody PUT
Dobrý den,
ano správně má být typu PUT a chybí vám v URL slovo payment
S pozdravem,
Daniel Komárek IT application specialist
Super, diky moc.
Skutecne jsem mel spatne vybrany typ metody.
Je tedy teoreticky mozne, ze FW zarizne pokud poslu na nejake API spatny typ metody?
Dobrý den,
V Postmanovi vidíte Response v záložbe "Body". provedl jsem test:
Jinak nevím o tom, že by FW blokoval obchodníky po provolání 1 špatného requestu. FW zablokuje ten jeden request ale když pošlete následně nový tak by měl projít. Pokud jich nepošlete nějaké nadměrné množství...
S pozdravem,
Daniel Komárek IT application specialist
Tak vyreseno.
Tato stranka nabehne pokud platbu delam s otevrenym DevTools v Chrome.
Pokud jsou DevTools zavrene. Tak vse funguje v poradku.
Muzete toto issue zavrit.
Diky moc za support
Ta "ostra zavorka" je zas pokus parsovat odpoved, ve ktere je misto json payloudu html stranka firewallu (a jeji prvni znaky body jsou logicky ostre zavorky html tagu…) tzn. stale dokola ta #605 — ta issue se bude snazit vyresit jak na json request i na firewallu vracet json odpoved, aby se alespon dala parsovat…
Ano, neposlani PUT metody na PUT operaci je jedna ze situaci kdy pozadavek sezere uz firewall. Ale jeden "divny" pozadavek nezpusobi blokaci na cely den+ … to spis ty devtools si tam zkouseji nejake divoke OPTIONS, HEADs nebo si po svem vykladaji samesite/botprotect cookies na redirectech…? Tezko rict. Da se @dkomarek2 prosim podle tech "support ID" incidentu nechat vytahnout z infrastruktury ktere konkretni pravidlo ten request porusil, aby se pripadne vedelo zda se s tim da neco delat do budoucna? Jen otevrene devtools by samy o sobe nemely znemoznit funkcnost integrace/testingu merchanta:/
Dobry den,
pokud poslu po uspesne provedene transakci Reverse
POST https://iapi.iplatebnibrana.csob.cz/api/v1.8/payment/reverse HTTP/1.1 Content-Length: 436 Content-Type: application/json
{"merchantId":"M1MIPS9355","payId":"2a6e9e45bf59@GL","dttm":"20211207175815","signature":"h3ZTw98ubi7OZ7lEcJBK7+AXNXeJJo6eyQ9btZiazOFoLeYqhegZNGV9Nohs9pSe4cQXTWWuEPsT+WO5zbNYeoF1PNfF+9Dr+C0dIzSH/AlnlVY9mVuyGxixZoOQl9F7qQKLZpSeEA77V6KpMWsC6gWD5YPljKZqua1W16BZ0Vjb6DviMTsGr3R6YyF/Xi3z8suK9ALsLiK1rPpASMmVumiDb5OIh2LT5/BiMzErtwfUZDqxop4XgZNVRmmV3v7zdHu0PIkQsQUzwMBLa4woYpiRxtC7blNlxD+PcgF+Hehh3onKuD6MbpoCP3PBf90UmTWVZ4i3ew2EwempCZ5NQA=="}
Brana mi vraci toto:
HTTP/1.1 200 OK cache-control: no-cache connection: close content-length: 246 content-type: text/html; charset=utf-8 pragma: no-cache
Podle dokumentace by me mela vratit json s vysledkem viz dokumentace
{ "payId":"d165e3c4b624fBD", "dttm":"20190925131559", "resultCode": 0, "resultMessage":"OK", "paymentStatus": 5, "signature":"base64-encoded-response-signature" }
Pred volanim Reverse overuju pomoci status jestli ma platba status 7, coz ma. A dle dokumentace bych mel mit vsechny nalezitosti splnene.
5) Platba odvolána: Dokud neprojde potvrzená platba zúčtováním, lze ji odvolat. To znamená, že nebude vůbec držiteli karty účtována, blokované prostředky na kartě se uvolní a neplatí se žádný poplatek. Tento stav je koncový a nelze jej vrátit. Počet odvolaných plateb obchodníkem je bankou monitorován.
Spoléhat na možnost odvolání platby lze pouze u transakcí, které dosud nebyly zúčtovány. Odvolat platbu lze u transakcí ve stavu „Platba potvrzena“ (4) pouze do té doby, dokud nebude zařazena do zúčtování a neproběhne samotné zúčtování. U transakcí ve stavu „Čekání na zúčtování“ (7) lze odvolat platbu maximálně do půlnoci daného dne, po této době se provádí zúčtování transakcí, u zúčtované platby lze již jen provést operaci vrácení prostředků.
Muzete mi prosim poradit co s tim?
Predem diky