Ir para conteúdo
  • Cadastre-se

dev botao

Modelos de XML com envelope soap para versao 4.0


Arnaldo Luiz

Recommended Posts

 

Com aproximaçao do fim do prazo para a migração para a versão 4.0 vou deixar aqui dois xmls completos para exemplo

que pode servir de referência para quem desenvolve

Consulta status do servidor

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
	<soap12:Body>
		<cteDadosMsg
			xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CTeStatusServicoV4">
			<consStatServCTe versao="4.00"
				xmlns="http://www.portalfiscal.inf.br/cte">
				<tpAmb>2</tpAmb>
				<cUF>50</cUF>
				<xServ>STATUS</xServ>
			</consStatServCTe>
		</cteDadosMsg>
	</soap12:Body>
</soap12:Envelope>

 

 

CTe SincV4 sem soapheader e com dados compactados na base64

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
	<soap12:Body>
		<cteDadosMsg xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSincV4">
          dadoscompactados
		</cteDadosMsg>
	</soap12:Body>
</soap12:Envelope>

CTe.xml descompactado (Esse é um exemplo só para mostrar como proceder  a compactação na base64 , esta incompleto)

<CTe xmlns="http://www.portalfiscal.inf.br/cte">
	<infCte versao="4.00" Id="CTe50231200172038000167570500000000031003067083">
	</infCte>
	<infCTeSupl>
	</infCTeSupl>
	<Signature	xmlns="http://www.w3.org/2000/09/xmldsig#">
	</Signature>
</CTe>

 Para obter os dados compactados utilizando a linha de comando em Linux

cat CTe.xml | gzip | base64 > dadoscompactados

 

Espero ter ajudado alguem

  • Curtir 7
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Ola boa tarde, segui os exemplo indicado acima sobre a questão do envio do CTe, porem, mesmo assim estamos problemas, quando pegamos o xml gerado pelo sistema e validamos nos portais da receita ele é validado, porem quando tentamos enviar pelo sistema, o arquivo de retorno gera o erro 215 - Rejeicao: Falha no schema XML mesmo os arquivos gerado corretamente compactado em GZip e transformado em base 64, alguem tem alguma sugestão do que possa ser? (obs: não foi utilizado o componente do acbr para gerar os arquivos)

msgEnvioEnviar.xml retornoEnviar.xml xmlComAssinatura.xml

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Águia Sistemas disse:

Ola boa tarde, segui os exemplo indicado acima sobre a questão do envio do CTe, porem, mesmo assim estamos problemas, quando pegamos o xml gerado pelo sistema e validamos nos portais da receita ele é validado, porem quando tentamos enviar pelo sistema, o arquivo de retorno gera o erro 215 - Rejeicao: Falha no schema XML mesmo os arquivos gerado corretamente compactado em GZip e transformado em base 64, alguem tem alguma sugestão do que possa ser? (obs: não foi utilizado o componente do acbr para gerar os arquivos)

msgEnvioEnviar.xml 5.12 kB · 0 downloads retornoEnviar.xml 557 B · 0 downloads xmlComAssinatura.xml 6.53 kB · 0 downloads

comparando com o XML de um CTE autorizado aqui a unica coisa que notei de diferente foi que eu  nao uso esse [[CDATA no qrcode

 

<qrCodCTe>https://homologacao.nfe.fazenda.sp.gov.br/CTeConsulta/qrCode?chCTe=35231200472038000248570350000002091003067115&tpAmb=1</qrCodCTe>

 

Link para o comentário
Compartilhar em outros sites

26 minutos atrás, Arnaldo Luiz disse:

comparando com o XML de um CTE autorizado aqui a unica coisa que notei de diferente foi que eu  nao uso esse [[CDATA no qrcode

 

<qrCodCTe>https://homologacao.nfe.fazenda.sp.gov.br/CTeConsulta/qrCode?chCTe=35231200472038000248570350000002091003067115&tpAmb=1</qrCodCTe>

 

Eu testei com <?[CDATA]>  e autorizou, mas durante o teste ocorreu um erro e eu percebi que estao retornando o erro, se voce conseguir interceptar a resposta do server talvez encontre o motivo boa sorte !

 

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<cteRecepcaoResult xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSincV4">
<retCTe versao="4.00" xmlns="http://www.portalfiscal.inf.br/cte">
<tpAmb>2</tpAmb>
<cUF>35</cUF>
<verAplic>SP-CTe-2023-12-15-1</verAplic>
<cStat>215</cStat>
<xMotivo>Rejeição: Falha no schema XML [Detalhes: The "http://www.portalfiscal.inf.br/cte:qrCodCTe" element is invalid - The value "https://homologacao.nfe.fazenda.sp.gov.br/CTeConsulta/qrCode?chCTe=35231200472038000248570350000002121003067145&amp;tpAmb=1" is invalid according to its datatype "String" - The Pattern constraint failed.].</xMotivo>
<protCTe versao="4.00">
<infProt>
<tpAmb>2</tpAmb>
<verAplic>SP-CTe-2023-12-15-1</verAplic>
<dhRecbto>2023-12-22T16:24:52-03:00</dhRecbto>
<cStat>215</cStat>
<xMotivo>Rejeição: Falha no schema XML [Detalhes: The "http://www.portalfiscal.inf.br/cte:qrCodCTe" element is invalid - The value "https://homologacao.nfe.fazenda.sp.gov.br/CTeConsulta/qrCode?chCTe=35231200472038000248570350000002121003067145&amp;tpAmb=1" is invalid according to its datatype "String" - The Pattern constraint failed.].</xMotivo>
</infProt>
</protCTe>
</retCTe>
</cteRecepcaoResult>
</soap:Body>
</soap:Envelope>

 

Link para o comentário
Compartilhar em outros sites

Estranho, se eu tiro aquela informação ele e coloco da forma semelhante como você mostrou ali, da essa a mensagem - Erro: XML mal formado - 'https' é um símbolo inesperado. O símbolo esperado é '<!--' ou '<[CDATA['. 

Acredito que possa ser outra coisa ainda. Na versão 3.0 conseguimos fazer o envio normal, porem nessa nova versão esta dando esses problemas 

Link para o comentário
Compartilhar em outros sites

43 minutos atrás, Águia Sistemas disse:

Estranho, se eu tiro aquela informação ele e coloco da forma semelhante como você mostrou ali, da essa a mensagem - Erro: XML mal formado - 'https' é um símbolo inesperado. O símbolo esperado é '<!--' ou '<[CDATA['. 

Acredito que possa ser outra coisa ainda. Na versão 3.0 conseguimos fazer o envio normal, porem nessa nova versão esta dando esses problemas 

<qrCodCTe><![CDATA[https://homologacao.nfe.fazenda.sp.gov.br/CTeConsulta/qrCode?chCTe=35231200472038000248570350000002131003067150&tpAmb=1]]></qrCodCTe>

assim AUTORIZOU , eu me lembro que na sefaz SP eu tive problemas porque o servidor QRCode homologacao e producao sao diferentes, mas eu chequei e na sefaz RS sao o mesmo, sugestao tenta transmitir pra outra sefaz se vc tiver como 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Águia Sistemas disse:

Estranho, se eu tiro aquela informação ele e coloco da forma semelhante como você mostrou ali, da essa a mensagem - Erro: XML mal formado - 'https' é um símbolo inesperado. O símbolo esperado é '<!--' ou '<[CDATA['. 

Acredito que possa ser outra coisa ainda. Na versão 3.0 conseguimos fazer o envio normal, porem nessa nova versão esta dando esses problemas 

Quando vc descobrir o problema ea soluçao posta aqui por favor

Link para o comentário
Compartilhar em outros sites

Em 22/12/2023 at 18:16, Arnaldo Luiz disse:

Quando vc descobrir o problema ea soluçao posta aqui por favor

Ola Bom Dia, 

sobre a situação original referente ao o arquivo de retorno gera o erro 215 - Rejeição: Falha no Schema XML, no meu primeiro post acima, o problema acreditem ou não estávamos usando uma variável do tipo TStringList, onde ao receber o ultimo conteúdo :
 

Ex: (algo semelhante)

vStrList.Text :vStrList.Text + '</CTe>'; 

Dessa forma era adicionada uma linha a mais, ficando uma linha vazia no final e dando de erro 215 - Rejeição: Falha no Schema XML.

Para solucionar e evitar o erro 215 - Rejeição: Falha no Schema XML, trocamos a variável do tipo TStringList para TMemo, dessa forma não foi adicionada nenhuma última linha em branco.

Pois é necessário usar o SaveToFile de alguma forma, e encontramos a solução no TMemo, fazendo o papel dele num try ate o SaveToFile e dando um finally .Free no final.

Até então durante os testes, obtivemos os resultados positivos esperados no Retorno:

<cStat>100</cStat>
<xMotivo>Autorizado o uso do CT-e</xMotivo>

 

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
Em 05/12/2023 at 11:28, Arnaldo Luiz disse:

 

Com aproximaçao do fim do prazo para a migração para a versão 4.0 vou deixar aqui dois xmls completos para exemplo

que pode servir de referência para quem desenvolve

Consulta status do servidor

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
	<soap12:Body>
		<cteDadosMsg
			xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CTeStatusServicoV4">
			<consStatServCTe versao="4.00"
				xmlns="http://www.portalfiscal.inf.br/cte">
				<tpAmb>2</tpAmb>
				<cUF>50</cUF>
				<xServ>STATUS</xServ>
			</consStatServCTe>
		</cteDadosMsg>
	</soap12:Body>
</soap12:Envelope>

 

 

CTe SincV4 sem soapheader e com dados compactados na base64

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
	<soap12:Body>
		<cteDadosMsg xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSincV4">
          dadoscompactados
		</cteDadosMsg>
	</soap12:Body>
</soap12:Envelope>

CTe.xml descompactado (Esse é um exemplo só para mostrar como proceder  a compactação na base64 , esta incompleto)

<CTe xmlns="http://www.portalfiscal.inf.br/cte">
	<infCte versao="4.00" Id="CTe50231200172038000167570500000000031003067083">
	</infCte>
	<infCTeSupl>
	</infCTeSupl>
	<Signature	xmlns="http://www.w3.org/2000/09/xmldsig#">
	</Signature>
</CTe>

 Para obter os dados compactados utilizando a linha de comando em Linux

cat CTe.xml | gzip | base64 > dadoscompactados

 

Espero ter ajudado alguem

Acrescentando aqui uma ajuda para quem precisar. A parte do Gzip

Em C#

public string CompressGzip2(string svalue)
{
    byte[] compressedBytes;

    using (var uncompressedStream = new MemoryStream(Encoding.UTF8.GetBytes(svalue)))
    {
        using (var compressedStream = new MemoryStream())
        {
            using (var compressorStream = new GZipStream(compressedStream, CompressionMode.Compress))
            {
                uncompressedStream.CopyTo(compressorStream);
            }

            compressedBytes = compressedStream.ToArray();
        }
    }

    return Convert.ToBase64String(compressedBytes);
}

---------------------

Em Vb.Net

    Public Function CompressGzip2(ByVal svalue As String) As String
        Dim compressedBytes As Byte()

        Using uncompressedStream = New MemoryStream(Encoding.UTF8.GetBytes(svalue))

            Using compressedStream = New MemoryStream()

                Using compressorStream = New GZipStream(compressedStream, CompressionMode.Compress)

                    uncompressedStream.CopyTo(compressorStream)
                End Using

                compressedBytes = compressedStream.ToArray()
            End Using
        End Using

        Return Convert.ToBase64String(compressedBytes)
    End Function

 

Não é necessário fazer nada, apenas pegar o XML q começa com a tag CTe e enviar para a compressão, após, encapsular o zipado dentro do envelope

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.