Chave do array faltando na verificação do retorno do erro #335
Replies: 2 comments 2 replies
-
Holá, @rodrigopeixotobr! O PR #329 provavelmente irá solucionar o problema relatado, poderia verificar por favor? |
Beta Was this translation helpful? Give feedback.
-
Olá @lucmantovani O PR #329 se mostrou resolver o poblema, foram realizados os mesmos testes para receber retornos com erros e a process_error_body funcionou, retornando o atributo error com a instância da classe MercadoPago\RecuperableError. Porém, outro problema foi observado, a função process_error_body está esperando que a $message tenha a chave ['cause'] para processar as causas do erro, mas as causas do erro vieram na chave ['cause_error'], então ele não processou as causas. Retorno recebido ao enviar dados errados de um cartão:
Então se fez necessário acrescentar uma verificação pela ['cause_error'] para processar as causas do erro, além da ['cause'] já existente, exemplo abaixo:
|
Beta Was this translation helpful? Give feedback.
-
Olá! A função process_error_body() da classe Entity ao chamar o RecuperableError tenta pegar o elemento error da $message, mas ele nem sempre existe.
No retorno na falha da criação de uma assinatura por exemplo, não possui o elemento error.
Ao enviar dados incorretos de um cartão, o retorno é este:
Ou esse retorno aqui também sem o error que é quando é enviado um cardToken inválido.
Então ocorre o erro Undefined index: error e acaba não retornando o real motivo da transação não ter sido aprovada.
É necessário algo como uma verificação se possui o [error] no $message e se não, se tem o [code], e se não tem nenhum dos dois.
Beta Was this translation helpful? Give feedback.
All reactions