Ir para conteúdo
  • Cadastre-se

  • Este tópico foi criado há 876 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

 

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
  • 3 semanas depois ...
Postado

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

Postado
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>

 

Postado
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>

 

Postado

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 

Postado
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 

Postado
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

Postado
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>

 

  • 4 semanas depois ...
Postado
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

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 876 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...