API-3.0-PHP
API-3.0-PHP copied to clipboard
Error "Invalid argument supplied for foreach()"
Estou tentando realiza a tokenização de um cartão e esta apresentando um erro.
Invalid argument supplied for foreach()
neste trecho
`case 400: $exception = null; $response = json_decode($responseBody);
foreach ($response as $error) {
$cieloError = new CieloError($error->Message, $error->Code);
$exception = new CieloRequestException('Request Error', $statusCode, $exception);
$exception->setCieloError($cieloError);
}
throw $exception;`
Precisa checar antes se $response
vem um json ou string. Estou usando uma validação luhn
antes como parece que a cielo não checa isso.
Precisa checar antes se
$response
vem um json ou string. Estou usando uma validaçãoluhn
antes como parece que a cielo não checa isso.
Amigo pode dar mais detalhes de como você fez? Resolveu o problema? Estou com o mesmo problema aqui
Boa tarde. O meu deu esse mesmo erro quando eu estava fazendo testes e esqueci de passar o marchantId.
O problema ocorre no arquivo vendor\developercielo\api-3.0-php\src\Cielo\API30\Ecommerce\Request\AbstractRequest.php porque quando ele faz o json_decode ele ainda retorna uma string com o array, envez do próprio array(acredito que na api interna da cielo fazem o json_encode duas vezes).
Para solucionar isso eu coloquei uma verificação para ver se o valor é uma string ou um array, e caso seja uma string eu aplico novamente o json_decode.