Ir para conteúdo
  • Cadastre-se

Edson_Ramos

Membros
  • Total de ítens

    11
  • Registro em

  • Última visita

Posts postados por Edson_Ramos

  1. 1 hora atrás, danielsk8 disse:

    Já estou usando em produção para consultar os títulos e para registrar... 

    segue a classe que fiz para facilitar o uso e algumas melhorias pessoais...

    mas os créditos são todos de vcs q compartilharam os fontes.. valeu;

    Este é um exemplo de uso
      WS_CEF := TWebService_CEF_SIGCB.Create;
      WS_CEF.Beneficiario_CodigoCedente := Params.ItemsString['Cod_Cedente'].AsString;
      WS_CEF.Beneficiario_Cnpj          := Params.ItemsString['Cnpj'].AsString;
      WS_CEF.Beneficiario_Agencia       := Params.ItemsString['Agencia'].AsString;
      WS_CEF.Titulo_Nosso_numero        := Params.ItemsString['Nosso_Numero'].AsString;
      result :=   Xml_To_Json( WS_CEF.Consultar_Boleto_XML);

    ////////result :=   Xml_To_Json( WS_CEF.Registrar_Boleto );
      FreeAndNil( WS_CEF);

    WebService_CEF_SIGCB.pas

    Ficou show Daniel, parabéns!

    21 minutos atrás, Italo Jurisato Junior disse:

    Boa tarde a todos,

    Alguém sabe dizer se esse layout do XML é exclusivo da Caixa ou é um layout a ser adotado por todos os Bancos?

    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.

    • Curtir 1
  2. 1 hora atrás, Davi De Sousa Calixto disse:

    Segue projeto completo testado no meu código de beneficiário para inclusão, alteração, baixa e consulta de boletos no web service caixa.

    Projeto testado em Delphi 10.2, para Delphi 7 ou inferior é necessário substituir a função Hash e SHA256!

    Certifique-se que seu código de beneficiário está liberado na sua agência para o uso de Web Service.

    Preencha os campos sendo a primeiro boleto Numero 1.

    Seja feliz! ?

    Agradeço a contribuição de todos e espero que possa ajudar!

    CAIXA SOAP WSDL.rar

    Muito bom, valeu mesmo Davi !

     

  3. 2 minutos atrás, Davi De Sousa Calixto disse:

    Fez os testes em qual ambiente? Pois utilizando as funções esta dando divergencia do hash na consulta e erro na estrutura de dados na inclusão.

    Lembrando que em homologação o nosso número inicia com 14.

    Vou dar mais uma olhada e posto aqui a aplicacão completada sem banco de dados.

    Muito obrigado pela contribuição!

    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>

     

  4. 20 horas atrás, Davi De Sousa Calixto disse:

    Poderia compartilhar as Unit ausentes no projeto:

      ConfigBancoFD in '..\..\Source-Sindicato\Comum\ConfigBancoFD.pas',
      uFDSeek in '..\..\Source-Sindicato\Comum\uFDSeek.pas';

    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

  5. 1 minuto atrás, Amarildo de Matos disse:

    bom dia.. otimo. elsoft.. e parabens..ai por esta contribuindo..

    é isso ai.. juntos somos fortes.. valeu a contribuiçao.. e tambem vou comecar a fazer isso..

    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.

    • Curtir 1
  6. Em 28/09/2018 at 10:21, joemil disse:

    bom dia galera

    to pesquisando tb sobre o assunto. ja existe alguma frente de trabalho sobre o assunto? tem algum lugar pra baixar os fontes pra contribuir?

    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;

     

  7. Em 24/10/2017 at 18:01, toninhonunes disse:

    Olá Colegas,

    Mudou tudo, estou adaptando agora a nova realidade, vai a dica, a sindical vai usar o SIGCB padrão, porém algumas coisas a mais no arquivo remessa serão obrigatórias, estou adaptando ainda, por enquanto o antigo ainda está sendo compensado.

    Toninho Nunes

    bom dia toninhonunes

    quando vc adaptar envie para nós fazermos uns teste ok

    Obrigado

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