pay-now/paynow-php-sdk

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