Ir para conteúdo
  • Cadastre-se

Edson_Ramos

Membros
  • Total de ítens

    16
  • Registro em

  • Última visita

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Edson_Ramos's Achievements

Apprentice

Apprentice (3/14)

  • Reacting Well Rare
  • Conversation Starter
  • First Post
  • Collaborator Rare
  • Week One Done

Recent Badges

5

Reputação

  1. Sim, é a mesma para os dois.
  2. Bom dia, No processo de homologação, houve um retorno do banco, que o código de barras não estava correto. Analisando vi que como informei o digito verificador junto com o conta para aprovar o json da api, mas estava dando problema na geração do codigo de barras, Dai percebi que é correto separar o digito da conta, mas que na geração do json para api que não estava correto. Dai fiz um ajuste no arquivo "ACBrBoletoW_Safra.pas", na linha 252, conforme imagem anexo, e regerei impressão e envio e foi tudo certo.
  3. Boa tarde, Estou fazendo o uso do ACBrBoleto para o Banco Safra (422), registrar via api (webservice). Como eles tem um ambiente de sandbox (homologação), estou tentando fazer o registro de um boleto teste, o retorno no log é somente de código 400. Analisando com o postman o json que o ACBrBoleto gera, vi que o problema é que o atributo "Documento" que o componente AcbrBoleto gera deveria ser "documento", fazendo esse ajuste o documento é registrado. Então fazendo o ajuste no arquivo "ACBrBoletoW_Safra.pas", na linha 299, troco o "D" para "d", consigo o registro do boleto teste no ambiente sandbox
  4. Não deu certo a unit do tópico que vc citou, dai modifiquei umas informações no ACBrBoletoFPDF.pas e ficou alinhado. (esta anexo) ACBrBoletoFPDF.pas
  5. Boa noite, Fiz a atualização dos fontes e quando fui testar a impressão do boleto os modelos estão desalinhados na ficha de pagamento. Usando o ACBrBoleto com o ACBrBoletoFPDF
  6. Bom dia, Verifiquei no método TipoOcorrenciaToCod da unit do Bancoob um código de retorno faltando, conforme imagem, vou anexar a unit com o item adicionado. ACBrBancoBancoob.pas
  7. Ficou show Daniel, parabéns! Boa tarde Italo, Na verdade, o que sei, é esse padrão é somente da Caixa E.Federal. Acredito que outros bancos tem esse sistema também, porém, quase certeza que não é do mesmo padrão.
  8. Muito bom, valeu mesmo Davi !
  9. Sim claro, preciso entrar em contato na agencia para ativar esse serviço. Fiz os procedimentos e como retornou aqueles xmls estou a 97% de concluído o serviço. Obrigado pela dica do xml retorno, quando funcional.
  10. Fiz os teste nessa url que está na unit, ele retorna os seguintes xmls. E sobre o hash, a função usei a que você passou, como mostra na unit Principal. Xml de retorno da inclusão : <?xml version="1.0" encoding="ibm-367"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <manutencaocobrancabancaria:SERVICO_SAIDA xmlns:manutencaocobrancabancaria="http://caixa.gov.br/sibar/manutencao_cobranca_bancaria/boleto/externo" xmlns:sibar_base="http://caixa.gov.br/sibar"> <sibar_base:HEADER> <VERSAO>1.2</VERSAO> <AUTENTICACAO>9leZCacMyrIZzctYQnhp6LoGPWFBOUBQU1BlSyZ9Kz8=</AUTENTICACAO> <USUARIO_SERVICO>SGCBS02P</USUARIO_SERVICO> <OPERACAO>INCLUI_BOLETO</OPERACAO> <SISTEMA_ORIGEM>SIGCB</SISTEMA_ORIGEM> <UNIDADE>0353</UNIDADE> <DATA_HORA>20181201110933</DATA_HORA> </sibar_base:HEADER> <COD_RETORNO>00</COD_RETORNO> <ORIGEM_RETORNO>MANUTENCAO_COBRANCA_BANCARIA</ORIGEM_RETORNO> <MSG_RETORNO></MSG_RETORNO> <DADOS> <CONTROLE_NEGOCIAL> <ORIGEM_RETORNO>SIGCB</ORIGEM_RETORNO> <COD_RETORNO>1</COD_RETORNO> <MENSAGENS> <RETORNO>(89) OPERACAO NAO PERMITIDA - CEDENTE INFORMADO NAO POSSUI AUTORIZACAO PARA UTILIZAR SERVICO WEBSERVICE</RETORNO> </MENSAGENS> </CONTROLE_NEGOCIAL> </DADOS> </manutencaocobrancabancaria:SERVICO_SAIDA> </soapenv:Body> </soapenv:Envelope> Xml da consulta : <?xml version="1.0" encoding="ibm-367"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <consultacobrancabancaria:SERVICO_SAIDA xmlns:consultacobrancabancaria="http://caixa.gov.br/sibar/consulta_cobranca_bancaria/boleto" xmlns:sibar_base="http://caixa.gov.br/sibar"> <sibar_base:HEADER> <VERSAO>1.2</VERSAO> <AUTENTICACAO>w17DVCjz+nn8tasGTNAZI83eooCnab6xuJ86H64ePDI=</AUTENTICACAO> <USUARIO_SERVICO>SGCBS02P</USUARIO_SERVICO> <OPERACAO>CONSULTA_BOLETO</OPERACAO> <SISTEMA_ORIGEM>SIGCB</SISTEMA_ORIGEM> <UNIDADE>0353</UNIDADE> <DATA_HORA>20181201125618</DATA_HORA> </sibar_base:HEADER> <COD_RETORNO>00</COD_RETORNO> <ORIGEM_RETORNO>CONSULTA_COBRANCA_BANCARIA</ORIGEM_RETORNO> <MSG_RETORNO></MSG_RETORNO> <DADOS> <CONTROLE_NEGOCIAL> <ORIGEM_RETORNO>SIGCB</ORIGEM_RETORNO> <COD_RETORNO>1</COD_RETORNO> <MENSAGENS> <RETORNO>(89) OPERACAO NAO PERMITIDA - CEDENTE INFORMADO NAO POSSUI AUTORIZACAO PARA UTILIZAR SERVICO WEBSERVICE</RETORNO> </MENSAGENS> </CONTROLE_NEGOCIAL> </DADOS> </consultacobrancabancaria:SERVICO_SAIDA> </soapenv:Body> </soapenv:Envelope>
  11. Essas units nem são essenciais para o objetivo e finalidade do WebService Soap da Caixa, adicionei e usei para a busca em meu banco de dados de outra aplicação. O Datamodulo nao posso enviar porque é onde estão todas as minhas tabelas parte de outra aplicação. É só criar um datamodulo e colocar o database (FDConnection) do firedac e as querys (FDQuery) da sua tabela onde está os boletos e liga-las a unit Principal.pas, ok. A funcionalidade necessária está toda dentro da unit Principal.pas, os procedimentos para uso está o mais possível desacoplados . ConfigBancoFD.pas uFDSeek.pas
  12. Pessoal estou postando novamente os arquivo Estão com as operações de Baixar, Alterar e consultar incluidos Principal.dfm Principal.pas Registrar.dpr Registrar.dproj
  13. Tudo que precisa pra incluir um boleto e enviar para a caixa está ai. Valeu. Principal.dfm Principal.pas Registrar.dpr Registrar.dproj
  14. Amarildo, bom dia Eu não manjo nada de webservices soap, mas to me matando aqui pra fazer isso funcionar... Assim que conseguir posto aqui pra vocês.
  15. Comecei por aqui e consegui gerar pelo menos o xml. function TfrmPrincipal.GeraXml(banco: TConfigBanco; guia: TDataSet): string; var vsxml : TStringList; vsdata, vsNossoNumero, AEspecieDoc, vsCNPJCPF, vsNome, vsAutenticacao: string; ValorMoraJuros, DataMoraJuros, PercentualMulta: string; begin vsdata := FormatDateTime('yyyymmddhhmmss',now); vsNossoNumero := copy(guia.fieldbyname('nossonum').asstring,1,17); ////////// especie do documento ////////// if AnsiSameText(banco.EspecieDoc, 'DM') then AEspecieDoc := '02' else if AnsiSameText(banco.EspecieDoc, 'BP') then AEspecieDoc := '32' else AEspecieDoc := '99'; ////////////////////////////////////////// ////////////// multa e juros ///////////////// if (guia.FieldByName('juros').AsString <> '') and (guia.FieldByName('juros').AsCurrency > 0 ) then begin ValorMoraJuros := FormatFloat('0.##',guia.FieldByName('juros').AsCurrency); DataMoraJuros := '<DATA>'+ FormatDateTime('yyyy-mm-dd', guia.FieldByName('datven').AsDateTime+1) + '</DATA>'; if (guia.FieldByName('multa').AsCurrency > 0) then PercentualMulta := FormatFloat('0.##',guia.FieldByName('multa').AsCurrency) else PercentualMulta := ''; end else begin ValorMoraJuros := '0.00'; DataMoraJuros := ''; PercentualMulta := ''; end; ///////////////////////////////////////// ////////////// CNPJ CPF //////////////// if FCgcCpf(guia.FieldByName('ncadastro').AsString) then begin vsCNPJCPF := Trim(guia.FieldByName('ncadastro').asString); end else if FCgcCpf(guia.FieldByName('cpfcnpj').AsString) then begin vsCNPJCPF := Trim(guia.FieldByName('cpfcnpj').asString); end; if Length(Trim(guia.FieldByName('cpfcnpj').asString)) = 14 then begin vsCNPJCPF := '<CNPJ>'+vsCNPJCPF+'</CNPJ>'; vsNome := '<RAZAO_SOCIAL>'+guia.FieldByName('nome').AsString+'</RAZAO_SOCIAL>'; end else if Length(Trim(guia.FieldByName('cpfcnpj').asString)) = 11 then begin vsCNPJCPF := '<CPF>'+vsCNPJCPF+'</CPF>'; vsNome := '<NOME>'+guia.FieldByName('nome').AsString+'</NOME>'; end; //////////////////////////////////////// ////// autenticacao //////////////////// vsAutenticacao := Format('%7.7d',[StrToInt(banco.NroCedLimpo)]) +vsNossoNumero +FormatDateTime('ddmmyyyy',guia.fieldbyName('datven').asDateTime) +FormatFloat('000000000000000',guia.fieldbyname('valpre').asCurrency) +FormatFloat('00000000000000',Strtofloat( LimpaNCadastro(banco.CnpjCedente))); vsAutenticacao := TNetEncoding.Base64.EncodeBytesToString(GetStrHashSHA256(vsAutenticacao)); vsxml := TStringList.Create; try with vsxml do begin //add('<?xml version="1.0" encoding="iso-8859-1"?>') //add('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"'); //add(' xmlns:ext="http://caixa.gov.br/sibar/manutencao_cobranca_bancaria/boleto/externo"'); //add(' xmlns:sib="http://caixa.gov.br/sibar">'); //add('<soapenv:Header/>'); //add(' <soapenv:Body>'); //add(' <ext:SERVICO_ENTRADA>'); //add(' <sib:HEADER>'); add('<?xml version="1.0" encoding="UTF-8"?>'); add('<manutencaocobrancabancaria:SERVICO_ENTRADA xmlns:manutencaocobrancabancaria="http://caixa.gov.br/sibar/manutencao_cobranca_bancaria/boleto/externo" xmlns:sibar_base="http://caixa.gov.br/sibar">'); add(' <sibar_base:HEADER>'); add(' <VERSAO>1.2</VERSAO>'); add(' <AUTENTICACAO>'+vsAutenticacao+'</AUTENTICACAO>'); add(' <USUARIO_SERVICO>SGCBS02P</USUARIO_SERVICO>'); add(' <OPERACAO>INCLUI_BOLETO</OPERACAO>'); add(' <SISTEMA_ORIGEM>SIGCB</SISTEMA_ORIGEM>'); add(' <UNIDADE>'+banco.NroAgencia+'</UNIDADE>'); add(' <DATA_HORA>'+vsdata+'</DATA_HORA>'); add(' </sib:HEADER>'); add(' <DADOS>'); add(' <INCLUI_BOLETO>'); add(' <CODIGO_BENEFICIARIO>'+banco.NroCedLimpo+'</CODIGO_BENEFICIARIO>'); add(' <TITULO>'); add(' <NOSSO_NUMERO>'+vsNossoNumero+'</NOSSO_NUMERO>'); add(' <NUMERO_DOCUMENTO>'+copy(guia.FieldByName('nossolimpo').AsString,1,11)+'</NUMERO_DOCUMENTO>'); add(' <DATA_VENCIMENTO>'+FormatDateTime('yyyy-mm-dd',guia.FieldByName('datven').AsDateTime)+'</DATA_VENCIMENTO>'); add(' <VALOR>'+FormatFloat('0.##',guia.FieldByName('valpre').AsCurrency)+'</VALOR>'); add(' <TIPO_ESPECIE>'+AEspecieDoc+'</TIPO_ESPECIE>'); add(' <FLAG_ACEITE>N</FLAG_ACEITE>'); add(' <DATA_EMISSAO>'+FormatDateTime('yyyy-mm-dd',Now)+'</DATA_EMISSAO>'); add(' <JUROS_MORA>'); add(' <TIPO>TAXA_MENSAL</TIPO>'); Add(' '+DataMoraJuros); add(' <PERCENTUAL>'+ValorMoraJuros+'</PERCENTUAL>'); add(' </JUROS_MORA>'); add(' <POS_VENCIMENTO>'); add(' <ACAO>DEVOLVER</ACAO>'); add(' <NUMERO_DIAS>29</NUMERO_DIAS>'); add(' </POS_VENCIMENTO>'); add(' <CODIGO_MOEDA>09</CODIGO_MOEDA>'); add(' <PAGADOR>'); add(' '+vsCNPJCPF); add(' '+vsNome); add(' <ENDERECO>'); add(' <LOGRADOURO>'+copy(guia.FieldByName('endereco').AsString+' '+guia.FieldByName('numero').AsString,1,40)+'</LOGRADOURO>'); add(' <BAIRRO>'+copy(guia.FieldByName('bairro').AsString,1,15)+'</BAIRRO>'); add(' <CIDADE>'+copy(guia.FieldByName('nomcid').AsString,1,15)+'</CIDADE>'); add(' <UF>'+copy(guia.FieldByName('nomest').AsString,1,2)+'</UF>'); add(' <CEP>'+copy(RemoveString('-',guia.FieldByName('cep').asString),1,8)+'</CEP>'); add(' </ENDERECO>'); add(' </PAGADOR>'); if PercentualMulta<>'' then begin add(' <MULTA>'); add(' '+DataMoraJuros); add(' <PERCENTUAL>'+PercentualMulta+'</PERCENTUAL>'); add(' </MULTA>'); end; add(' <FICHA_COMPENSACAO>'); add(' <MENSAGENS>'); add(' <MENSAGEM>'+copy(guia.FieldByName('descricao').asString+' Ref. '+guia.FieldByName('ref').asString ,1,40)+'</MENSAGEM>'); if PercentualMulta<>'' then begin add(' <MENSAGEM>MULTA DE '+PercentualMulta+' JUROS '+ValorMoraJuros+' AO MÊS</MENSAGEM>'); end; add(' </MENSAGENS>'); add(' </FICHA_COMPENSACAO>'); add(' <RECIBO_PAGADOR>'); add(' <MENSAGENS>'); add(' <MENSAGEM>'+copy(guia.FieldByName('descricao').asString+' Ref. '+guia.FieldByName('ref').asString ,1,40)+'</MENSAGEM>'); if PercentualMulta<>'' then begin add(' <MENSAGEM>MULTA DE '+PercentualMulta+' JUROS '+ValorMoraJuros+' AO MÊS</MENSAGEM>'); end; add(' </MENSAGENS>'); add(' </RECIBO_PAGADOR>'); //add(' <PAGAMENTO>'); //add(' <QUANTIDADE_PERMITIDA>1</QUANTIDADE_PERMITIDA>'); //add(' <TIPO>ACEITA_VALORES_ENTRE_MINIMO_MAXIMO</TIPO>'); //add(' <VALOR_MINIMO>500.00</VALOR_MINIMO>'); //add(' <VALOR_MAXIMO>1500.00</VALOR_MAXIMO>'); //add(' </PAGAMENTO>'); add(' </TITULO>'); add(' </INCLUI_BOLETO>'); add(' </DADOS>'); Add('</manutencaocobrancabancaria:SERVICO_ENTRADA>'); //add(' </ext:SERVICO_ENTRADA>'); //add(' </soapenv:Body>'); //add('</soapenv:Envelope>'); end; vsxml.SaveToFile(vsNossoNumero+'.xml'); finally vsxml.Free; end; end;
×
×
  • 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.