When using the LeadApi to send a Lead object to Close, if you don't internationalise the phone number, it will sometimes return the following error:
{"field-errors":{"phones":[{"phone":"Phone number is not valid.
Please use the international format like +16505551234"}]}}
(Sometimes it will just automatically add +1, as it guesses that you're trying to put a US phone number).
The closeio-api-wrapper throws a BadApiRequestException in this case (from Curl->getResponse method). BadApiRequestException is passed a multi-level array for the error, that is created by json_decode on the json response sent by the API. BadApiRequestException then attempts to turn the multi-level array of errors it is sent into a single string ($output):
However, the code above only supports being passed a 2-deep array. The error given above is 3-deep, so the line
$output .= $key . ' => ' . $error . PHP_EOL;
causes a PHP exception to be thrown, as $error is an array and we are trying to concatenate it to the $output string.
When using the LeadApi to send a Lead object to Close, if you don't internationalise the phone number, it will sometimes return the following error:
{"field-errors":{"phones":[{"phone":"Phone number is not valid. Please use the international format like +16505551234"}]}}
(Sometimes it will just automatically add +1, as it guesses that you're trying to put a US phone number).
The closeio-api-wrapper throws a BadApiRequestException in this case (from Curl->getResponse method). BadApiRequestException is passed a multi-level array for the error, that is created by json_decode on the json response sent by the API. BadApiRequestException then attempts to turn the multi-level array of errors it is sent into a single string ($output):
However, the code above only supports being passed a 2-deep array. The error given above is 3-deep, so the line
$output .= $key . ' => ' . $error . PHP_EOL;
causes a PHP exception to be thrown, as $error is an array and we are trying to concatenate it to the $output string.