Prezados,
Mesmo sendo um tópico antigo, coloco aqui uma breve observação quanto ao código do exemplo disponibilizado aqui e encontrado no trunk2 (https://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrMonitorPLUS/Lazarus/Exemplos/nfeBO.php).
Analisando o código, observei que a linha:
if (!isset($respostaFuncaoArray["STATUS"]["CStat"])) { throw new Exception(nl2br($respostaFuncao)); }
Estava forçando uma exception, o que acarretava na execução do bloco catch, mesmo a resposta para o ACBrmonitorPlus ter retornado um resultado correto.
Observei que isso ocorreu por causa do índice "STATUS" em maiúsculo. Fiz a correção e funcionou perfeitamente:
Meu código ficou assim então:
(...)
if (!isset($respostaFuncaoArray["Status"]["CStat"])) {throw new Exception(nl2br($respostaFuncao)); }
else {
/* LIMPANDO OS DADOS DE CONEXÃO COM O SOCKET */
$retorno["statusRetorno"] = "SUCESSO";
$retorno["msgRetorno"] = $respostaFuncaoArray["Status"]["CStat"]." - ".$respostaFuncaoArray["Status"]["XMotivo"];
return $retorno;
}
(...)
Aproveito para agrader pelas contribuições dos códigos, pois era o que eu estava procurando.
Meu arquivo corrigido é este:
nfeBO.php