Ir para conteúdo
  • Cadastre-se

Jhonlenon Ribeiro

Membros
  • Total de ítens

    539
  • Registro em

  • Última visita

  • Days Won

    4

Posts postados por Jhonlenon Ribeiro

  1. Bom dia, eu estava verificando e existe outros topicos relacionado a esse assunto...meu erro é esse aqui....

    {"tipoAmbiente":2,"versaoAplicativo":"SefinNac_Pre_1.3.0","dataHoraProcessamento":"2025-06-22T21:45:06.4878178-03:00","idDPS":"DPS170210926114119900015200900000000000000008","erros":[{"Parametros":null,"Codigo":"E999","Descricao":"Erro não catalogado"}]}..isso acontece só em ambiente de homologação....em produção envia normal sem erro. Será que até hoje nunca arrumaram o ambiente em homologação para NFS-e Padrão Nacional? em 2023 esse ERRO NÃO CATALOGADO já ocorria, será que é algum problema no meu xml? esse problema é geral ainda?

  2. Bom dia, já tem uns 8 meses que fiz a homologação da emissão do boleto c6Bank via API, até ai tudo certo, quando fiz a homologação do boleto percebi que o componente ACBrBoleto tentava registrar o mesmo boleto 2 vezes, então pensei deve ser erro no meu código, então ignorei o erro e na segunda tentativa dava certo, isso gerando varios boletos dentro de um while, sendo que o envio é individual de cada boleto e não em lote. Então como mesmo dando erro de duplicidade de registro tava dando certo, deixei quieto, então onten o Rodrigo da c6Bank me chamou no zap e falou que a minha integração já tinha registrado mais de 1000 erro de tentativa de registro de boleto no servidor da c6Bank. Então fui analisar a fundo e vi que no if FBoleto.ListadeBoletos.Count > 0 then da unit ACBrBoletoWS no segundo boleto ele ordenava errado e ao inves de pegar o o segundo boleto, pregava era o primeiro boleto causando duplicidade de registro, outros colegas me relataram a mesma coisa também. Fiz uma alteração na unit ACBrBoletoWS e estou postando em anexo para ser analisada se a alteração está correta, pois se trata de uma unit global onde varios bancos usa ela para o registro de boleto. Só alterei essa parte abaixo da unit.

     

    function TBoletoWS.Enviar: Boolean;
    var
      indice    : Integer;
      LJsonEnvio: String;
      LUltimoEnvio: TDateTime;
    begin
      Banco  := FBoleto.Banco.TipoCobranca;
      Result := False;
      FBoletoWSClass.FHTTPSend.Timeout := FBoleto.Configuracoes.WebService.TimeOut;

      try
        if FBoleto.ListadeBoletos.Count > 0 then
        begin
          // Pegando sempre o último registro
          indice := Pred(FBoleto.ListadeBoletos.Count); // último índice
          FBoletoWSClass.FTitulo := FBoleto.ListadeBoletos[indice];
          LJsonEnvio             := FBoletoWSClass.GerarRemessa;
          Result                 := FBoletoWSClass.Enviar;
          FRetornoWS             := FBoletoWSClass.FRetornoWS;

          RetornoBanco.RetWS  := FRetornoWS;
          RetornoBanco.FEnvWS := LJsonEnvio;
          RetornoBanco.RetornoEnvio(indice);
        end
        else if (FBoleto.Configuracoes.WebService.Operacao in [tpConsulta]) then // Apenas Consulta Genérica
        begin
          FBoletoWSClass.GerarRemessa;
          Result             := FBoletoWSClass.Enviar;
          FRetornoWS         := FBoletoWSClass.FRetornoWS;
          RetornoBanco.RetWS := FRetornoWS;
          RetornoBanco.RetornoEnvio(0);
        end;
      except
        on E: Exception do
        begin
          if not Assigned(FBoletoWSClass.RetornoBanco) or
             ((FBoletoWSClass.RetornoBanco.CodRetorno = 0) and
              (Trim(FBoletoWSClass.RetornoBanco.Msg) = '')) then
            DoLog('Falha Envio: ' + ACBrStr(E.Message), logSimples)
          else
            DoLog('Erro Envio: ' + ACBrStr(IntToStr(FBoletoWSClass.RetornoBanco.CodRetorno) +
              sLineBreak + FBoletoWSClass.RetornoBanco.Msg + sLineBreak + E.Message), logSimples);
          raise;
        end;
      end;
     

    ACBrBoletoWS.pas

  3. Bom dia...eu estava precisando ocultar o e-mail do tomador na NFS-e Autorizada na hora de gerar o DANFSE...eu uso o fortes report. A situação é o seguinte, se o tomador fornecer o e-mail no cadastra ai fica tudo certo, agora quando ele não tem e-mail eu precisava informar um e-mail cooporativa nosso que seria específico para essa situação, só que quando fosse esse e-mail cooporativo não era pra mostrar no DANFSE...passava apenas no xml. Porque isso? porque para CANCELAR uma NFS-e de serviço a prefeitura só deixa se na emissão da NFS-e estiver sido informado um e-mail válido. Uso o componente ACBrNFSeX e Fortes Report. Tem alguma forma de fazer isso usando o componente ACBrNFSeX?

  4. Boa noite, eu estou homologando o boleto do Banrisul via API e vi que está sempre setando URL do token e registro do boleto sempre em produção...mesmo setando o ambiente para homologação, em debug vi que o ero está no ifthen   FPURL := IfThen(Boleto.Configuracoes.WebService.Ambiente in [tawsProducao, tawsHomologacao], C_URL, C_URL_HOM) e no token também OAuth.URL := IfThen(OAuth.Ambiente in [tawsProducao,tawsHomologacao], C_URL_OAUTH_PROD, C_URL_OAUTH_HOM)

    Eu alterei a unit ACBrBoletoW_Banrisul e funcionou corretamente em homologação e produção como mostra o print...também anexei a unit alterada.

     

    01.png

    02.png

    ACBrBoletoW_Banrisul.pas

  5. 2 minutos atrás, HelioNeto disse:

    O Pessoal do Bradesco Alterou o Cadastro lá.
    Agora está retornando o erro 400 Bad Request no Postman

    image.thumb.png.565b37f7315e763c1e6f8df477c9884f.png

    E a mesma coisa no ACBrBoletoDemo

    09/12/24 15:30:46:822 - Retorno Envio: TBoletoW_Bradesco
    09/12/24 15:30:46:822 - Código do Envio: 400 1.1 Bad Request
    09/12/24 15:30:46:824 - Retorno Envio: 
    Result={"statusHttp":400,"errorMessage":"Erro na comunicação CICS X IMS via APPC"}
    09/12/24 15:30:46:824 - Cookies:
    09/12/24 15:30:46:824 - b379869d074ff4de926886d8fcd3aa1e=d24fef8650d060048bb1c27d76667003
    TS015ebd97=0129547d57ac1ddfba1e8713c028c46f964fe06186635c4f4ed0967fc976ebf0ca979f7547cf4e545db250f007da2e2037dc6ff8bb
    dtCookie=v_4_srv_29_sn_45B2DEFEF864033E5368C2AC4EA0AD10_perc_100000_ol_0_mul_1_app-3Aea7c4b59f27d43eb_0
    364315a7bf2deed839e2b5939fc4ba17=fd1819bb0696b66210eae48dda616517

    Vou aguardar os ajustes finais aí para testar.

    @HelioNeto esse erro ai é do ambiente de homologação...fica tentando que vc consegui...tentei varias vezes ai consegui aqui...

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

    no merge anterior você tinha passado invertido essa questão dos 18 e 11 digitos.

     

    mas segue o arquivo atualizado.

     

    image.png

    ACBrBoletoW_Bradesco.pas 33.63 kB · 0 downloads

    @Victor H. Gonzales - Panda Agora ficou OK...testei aqui ai ficou 100%

  6. @Victor H. Gonzales - Panda não deu certo...mais alterei sua função ai funcionou certo.

    function TBoletoW_Bradesco.AgenciaContaFormatada(const APadding: Integer): String;
    var
      LAgencia, LConta, LZeros: String;
      LTotalTamanho: Integer;
    begin
      { ** Recupera a agência e a conta, removendo zeros à esquerda da conta ** }
      LConta := RemoveZerosEsquerda(ATitulo.ACBrBoleto.Cedente.Conta);
      LAgencia := ATitulo.ACBrBoleto.Cedente.Agencia;
      { ** Define o total de caracteres baseado no parâmetro APadding ** }
      LTotalTamanho := APadding - (Length(LAgencia) + Length(LConta));
      { ** Gera os zeros necessários para completar o tamanho total **  }
      if LTotalTamanho > 0 then
        LZeros := StringOfChar('0', LTotalTamanho)
      else
        LZeros := '';
      { ** Concatena agência, zeros e conta ** }
      Result := LAgencia + LZeros + LConta;
    end;

    // ConsultaDetalhe e Baixa usar 11 digitos
      LJsonObject.AddPair('negociacao', AgenciaContaFormatada(11));
    // No registro do boleto usar 18 digitos
      LJsonObject.AddPair('cnegocCobr', AgenciaContaFormatada(18));

    Obs: não se esqueça de alterar na RequisicaoJson do registro do boleto e depois na RequisicaoConsultaDetalhe e RequisicaoBaixa.

     

  7. 5 minutos atrás, Victor H. Gonzales - Panda disse:

    Olha a unit que eu lhe enviei 

    Testei e não deu certo...está formatando errado...
    "cnegocCobr":"38610041000" -  aqui estava correto se fosse na consulta e baixa do boleto.

    Para registro do boleto  "cnegocCobr":"386100000000041000" Tamanho = 18

    Para consulta de baixa de boleto "cnegocCobr":"38610041000" Tamanho = 11

     

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

    ACBrBoletoW_Bradesco.pas 33.61 kB · 1 download

     

    veja se está correto!

    a credencial está para homologação e para o endpoint hibrido?

    @HelioNeto só uma observação, você já conseguiu registrar boleto em homologação com essas credenciais pelo postman? ou por outro meio?

    Porque talves seja problema nas suas credenciais sem permissão para consumir API de cobrança hibrida.

  8. 13 minutos atrás, Victor H. Gonzales - Panda disse:

    o tamanho conta não está ficando sempre com 7 digitos nos seus testes ?

    0000001 ?

    Mais você está nã entendo, nessa campo cnegocCob  tem passar a agencia e conta normal sem acrescentar zero a esquerda na conta, o zero tem ser no meio, agencia + zero + conta = 18 digitos.

  9. @Victor H. Gonzales - Panda Boa tarde, hoje fomos ativar um cliente Bradesco em produção e vimos que essa formatação aqui precisa ser dinâmica e não fixa.

    LJsonObject.AddPair('cnegocCobr', FormatarAgenciaContaBradesco(Boleto.Cedente.Agencia, Boleto.Cedente.Conta));

    Não pode ser passada assim como está abaixo

    LJsonObject.AddPair('cnegocCobr', Boleto.Cedente.Agencia+'0000000'+Boleto.Cedente.Conta);

    Ai eu crei essa função  FormatarAgenciaContaBradesco e FormatarAgenciaContaBradescoBaixaConsulta

    porque 2 funções? 

    porque na consulta e baixa a formataçao do zero no meio é diferente da geração do boleto.

    E por ultimo a unt que está no SVN está faltando o campo ptxJuroVcto quando taxa de juros é mensal...ai acrescentei ela também

    Vou anexar a unt que alterei...acho que é só isso e está pronto....ai é pessoal ir testando e postando aqui no forum ou no discord.

    Obs: no ambiente de homologação está apresentando esse erro aleatório.

    {"statusHttp":400,"errorMessage":"Erro na comunicação CICS X IMS via APPC"}

    Mais isso já é problema no ambiente de homologação.

     

     

    ACBrBoletoW_Bradesco.pas

  10. 14 minutos atrás, HelioNeto disse:

    @Victor H. Gonzales - Panda Está gerando o Token corretamente, agora ocorre o erro 403 - Forbidden Em homologação

    Conforme Log:
     

    09/12/24 11:21:29:605 - Retorno Envio: TBoletoW_Bradesco
    09/12/24 11:21:29:605 - Código do Envio: 403 1.1 Forbidden
    09/12/24 11:21:29:606 - Retorno Envio: 
    Result={"registrarTitulo":"1","codUsuario":"APISERVIC","nroCpfCnpjBenef":"68542653","filCpfCnpjBenef":"1018","digCpfCnpjBenef":"38","tipoAcesso":"2","cpssoaJuridContr":"2337627","ctpoContrNegoc":"000","nseqContrNegoc":"2337627","cidtfdProdCobr":"09","cnegocCobr":"282200000000008442","codigoBanco":"237","filler":"","eNseqContrNegoc":"2337627","tipoRegistro":"001","cprodtServcOper":"00000000","ctitloCobrCdent":"99888766483","ctitloCliCdent":"0000000001","demisTitloCobr":"09.12.2024","dvctoTitloCobr":"09.01.2025","cidtfdTpoVcto":"0","cindcdEconmMoeda":"00006","vnmnalTitloCobr":10000,"qmoedaNegocTitlo":"0","cespceTitloCobr":"02","cindcdAceitSacdo":"N","ctpoProteTitlo":"0","ctpoPrzProte":"0","ctpoProteDecurs":"0","ctpoPrzDecurs":"0","cctrlPartcTitlo":"0","cformaEmisPplta":"02","cindcdPgtoParcial":"N","qtdePgtoParcial":"000","filler1":"","ptxJuroVcto":0,"vdiaJuroMora":0,"qdiaInicJuro":0,"pmultaAplicVcto":0,"vmultaAtrsoPgto":0,"qdiaInicMulta":0,"pdescBonifPgto01":0,"vdescBonifPgto01":0,"dlimDescBonif1":"","pdescBonifPgto02":0,"vdescBonifPgto02":0,"dlimDescBonif2":"","pdescBonifPgto03":0,"vdescBonifPgto03":0,"dlimDescBonif3":"","ctpoPrzCobr":"1","pdescBonifPgto":"0","vdescBonifPgto":"0","dlimBonifPgto":"","vabtmtTitloCobr":"0","viofPgtoTitlo":"0","filler2":"","isacdoTitloCobr":"CLIENTE DE TESTES","elogdrSacdoTitlo":"Rua dos clientes","enroLogdrSacdo":"100","ecomplLogdrSacdo":"","ccepSacdoTitlo":"18270","ccomplCepSacdo":"000","ebairoLogdrSacdo":"Centro","imunSacdoTitlo":"Tatui","csglUfSacdo":"SP","indCpfCnpjSacdo":"1","nroCpfCnpjSacdo":"67638780876","renderEletrSacdo":"","cdddFoneSacdo":"","cfoneSacdoTitlo":"","bancoDeb":"0","agenciaDeb":"0","agenciaDebDv":"0","contaDeb":"0","bancoCentProt":"0","agenciaDvCentPr":"0","isacdrAvalsTitlo":"","nroCpfCnpjSacdr":"","ccepSacdrTitlo":"","ccomplCepSacdr":"","elogdrSacdrAvals":"","enroLogdrSacdr":"","ecomplLogdrSacdr":"","ebairoLogdrSacdr":"","imunSacdrAvals":"","csglUfSacdr":"","indCpfCnpjSacdr":"1","renderEletrSacdr":"","cdddFoneSacdr":"","cfoneSacdrTitlo":"","filler3":"","fase":"1","cindcdCobrMisto":"S","ialiasAdsaoCta":"","iconcPgtoSpi":"","caliasAdsaoCta":"","ilinkGeracQrcd":"","wqrcdPdraoMercd":"","validadeAposVencimento":"","filler4":""}
    09/12/24 11:21:29:606 - Cookies:
    09/12/24 11:21:29:606 - b379869d074ff4de926886d8fcd3aa1e=83782428a60fd841c7c84fdb45315353
    TS015ebd97=0129547d57dc3837e01ca9caf51d7cde09b6967f9e6c699d80ec5946478c211f0d2432b86c310cb70a67506582baf45cc6abd7301d
    
    09/12/24 11:21:29:606 - 
    09/12/24 11:21:29:607 - 
    09/12/24 11:21:29:607 - Header:
    09/12/24 11:21:29:607 - HTTP/1.1 403 Forbidden
    x-rate-limit: [{"window":0,"type":"throttle","remaining":499}]
    max-forwards: 20
    via: 1.1 traffic-75ff7f498b-q6cxj (Gateway)
    x-correlationid: Id-6a0c5767b04901003e8375f8 0; Id-6a0c57678216f82d08c2baaa 0
    date: Mon, 09 Dec 2024 15:27:38 GMT
    content-type: application/json
    Transfer-Encoding: chunked
    
    

     

    Observaçõa, nesse Payload já fiz os Ajustes que o @Jhonlenon Ribeiro explicou que campos com Inteiro deve ir String.

    @HelioNeto seu problema está nós dados do json....o CNPJ em homologação está correto, mais agencia e conta não....para homologação usar esses dados....

    Utilizar para homologação:
    CNPJ: 68.542.653/1018-38
    Carteira: 09
    Agência: 3861
    Conta: 41000

    Esses campos informe com zero conforme o manual orienta

     "cpssoaJuridContr": 0
       "ctpoContrNegoc": 0
       "nseqContrNegoc":0

     

  11. @Victor H. Gonzales - Panda Bom dia, testei um boletos em produção com juros e multa em percentual vencido e o valor saiu errado, observe que na unt que está no SVN  está faltando o campo ptxJuroVcto na parte onde gera a juros em percentual. Tanto a multa e juros em percentual tem que passar com 5 casas decimais, por exemplo: 2% = 2.00000 como mostra o print em anexo.

    Fazendo esse ajuste na unt ACBrBoletoW_Bradesco....fica 100% o Bradesco.

     

    01.png

    02.png

  12. @Victor H. Gonzales - Panda  Boa noite...fiz uns testes agora e quase ficou 100%....o detalhe agora está no juros e multa em percentual que você aplicou a mesma regra do valor. 

    AJsonObject.AddPair('ptxJuroVcto', aTitulo.ValorMoraJuros*100); aqui o juros em percentual fica errado

    AJsonObject.AddPair('pmultaAplicVcto', aTitulo.PercentualMulta*100);aqui a multa também fica errada

    Essa campo ptxJuroVcto estava faltando no json, no meu aqui também tava faltando ai fui olhar o manual.

    Os resto está OK. vou anexar o print do juros e multa em percentual.

     

    multa_juros.png

  13. 11 minutos atrás, Victor H. Gonzales - Panda disse:

    Bom dia,

     

    Vou fazer o merge e verificar as alterações aqui...

     

    referente ao cnegocCobr é parametrização do código da agencia e conta, isso não é erro de formação do json.

    o cnpj 68542653101838 tambem acredito que deixarei passando como parametro, e não hardcoded, atualmente está hardcoded para testes.

     

    agora referente ao vnmnalTitloCobr pelo o que vi na documentação, temos que multiplicar por 100 o valor apenas e entregar em valor numerico.

    Preencher no formato: 10000 (título no valor de R$100,00). Se moeda indexada, preencher no formato

     

     

     

     

    Dessa forma que vc falou dá certo...basta informar o CNPJ de homologação e o agencia + conta igual faz em produção. Quando alterar a unit anexa aqui novamente pra gente testar. Aqui eu posso testar em homologação e produção.

  14. @Victor H. Gonzales - Panda Bom dia, ajustei sua unit ACBrBoletoW_Bradesco na parte do json...agora ficou registrando o boleto em homologação e produção usando o mesmo json. O Bradesco confundi muito agente com esse manual, mais pelo que testei aqui são apenas esses 4 campos que são fixo no json de homologação.

        "nroCpfCnpjBenef":"68542653",
       "filCpfCnpjBenef":"1018",
       "digCpfCnpjBenef":"38",
       "cnegocCobr":386100000000041000,

    O restante dos campos segue o manual. Agora um detalhe que me chamou atenção foi isso. No manual manda eu passar um valor numérico no campo vnmnalTitloCobr mais por exemplo vou gerar um boleto com valor 5.10 reais, no json de registro fica normal, vai 5.10...mais na hora de pagar o boleto aparece é 0.50 no valor ou seja fica errado o valor, então fiz um teste assim 

    LJsonObject.AddPair('vnmnalTitloCobr', OnlyNumber(TransFormaRealEmString(aTitulo.ValorDocumento))); ai no json ficou assim "vnmnalTitloCobr" : "510" ai na hora de pagar ficou certo,  era bom fazer mais testes em produção. Já corrigi a unt ACBrBoletoRet_Bradesco e está OK, também ajustei a consulta e baixa do boleto e ficou funcionando em produção. Vou anexar as 2 unit pra você testar ai.

    ACBrBoletoRet_Bradesco.pas ACBrBoletoW_Bradesco.pas

  15. 8 horas atrás, Jhonlenon Ribeiro disse:

    @Victor H. Gonzales - Panda Boa noite...esses 3 campos ai são diferentes em homologação e produção.

    Em homologação

    "cpssoaJuridContr":"2337627"

    "ctpoContrNegoc":"000"

    "nseqContrNegoc":"2337627"

    Em Produção

    "cpssoaJuridContr":"0"

    "ctpoContrNegoc":"0"

    "nseqContrNegoc":"0"

    Outro detalhe, por exemplo no manual manda eu passar esse campo assim "registrarTitulo": 1  ai dá erro....porque estou passando numérico igual manda o manual, ai eu passo assim "registrarTitulo":"1" e dá certo. Isso são varios campos. Eu nunca entendi essa forma diferente de validação de campos do Bradesco, quandi fiz aqui na empresa à 8 meses atrás quebrei muito a cabeça com isso.  Você pode até usar o mesmo json em  homologação e produção, mais vai ter que parametrizar muitos campos. Eu consegui registrar o boleto em homologação com sucesso usando sua unit fixando esse json em anexo...fixa ele nessa parte como mostra o print. Caso apareça o erro TITULO JÁ CADASTRADO ai é só alterar o nosso numero (ctitloCobrCdent). 

    01.png

    json_homologacao.txt 2.63 kB · 1 download

    Hoje fiz uns testes e meu comentário estava errado sobre o json. Forma correta abaixo

    Em homologação

    "cpssoaJuridContr":"0"

    "ctpoContrNegoc":"0"

    "nseqContrNegoc":"0"

    Em Produção

    "cpssoaJuridContr":"0"

    "ctpoContrNegoc":"0"

    "nseqContrNegoc":"0"

    Vamos seguir o manual mesmo, parece que essa questão do json de homologação foi só no inicio.

  16. @Victor H. Gonzales - Panda Boa noite...esses 3 campos ai são diferentes em homologação e produção.

    Em homologação

    "cpssoaJuridContr":"2337627"

    "ctpoContrNegoc":"000"

    "nseqContrNegoc":"2337627"

    Em Produção

    "cpssoaJuridContr":"0"

    "ctpoContrNegoc":"0"

    "nseqContrNegoc":"0"

    Outro detalhe, por exemplo no manual manda eu passar esse campo assim "registrarTitulo": 1  ai dá erro....porque estou passando numérico igual manda o manual, ai eu passo assim "registrarTitulo":"1" e dá certo. Isso são varios campos. Eu nunca entendi essa forma diferente de validação de campos do Bradesco, quandi fiz aqui na empresa à 8 meses atrás quebrei muito a cabeça com isso.  Você pode até usar o mesmo json em  homologação e produção, mais vai ter que parametrizar muitos campos. Eu consegui registrar o boleto em homologação com sucesso usando sua unit fixando esse json em anexo...fixa ele nessa parte como mostra o print. Caso apareça o erro TITULO JÁ CADASTRADO ai é só alterar o nosso numero (ctitloCobrCdent). 

    01.png

    json_homologacao.txt

×
×
  • 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.