Ir para conteúdo
  • Cadastre-se

dev botao

Erro 400 BAD_REQUEST ao enviar o boleto online para o Sicredi com caracteres especiais nas mensagens


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

Recommended Posts

  • Membros Pro
Postado

Bom dia. Atualizei o componente há alguns dias atrás, e após essa atualização comecei a receber o seguinte erro ao registrar o boleto online para o Sicredi:

400 BAD_REQUEST "Failed to read HTTP message"; nested exception is
org.springframework.core.codec.DecodingException: JSON decoding error:
Invalid UTF-8 middle.

O caso está sendo gerado quando há caracteres especiais em "mensagens" do JSON enviado, onde o mesmo não está tratando, após a troca para utilizar ACBrJSON.

  • Consultores
Postado

usa Delphi, Lib, Lazarus ou Monitor?

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado
6 minutos atrás, Victor H. Gonzales - Panda disse:

usa Delphi, Lib, Lazarus ou Monitor?

Utilizo Delphi.

  • Consultores
Postado

faça um teste por favor...
no uses adicione ACBrUtil.Strings

na linha 111 e 290 antes dela adicione esse RetWS := UTF8.....

RetWS := UTF8ToNativeString(RetWS);
if RetWS <> '' then

 

veja se resolve a situação

 

  • Curtir 2
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado (editado)

Boa tarde. Desculpa a demora do teste, acabei tendo outras prioridades.

Mas realizei o teste e não resolveu o problema. Neste caso o problema está sendo gerado no envio e não na tratativa do retorno (não sei se pode ter no retorno também, mas o meu caso é caracteres especiais no JSON de envio).

Acredito que o problema está no procedimento TBoletoW_Sicredi_APIV2.RequisicaoJson da unit ACBrBoletoW_Sicredi_APIV2

Que está gerando o JSON da seguinte forma (removi alguns dados sensíveis):

 {
     "tipoCobranca": "HIBRIDO",
     "codigoBeneficiario": "",
     "especieDocumento": "DUPLICATA_MERCANTIL_INDICACAO",
     "nossoNumero": "",
     "seuNumero": "/1        ",
     "dataVencimento": "2024-07-01",
     "valor": 1,
     "multa": 2,
     "pagador": {
         "tipoPessoa": "PESSOA_FISICA",
         "documento": "",
         "nome": "",
         "endereco": "",
         "cidade": "",
         "uf": "",
         "cep": ""
     },
     "mensagens": ["ENDERECO DO BENEFICIARIO: ", "APÓS 06 DIAS DO VENCIMENTO, SUJEITO A", "PROTESTO."]
 }

 

Se trocar a palavra "APÓS" para "APOS" o envio é realizado normalmente.

Editado por isolopak
  • Consultores
Postado
Em 11/06/2024 at 17:13, isolopak disse:

Boa tarde. Desculpa a demora do teste, acabei tendo outras prioridades.

Mas realizei o teste e não resolveu o problema. Neste caso o problema está sendo gerado no envio e não na tratativa do retorno (não sei se pode ter no retorno também, mas o meu caso é caracteres especiais no JSON de envio).

Acredito que o problema está no procedimento TBoletoW_Sicredi_APIV2.RequisicaoJson da unit ACBrBoletoW_Sicredi_APIV2

Que está gerando o JSON da seguinte forma (removi alguns dados sensíveis):

 {
     "tipoCobranca": "HIBRIDO",
     "codigoBeneficiario": "",
     "especieDocumento": "DUPLICATA_MERCANTIL_INDICACAO",
     "nossoNumero": "",
     "seuNumero": "/1        ",
     "dataVencimento": "2024-07-01",
     "valor": 1,
     "multa": 2,
     "pagador": {
         "tipoPessoa": "PESSOA_FISICA",
         "documento": "",
         "nome": "",
         "endereco": "",
         "cidade": "",
         "uf": "",
         "cep": ""
     },
     "mensagens": ["ENDERECO DO BENEFICIARIO: ", "APÓS 06 DIAS DO VENCIMENTO, SUJEITO A", "PROTESTO."]
 }

 

Se trocar a palavra "APÓS" para "APOS" o envio é realizado normalmente.

na linha 166 altere para 

  FPContentType := 'application/json; charset=utf-8';

 

ACBrBoletoW_Sicredi_APIV2.pas

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado

Boa tarde, troquei a unit que me passou, mas desde manhã acredito que a homologação não está respondendo.

Pois estou recebendo o seguinte retorno:

Falha na Autenticação: HTTP_Code=503 Erro=<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
<hr><cen

 

Irei tentar novamente mais tarde ou na segunda, caso não estabilizar irei verificar se será possível realizar o teste em ambiente de produção. Assim que tiver um retorno aviso aqui.

  • Membros Pro
Postado (editado)

Bom dia, desculpa a demora do retorno, estava aguardando a homologação voltar a responder e em produção tive que aguardar a autorização para realizar o teste. 
Mas consegui realizar o teste tanto em homologação quando em produção em ambos tive o mesmo retorno. Utilizei a unit que enviou, conforme solicitado.

image.thumb.png.7c6c3065639a04aabc6ac5dbef27bbcb.png

Retorno da requisição:
400 BAD_REQUEST "Failed to read HTTP message"; nested exception is org.springframework.core.codec.DecodingException: JSON decoding error: Invalid UTF-8 middle

 

Há mais algo que posso testar?

Editado por isolopak
  • Consultores
Postado
39 minutos atrás, isolopak disse:

Bom dia, desculpa a demora do retorno, estava aguardando a homologação voltar a responder e em produção tive que aguardar a autorização para realizar o teste. 
Mas consegui realizar o teste tanto em homologação quando em produção em ambos tive o mesmo retorno. Utilizei a unit que enviou, conforme solicitado.

image.thumb.png.7c6c3065639a04aabc6ac5dbef27bbcb.png

Retorno da requisição:
400 BAD_REQUEST "Failed to read HTTP message"; nested exception is org.springframework.core.codec.DecodingException: JSON decoding error: Invalid UTF-8 middle

 

Há mais algo que posso testar?

consegue disponibilizar as credenciais de homologação para verificar essa questão?

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Consultores
Postado

[email protected]

envie o ini de configuração e credenciais por favor. 

 

obrigado

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado

Bom dia.

Enviado no e-mail o arquivo ini com as credenciais e o log da execução gerando o caso para facilitar o entendimento.

  • Consultores
Postado

image.png?ex=6676da58&is=667588d8&hm=69b

image.png

fiz alguns testes aqui, no começou realmente deu problema, mas depois não consegui mais simular o problema.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado

Realizei o teste aqui e o cenário que te enviei está acontecendo. 

O JSON está enviado da seguinte forma (Somente removi o endereço, mas não há caráteres especial e erro para ao trocar o APÓS para APOS):

"mensagens":["ENDERECO DO BENEFICIARIO: ","APÓS 06 DIAS DO VENCIMENTO, SUJEITO A","PROTESTO."]

  • Consultores
Postado
40 minutos atrás, isolopak disse:

Realizei o teste aqui e o cenário que te enviei está acontecendo. 

O JSON está enviado da seguinte forma (Somente removi o endereço, mas não há caráteres especial e erro para ao trocar o APÓS para APOS):

"mensagens":["ENDERECO DO BENEFICIARIO: ","APÓS 06 DIAS DO VENCIMENTO, SUJEITO A","PROTESTO."]

o componente está atualizado?

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Consultores
Postado

Por favor atualize seus fontes, pelo SVN do ACBr... 

Já subimos para o nosso repositório de fontes, modificações que podem corrigir algum dos itens referentes a esse tópico...

Por favor atualize seus fontes, faça testes, e se possível comente em uma nova resposta, se o problema foi resolvido...

Dúvidas, sobre o uso do SVN ?  Clique aqui e veja um vídeo

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado

Boa tarde.

Realizei os teste em homologação e produção e em ambos o erro não aconteceu. 

Aparentemente deu certo a alteração. Caso eu encontrar alguma nova situação entro em contato novamente.

Obrigado pela atenção.

  • Consultores
Postado

Obrigado por reportar.

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

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

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

 

 

  • Este tópico foi criado há 171 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...