From 8a91520c0414941baa566e3385cf6e643958a0a8 Mon Sep 17 00:00:00 2001 From: Pedro Casado Date: Wed, 12 Feb 2020 19:48:13 -0300 Subject: [PATCH] handle array/string correctly --- src/NotaCarioca/SoapHandler.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/NotaCarioca/SoapHandler.php b/src/NotaCarioca/SoapHandler.php index 0cb1d88..e630cdb 100644 --- a/src/NotaCarioca/SoapHandler.php +++ b/src/NotaCarioca/SoapHandler.php @@ -136,9 +136,13 @@ public function getErrors(string $responseXml): array { $resultArr = $this->xmlEncoder->decode($responseXml, ''); - if (isset($resultArr['ListaMensagemRetorno']) and !empty($resultArr['ListaMensagemRetorno']['MensagemRetorno'])) { - foreach ($resultArr['ListaMensagemRetorno'] as $msgRetorno) { - $errors[] = $msgRetorno['Codigo'].' - '.$msgRetorno['Mensagem']; + if (isset($resultArr['ListaMensagemRetorno'])) { + if (isset($resultArr['ListaMensagemRetorno']['MensagemRetorno']['Codigo'])) { + $errors[] = $resultArr['ListaMensagemRetorno']['MensagemRetorno']['Codigo'].' - '.$resultArr['ListaMensagemRetorno']['MensagemRetorno']['Mensagem']; + } else { + foreach ($resultArr['ListaMensagemRetorno']['MensagemRetorno'] as $msgRetorno) { + $errors[] = $msgRetorno['Codigo'].' - '.$msgRetorno['Mensagem']; + } } return $errors;