Ir para conteúdo
  • Cadastre-se

dev botao

Erro boleto sicoob via webservice ao informar instruções de pagamento


Ver Solução Respondido por Victor H. Gonzales - Panda,
  • Este tópico foi criado há 554 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Ao informar as instruções de pagamentos o componente está gerando json inválido, gerando erro na integração.

05/05/23 10:52:47:622 - Autenticando Token... 

05/05/23 10:52:47:927 - Comando Enviar: [{"numeroContrato":878022,"modalidade":1,"numeroContaCorrente":509213,"especieDocumento":"DM","dataEmissao":"2023-05-05T00:00:00-03:00","nossoNumero":"02176714","seuNumero":"02176714","identificacaoBoletoEmpresa":"02176714","identificacaoEmissaoBoleto":1,"identificacaoDistribuicaoBoleto":1,"valor":116.03,"dataVencimento":"2023-05-01T00:00:00-03:00","numeroParcela":1,"aceite":true,"tipoDesconto":0,"tipoJurosMora":0,"dataJurosMora":"1899-12-30T00:00:00-03:00","valorJurosMora":0.15,"tipoMulta":0,"valorMulta":0,"pagador":{"numeroCpfCnpj":"11041534000182","nome":"(175) - A C BORGES BERRIEL COMERCIO DE DOCES","endereco":"AV JOSE CARLOS PEREIRA PINTO, SN ","bairro":"GUARUS (PQ PRESIDENTE VARGAS)","cidade":"Campos dos Goytacazes","cep":"28100000","uf":"RJ"},"mensagensInstrucao":{"tipoInstrucao":1,"mensagens":"Instrucao 1","mensagens":"Instrucao 2","mensagens":"Instrucao 3"},"gerarPdf":false,"codigoCadastrarPIX":1}]

05/05/23 10:52:48:270 - Retorno Envio: HTTPCode=406
Result={"mensagens":[{"mensagem":"Can not deserialize instance of java.lang.String[] out of VALUE_STRING token\n at [Source: org.apache.cxf.transport.http.AbstractHTTPDestination$1@a3e6c22c; line: 1, column: 813] (through reference chain: java.util.ArrayList[0]->br.com.sicoob.sisbr.cobrancabancaria.api.rest.dto.BoletoRestDto[\"mensagensInstrucao\"]->br.com.sicoob.sisbr.cobrancabancaria.api.rest.dto.MensagensInstrucao[\"mensagens\"])","codigo":"0004"}]}
 

 

erro.png

  • 2 semanas depois ...
Postado

Sobre esse problema eu alterei a procedure GerarInstrucao para gerar as mensagens conforme a documentação do sicoob.

Se for possível subir para o svn.

procedure TBoletoW_Bancoob.GerarInstrucao(AJson: TJsonObject);
var
  JsonMsg                  : TJsonObject;
  JsonPairMsg, JsonPairMsgs: TJSONPair;
  JsonMsgs                 : TJsonArray;
begin
  if Assigned(aTitulo) then
  begin
    if Assigned(AJson) then
    begin
      if ATitulo.Instrucao1 <> '' then
      begin
        JsonMsg := TJsonObject.Create;
        try
          JsonMsg.Add('tipoInstrucao').Value.AsInteger := 1;

          JsonMsgs     := TJsonArray.Create;
          JsonPairMsgs := TJsonPair.Create(JsonMsg, 'mensagens');
          try
            JsonMsgs.Add.AsString := ATitulo.Instrucao1;

            if ATitulo.Instrucao2 <> '' then
              JsonMsgs.Add.AsString := ATitulo.Instrucao2;

            if ATitulo.Instrucao3 <> '' then
              JsonMsgs.Add.AsString := ATitulo.Instrucao3;

            JsonPairMsgs.Value.AsArray := JsonMsgs;
            JsonMsg.Add('mensagens').Assign(JsonPairMsgs);
          finally
            JsonPairMsgs.Free;
            JsonMsgs.Free;
          end;

          JsonPairMsg := TJSONPair.Create(AJson, 'mensagensInstrucao');
          try
            JsonPairMsg.Value.AsObject := JsonMsg;
            AJson.Add('mensagensInstrucao').Assign(JsonPairMsg);
          finally
            JsonPairMsg.Free;
          end;
        finally
          JsonMsg.Free;
        end;
      end;
    end;
  end;
end;

 

Documentação API Sicoob.jpg

  • Curtir 1
  • Consultores
Postado
6 horas atrás, allan_hs disse:

Sobre esse problema eu alterei a procedure GerarInstrucao para gerar as mensagens conforme a documentação do sicoob.

Se for possível subir para o svn.

procedure TBoletoW_Bancoob.GerarInstrucao(AJson: TJsonObject);
var
  JsonMsg                  : TJsonObject;
  JsonPairMsg, JsonPairMsgs: TJSONPair;
  JsonMsgs                 : TJsonArray;
begin
  if Assigned(aTitulo) then
  begin
    if Assigned(AJson) then
    begin
      if ATitulo.Instrucao1 <> '' then
      begin
        JsonMsg := TJsonObject.Create;
        try
          JsonMsg.Add('tipoInstrucao').Value.AsInteger := 1;

          JsonMsgs     := TJsonArray.Create;
          JsonPairMsgs := TJsonPair.Create(JsonMsg, 'mensagens');
          try
            JsonMsgs.Add.AsString := ATitulo.Instrucao1;

            if ATitulo.Instrucao2 <> '' then
              JsonMsgs.Add.AsString := ATitulo.Instrucao2;

            if ATitulo.Instrucao3 <> '' then
              JsonMsgs.Add.AsString := ATitulo.Instrucao3;

            JsonPairMsgs.Value.AsArray := JsonMsgs;
            JsonMsg.Add('mensagens').Assign(JsonPairMsgs);
          finally
            JsonPairMsgs.Free;
            JsonMsgs.Free;
          end;

          JsonPairMsg := TJSONPair.Create(AJson, 'mensagensInstrucao');
          try
            JsonPairMsg.Value.AsObject := JsonMsg;
            AJson.Add('mensagensInstrucao').Assign(JsonPairMsg);
          finally
            JsonPairMsg.Free;
          end;
        finally
          JsonMsg.Free;
        end;
      end;
    end;
  end;
end;

 

Documentação API Sicoob.jpg

Boa tarde,

Obrigado pela contribuição, quando anexar algum código fonte, anexa a unit alterada por favor.

 

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
  • Solution
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

Você poderia fazer os testes necessários?

Obrigado!

  • Curtir 1
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"

Postado
17 minutos atrás, Victor H. Gonzales - Panda disse:

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

Você poderia fazer os testes necessários?

Obrigado!

Boa tarde @Victor H. Gonzales - Panda, tudo certo?

Estou passando pela mesma situação, atualizei o ACBr com as alterações e permanece a msg.

Segue retorno do WebService: 

'{"mensagens":[{"mensagem":"Can not deserialize instance of java.lang.String[] out of VALUE_STRING token\n at [Source: org.apache.cxf.transport.http.AbstractHTTPDestination$1@b05210e4; line: 1, column: 777] (through reference chain: java.util.ArrayList[0]->br.com.sicoob.sisbr.cobrancabancaria.api.rest.dto.BoletoRestDto[\"mensagensInstrucao\"]->br.com.sicoob.sisbr.cobrancabancaria.api.rest.dto.MensagensInstrucao[\"mensagens\"])","codigo":"0004"}]}'

Caso precise posso passar mais informações aqui para ajudar a corrigir a inconsistência.

  • Consultores
Postado

Boa noite,

Verifique se não alguma alteração local nos fontes e faça o revert, caso tenha.

Confirmando, reinstalou os componentes após atualizar?

Marcou a opção para apagar arquivos antigos?

Caso não tenha feito algum dia passos acima, reinstale novamente seguindo-os para ver se resolve o problema.

 

  • Curtir 1
Postado
11 horas atrás, Renato Rubinho disse:

Boa noite,

Verifique se não alguma alteração local nos fontes e faça o revert, caso tenha.

Confirmando, reinstalou os componentes após atualizar?

Marcou a opção para apagar arquivos antigos?

Caso não tenha feito algum dia passos acima, reinstale novamente seguindo-os para ver se resolve o problema.

 

@Renato Rubinho Obrigado Renato, realmente agora não ocorre mais aquela rejeição.

 

No entanto estou com outra referente ao conteúdo do JSON que estou enviando, devo abrir outro fórum? ou sabem dizer o que é por este?

codigo":400,"mensagem":"O número do contrato deve ser o mesmo número do cliente.

 

Retorno completo do RetWs: '{"resultado":[{"status":{"codigo":400,"mensagem":"O número do contrato deve ser o mesmo número do cliente."},"boleto":{"numeroContrato":0,"modalidade":17,"numeroContaCorrente":265184,"nossoNumero":359,"seuNumero":"51","especieDocumento":"01","dataEmissao":"2023-05-18T00:00:00-03:00","valor":5,"dataVencimento":"2023-05-18T00:00:00-03:00","tipoDesconto":0,"valorMulta":0,"valorJurosMora":300,"numeroParcela":1,"aceite":false,"pagador":{"nome":"000005 - CLI/FOR/TRANSP 000005","numeroCpfCnpj":"02160244988","endereco":"RUA MARIA CALAI,, 44 44","bairro":"FLOR DA SERRA","cidade":"JOACABA","cep":"89600000","uf":"SC"},"mensagensInstrucao":{"tipoInstrucao":1,"mensagens":["05","01"]},"identificacaoBoletoEmpresa":"000000000000000000359","tipoJurosMora":2,"dataJurosMora":"1899-12-30T00:00:00-03:00","tipoMulta":0,"identificacaoEmissaoBoleto":1,"identificacaoDistribuicaoBoleto":1,"gerarPdf":false,"codigoCadastrarPIX":1}}]}'

Postado
29 minutos atrás, willian_delan disse:

@Renato Rubinho Obrigado Renato, realmente agora não ocorre mais aquela rejeição.

 

No entanto estou com outra referente ao conteúdo do JSON que estou enviando, devo abrir outro fórum? ou sabem dizer o que é por este?

codigo":400,"mensagem":"O número do contrato deve ser o mesmo número do cliente.

 

Retorno completo do RetWs: '{"resultado":[{"status":{"codigo":400,"mensagem":"O número do contrato deve ser o mesmo número do cliente."},"boleto":{"numeroContrato":0,"modalidade":17,"numeroContaCorrente":265184,"nossoNumero":359,"seuNumero":"51","especieDocumento":"01","dataEmissao":"2023-05-18T00:00:00-03:00","valor":5,"dataVencimento":"2023-05-18T00:00:00-03:00","tipoDesconto":0,"valorMulta":0,"valorJurosMora":300,"numeroParcela":1,"aceite":false,"pagador":{"nome":"000005 - CLI/FOR/TRANSP 000005","numeroCpfCnpj":"02160244988","endereco":"RUA MARIA CALAI,, 44 44","bairro":"FLOR DA SERRA","cidade":"JOACABA","cep":"89600000","uf":"SC"},"mensagensInstrucao":{"tipoInstrucao":1,"mensagens":["05","01"]},"identificacaoBoletoEmpresa":"000000000000000000359","tipoJurosMora":2,"dataJurosMora":"1899-12-30T00:00:00-03:00","tipoMulta":0,"identificacaoEmissaoBoleto":1,"identificacaoDistribuicaoBoleto":1,"gerarPdf":false,"codigoCadastrarPIX":1}}]}'

NumeroContrato esta 0, essa informação pega do CodigoCedente que não deve ter sido preenchida.

  • Curtir 2
Postado
12 minutos atrás, allan_hs disse:

NumeroContrato esta 0, essa informação pega do CodigoCedente que não deve ter sido preenchida.

@allan_hsPode me informar com qual dado esta preenchendo esta informação? estamos preenchendo com o CNPJ mas acredito que seja a informação errada, com qual dados está alimentando o CodigoCedente?

Postado
1 hora atrás, willian_delan disse:

@allan_hsPode me informar com qual dado esta preenchendo esta informação? estamos preenchendo com o CNPJ mas acredito que seja a informação errada, com qual dados está alimentando o CodigoCedente?

Ignorar conversação anterior, estava me baseando no boleto do Banco do Brasil que implementamos, já identificamos qual seria o correto.

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