-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Neplatny podpis v chybovej odpovedi s 200/OK responsem #648
Comments
Dobrý den, parametr PayID je sice uveden jako povinný, pokud se však při provolání API nepodaří transakci (s přiděleným PayID) vytvořit, není možné PayID vrátit. Pokud je parametr vyplněný, tak se pole doplní a oddělí oddělovačem |, pokud však vyplněný není vypouští se pole i oddělovač. Správný řetězec k podpisu je tedy v tomto případě: Hezký den. |
@rootpd Chybove odpovedi maji jiny vycet povinnych hodnot; u odpovedi bez podpisu (401, 403 aj., 500+) je to jasne viz wiki, u odpovedi za pritomnosti dttm+signature mrknu zda je to dostatecne zadokumentovane… |
Vdaka. V podstate mi chyba nieco "uchopitelne", podla coho by sme jednoznacne vedeli povedat, co sa ma pri 2XX chybovej odpovedi pouzit na vygenerovanie podpisu. Ta zmena API medzi verziami nie je zanedbatelna. Pridavam rozdiely, ktore pozorujeme pri pouziti noveho API. Pri requeste sa snazime nainicalizovat platbu neexistujuceho (uz expirovaneho) oneclick templatu. Tento scenar nie je u nas uplne okrajovy. Toto su odpovede (obe s HTTP statusom // 1.8
{
"dttm": "20221128103103",
"signature": "**REDACTED**",
"payId": "foo",
"resultCode": 180,
"resultMessage": "orig payment not found",
"paymentStatus": 6
} // 1.9
{
"resultCode": 700,
"resultMessage": "Oneclick template not found",
"paymentStatus": 0,
"dttm": "20221128105931",
"signature": "**REDACTED**"
} Cize:
Prebehol som este raz aj https://github.com/csob/paymentgateway/wiki/Request-Signing-and-Response-Signature-Validation aj https://github.com/csob/paymentgateway/wiki/Methods-for-OneClick-Payment a naozaj nevidim, ako sa pri kontrole podpisu k takemuto niecomu zachovat. |
@rootpd Pokud to je casty scenar, tak si idealne volejte oneclick/echo pro overeni sablony nez budete platbu initovat (=vubec oneclick nabizet klientovi, a pripadne rovnou nabidnout ulozit cerstvou kartu), ta je pro to urcena. Odpoved v1.8 obsahuje bug #562 kdy i pro neexistujici sablonu zaklada transakci kterou hned zamita (proto muze vratit Nicmene mi prijde ze i tak to chovani neni uplne spravne, jeste to necham overit. (Bud by se jako drive mela platba zalozit a hned zamitnout, timpadem mit svoje ID aj., a/nebo chybi specifikace co se vraci v pripade nezalozeni platby, na jakykoliv init, pro 200/OK a paymentStatus:0, kdy neexistuji identifikatory — ve specifikaci to nevidim…) |
V pripade, ze
oneclick/init
volanie nevrati nainicializovanu platbu spayId
, vyzera odpoved napr. takto:Toto je v rozpore s https://github.com/csob/paymentgateway/wiki/Methods-for-OneClick-Payment#return-values--1, kde dokumentacia oznacuje ako povinne polia v odpovedi:
payId
(chyba)dttm
resultCode
resultMessage
signature
Kvoli tomuto rozporu nie je mozne spravne overit podpis odpovede, pretoze nami generovany podpis je iny, ako podpis obdrzany z API.
Pri debugovani sme zistili, ze nas base podpisu je iny a lisi sa prave v pouziti
payId
:payId
v odpovedi brali ako nepovinny parameter, system vygeneroval rovnaky podpis, aky prisiel zo serveru. Text base bol takyto:Prvy krat sme problemy pri overovani podpisu zo servera zaznamenali 17.10. Z nasho pohladu momentalne potrebujeme dospecifikovat, ci je
payId
v odpovedioneclick/init
povinny alebo nie.Dakujem za pomoc.
The text was updated successfully, but these errors were encountered: