Erro ao consumir WebService enviando XML <faultstring>Internal Error</faultstring>.

Delphi

24/07/2015

Pessoa estou consumindo alguns WebServices com autenticação por certificado e via aplicação o erro retornado é:

<?xml version='1.0' ?>
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Body>
<env:Fault>
<faultcode>env:Client</faultcode>
<faultstring>Internal Error</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>

Via SopaUi ele faz a validação do mesmo XML.
Alguém saberia me dizer o que está acontecendo?

Ferramenta: Delphi 7 com THTTPRIO
O Wsdls foi importado pelo próprio Delphi.
Hugo Silva

Hugo Silva

Curtidas 0

Melhor post

Tiago Rizzon

Tiago Rizzon

27/07/2015

Boa tarde,

eu olhei o teu XML, parece estar ok!
Vc conferiu o envelope conforme o manual? (se ele ficou igual)

Eu não uso o componente HTTPRIO tem um bom tempo. Com o THTTPReqResp (RR), para este erro eu verificaria as propriedades URL com o link ao wsdl e o SoapAction.
Acho que no HTTPRIO deve ser semelhante.

Exemplo:
RR.URL := 'https://nfse.caxias.rs.gov.br/portal/Servicos?wsdl';
RR.SoapAction := 'https://nfse.caxias.rs.gov.br/portal/Servicos';

O XML q vc postou não está assinado... Vc está assinando este documento? digo, vc conferiu no manual se é necessária a assinatura?

E ainda assim, depois de comparar o envelope com o do manual, comprar o XML do conteúdo com o do manual, e o problema persistir, eu entraria em contato com o suporte do webservice, mostrando esses XML's que vc postou acima. Ele vão te dizer certinho oq está errado. Aparentemente não é um erro difícil, deve ser algum detalhe errado, mas meu conhecimento é limitado. Nada melhor que o manual! rsrs
GOSTEI 1

Mais Respostas

Tiago Rizzon

Tiago Rizzon

24/07/2015

Bom dia!

Eu peguei este erro mês passado mas não lembro ao certo oq estava errado. É no xml (envelope e/ou conteudo).

Se não me engano, eu tinha colocado 2x a versão do arquivo XML <?xml version="1.0" encoding="UTF-8"?>...
uma vez no envelope, e outra no nó nfse de caxias (que estava dentro do envelope).
Eu tirei da NFSe e deixei somente no envelope e funcionou. (não tenho certeza se era este o problema relacionado a msg q vc citou, é q resolvi muitos erros na corrida aquele dia)

Eu usei o componente THTTPReqResp, similar ao componente que vc está usando.
Dá uma olhada, quem sabe seja este o problema que vc tem. Se o problema persistir, passa mais informações (oq quer fazer, xml enviado e xml resposta)

Abraço!
GOSTEI 0
Hugo Silva

Hugo Silva

24/07/2015

Bom dia Amigo,

Segue abaixo os dois XML's tanto de envio como de retorno.
O que está sendo feito é a integração com o webservice da operadora de plano de saúde Orizon.
Infelizmente não posso divulgar os dados do XML, então os dados são fictícios.

Tentei alterar o envelope, e fiz uma varredura na sua dica, porém não tive sucesso.

XML de envio:

<?xml version="1.0" encoding="ISO-8859-1"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ans="http://www.ans.gov.br/padroes/tiss/schemas" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
<soapenv:Header/>
<soapenv:Body>
<ans:solicitacaoProcedimentoWS>
<ans:cabecalho>
<ans:identificacaoTransacao>
<ans:tipoTransacao>TIPO_TRANSACAO</ans:tipoTransacao>
<ans:sequencialTransacao>0</ans:sequencialTransacao>
<ans:dataRegistroTransacao>YYYY-MM-DD</ans:dataRegistroTransacao>
<ans:horaRegistroTransacao>HH:MM:SS</ans:horaRegistroTransacao>
</ans:identificacaoTransacao>
<ans:origem>
<ans:identificacaoPrestador>
<ans:codigoPrestadorNaOperadora>999999</ans:codigoPrestadorNaOperadora>
</ans:identificacaoPrestador>
</ans:origem>
<ans:destino>
<ans:registroANS>999999</ans:registroANS>
</ans:destino>
<ans:versaoPadrao>3.02.00</ans:versaoPadrao>
</ans:cabecalho>
<ans:solicitacaoProcedimento>
<ans:solicitacaoSP-SADT>
<ans:cabecalhoSolicitacao>
<ans:registroANS>999999</ans:registroANS>
<ans:numeroGuiaPrestador>99</ans:numeroGuiaPrestador>
</ans:cabecalhoSolicitacao>
<ans:dadosBeneficiario>
<ans:numeroCarteira>9999999999999999</ans:numeroCarteira>
<ans:atendimentoRN>N</ans:atendimentoRN>
<ans:nomeBeneficiario>NOME_BENEFICIARIO</ans:nomeBeneficiario>
</ans:dadosBeneficiario>
<ans:dadosSolicitante>
<ans:contratadoSolicitante>
<ans:codigoPrestadorNaOperadora>99999</ans:codigoPrestadorNaOperadora>
<ans:nomeContratado>NOME_CONTRATADO_SOLICITANTE</ans:nomeContratado>
</ans:contratadoSolicitante>
<ans:profissionalSolicitante>
<ans:conselhoProfissional>9</ans:conselhoProfissional>
<ans:numeroConselhoProfissional>99</ans:numeroConselhoProfissional>
<ans:UF>99</ans:UF>
<ans:CBOS>999999</ans:CBOS>
</ans:profissionalSolicitante>
</ans:dadosSolicitante>
<ans:caraterAtendimento>9</ans:caraterAtendimento>
<ans:dataSolicitacao>YYYY-MM-DD</ans:dataSolicitacao>
<ans:procedimentosSolicitados>
<ans:procedimento>
<ans:codigoTabela>99</ans:codigoTabela>
<ans:codigoProcedimento>99999999</ans:codigoProcedimento>
<ans:descricaoProcedimento>NOME_PROCEDIMENTO</ans:descricaoProcedimento>
</ans:procedimento>
<ans:quantidadeSolicitada>9</ans:quantidadeSolicitada>
</ans:procedimentosSolicitados>
<ans:dadosExecutante>
<ans:codigonaOperadora>999999</ans:codigonaOperadora>
<ans:nomeContratado>NOME_CONTRATADO_EXECUTANTE</ans:nomeContratado>
<ans:CNES>9999999</ans:CNES>
</ans:dadosExecutante>
</ans:solicitacaoSP-SADT>
</ans:solicitacaoProcedimento>
<ans:hash>HASH</ans:hash>
</ans:solicitacaoProcedimentoWS>
</soapenv:Body>
</soapenv:Envelope>

XML de retorno:

<?xml version='1.0' ?>
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Body>
<env:Fault>
<faultcode>env:Client</faultcode>
<faultstring>Internal Error</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>
GOSTEI 0
Hugo Silva

Hugo Silva

24/07/2015

Bom dia Tiago,

entrei em contato com a operadora para tentar identificar o problema, eles estão avaliando o xml juntamente com a equipe de TI deles, mas ainda não recebi um retorno e ainda não sei qual o motivo do erro.

Respondendo a sua pergunta, o XML está sendo assinado via certificado digital.

Obrigado pela ajuda, assim que descobrir o motivo eu posto aqui ok.
GOSTEI 0
Hugo Silva

Hugo Silva

24/07/2015

Boa tarde Tiago, fiz os testes com o acompanhamento do pessoal da operadora, o problema é que eles me passaram um endereço de ws que não é mais usado.

Obrigado pela ajuda.
GOSTEI 0
Tiago Rizzon

Tiago Rizzon

24/07/2015

Certo Hugo!

Abraço!
GOSTEI 0
POSTAR