Błąd podczas zwracania środków
piotrfilipek opened this issue · 3 comments
Próbuję dokonać zwrotu środków, ale podczas wywoływania metody create
na obiekcie klasy Refund
otrzymuję poniższy błąd:
( ! ) Fatal error: Uncaught TypeError: Return value of Paynow\Response\Refund\Status::getStatus() must be of the type string, null returned in /home/pfilipek/homewww/omnipay-paynow/vendor/pay-now/paynow-php-sdk/src/Paynow/Response/Refund/Status.php on line 28
( ! ) TypeError: Return value of Paynow\Response\Refund\Status::getStatus() must be of the type string, null returned in /home/pfilipek/homewww/omnipay-paynow/vendor/pay-now/paynow-php-sdk/src/Paynow/Response/Refund/Status.php on line 28
Poniżej fagment kodu, który próbuję wywołać:
$client = new Client('api_key', 'signature_key', Environment::SANDBOX);
$refund = new Refund($client);
$result = $refund->create(
'NOHH-7I9-BJM-7DU',
'61379fb47c049',
200,
'OTHER'
);
Sprawdziłem w vendorze i faktycznie, z klienta HTTP faktycznie nie dostajemy żadnej odpowiedzi. Brzmi to trochę jak problem z API, a nie z samą biblioteką.
Aktualnie dla wybranej metody płatności (Santander) zwroty były wyłączone. Co skutkuje zwrotem z API
{ "statusCode": 400, "errors": [ { "errorType": "BAD_REQUEST", "message": "Refund disabled for the given payment {paymentId=NOHH-7I9-BJM-7DU}" } ] }
Włączymy zwroty przez API dla tej metody płatności.
Hmm, wydaje mi się, że wystarczy chyba dać więcej informacji przy rzucanym wyjątku i z pewnością to by rozwiało wszelkie wątpliwości, bo sam komunikat z biblioteki, że "coś jest nie tak" mało mówi.
Możesz skorzystać z getPrevious dla wyjątku i tam powinny być informacje.
Swoją drogą użycie SDK w driverze dla omnipaya jest niezgodne z jego założeniami.
PS
Mamy gotowego drivera dla omnipay: https://github.com/pay-now/omnipay-paynow