braintree / braintree_php

Braintree PHP library
https://developer.paypal.com/braintree/docs/start/overview
MIT License
545 stars 225 forks source link

Base->toArray() expects array instead of null #336

Open asdfklgash opened 11 months ago

asdfklgash commented 11 months ago

General information

Issue description

[TypeError]
array_map(): Argument #2 ($array) must be of type array, null given

Exception trace: at /var/www/vendor/braintree/braintree_php/lib/Braintree/Base.php:101 array_map() at /var/www/vendor/braintree/braintree_php/lib/Braintree/Base.php:101 Braintree\Base->toArray() at /var/www/vendor/braintree/braintree_php/lib/Braintree/Base.php:97 Braintree\Base->Braintree{closure}() at n/a:n/a array_map() at /var/www/vendor/braintree/braintree_php/lib/Braintree/Base.php:101 Braintree\Base->toArray() at /var/www/vendor/braintree/braintree_php/lib/Braintree/Base.php:97 Braintree\Base->Braintree{closure}() at n/a:n/a array_map() at /var/www/vendor/braintree/braintree_php/lib/Braintree/Base.php:101 Braintree\Base->toArray() at ...

The problem occurs within your toArray() function when $this->_attributes is null as PHP expects array for array_map. In our case the problem occurs with riskData->liabilityShift is null. riskData->decisionReasons is an empty array for example and that works.

hollabaq86 commented 10 months ago

đź‘‹ @asdfklgash sorry for the delay. We can absolutely fix up our code to be more defensive. Would you mind also contacting Technical Support, as I think something might have changed with our API that's resulting in this error in the SDK? They'll need recent example API calls where you've encountered this scenario so that they can find any related logs and communicate with our API engineering teams.

For internal tracking of SDK issue, ticket 29185