slevomat / csob-gateway

Client library for CSOB card payment gateway
MIT License
27 stars 10 forks source link

ResultCode.php s C0_OK hazi vyjimku ale nemel by... #12

Closed petasan closed 8 years ago

petasan commented 8 years ago

zlobi if (!self::isValidValue($value)) {

pri hodnote const C0_OK = 0; to vraci vyjimku.

janlanger commented 8 years ago

Chtělo by to ukázku kódu který vyhazuje vyjímku nebo (ideálně) failující test.

petasan commented 8 years ago

Testovani jsem zjsitil ze test brana CSOB vraci kod 0, ale je to asi string ale vy mate v enmumu strict type na 0 na cislo tim to asi je... isValidValue() {... return in_array($value, self::getAvailableValues(), true); }

kdyz jsem dal isValidValue() {... return in_array($value, self::getAvailableValues()); }

Tak mi to proslo...

diky.

invalidenumvalueexception

petasan commented 8 years ago

Stejny problem je v pripade equalsValue(); Vypada to ze brana CSOB vraci misto ciselnych kodu stringy .... diky.

petasan commented 8 years ago

V oficialnim prikade od CSOB jsem nasel.... class PaymentStatus { static $requested = '1'; static $pending = '2'; static $canceled = '3'; static $approved = '4'; static $reversed = '5'; static $declined = '6'; static $toClearing = '7'; static $cleared = '8'; static $refundRequested = '9'; static $refunded = '10'; }

Praciji s Csob branou v1.5.... cislelne kody sedi jen se to jinak jmenuje...

pepakriz commented 8 years ago

Podle dokumentace má být resultCode a paymentStatus number. Což v json datech opravdu je. Váš problém pravděpodobně nastává jen u volání createReceivePaymentRequest, kde předáváte data, která vám brána poslala přes GET (případně POST) a zde jsou všechny datové typy typu string. Takže ukázku z readme je třeba mírně upravit na něco jako:

$paymentResponse = $requestFactory->createReceivePaymentRequest()->send($apiClient, [
    'payId' => $_POST['payId'],
    'resultCode' => (int) $_POST['resultCode'],
    'paymentStatus' => (int) $_POST['paymentStatus'],
    ....
]);
petasan commented 8 years ago

Omluva a diky za rychlou reakci...

pepakriz commented 8 years ago

V pořádku. Nepřesnosti v readme upravíme.

janlanger commented 8 years ago

Díky za report. Přetypování teď probíhá automaticky.