Eduardo Representante Tecnico Postado 4 Março Compartilhar Postado 4 Março Boa Tarde , Sou prestador de serviço junto a caixa e outros Bancos,(empresa VAN) sobre Api Caixa para PIX a caixa não tem nem projeto piloto em andamento, já o boleto hibrido a mesma já esta em fase final do piloto, porem para uso e necessário habilitar na caixa o serviço e utilizar o manual abaixo. Leiaute_Webservice - MO38239v011.pdf 1 Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Alexandre de Paula Postado 5 Março Consultores Compartilhar Postado 5 Março Bom dia @Eduardo Representante Tecnico, Separei o topico por se tratarem de assuntos diferentes. O topico inicial era sobre PIX e você está contribuindo com uma documentação para boleto hibrido (que também usa PIX ). Saberia informar se para essa habilitação do serviço na caixa é precisso ser correntista? ou se existe alguma opção para desenvolvedores? Obrigado! Alexandre de Paula Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Link para o comentário Compartilhar em outros sites More sharing options...
Jhonlenon Ribeiro Postado 25 Abril Compartilhar Postado 25 Abril @Alexandre de Paula Boa noite, eu alterei as units ACBrBoletoW_Caixa e ACBrBoletoRet_Caixa para registrar o boleto hibrido pix da caixa, está registrando o boleto com sucesso, mais estou com problema na linha digitável e codigo de barras que não está batendo com o do retorno do webservice. Vou disponibilizar as units aqui. Tem algumas configurações que precisa ser feita para funcionar. ACBrBoleto.Configuracoes.WebService.SSLCryptLib :=TSSLCryptLib(cryWinCrypt); ACBrBoleto.Configuracoes.WebService.UseCertificateHTTP := False; ACBrBoleto.Cedente.CedenteWS.IndicadorPix :=True; //---Para Boleto Hibrido PIX ACBrBoleto.Cedente.CedenteWS.IndicadorPix :=False; //---Para Boleto Normal ACBrBoleto.Configuracoes.WebService.VersaoDF :='3.2'; //----Boleto Hibrido PIX ACBrBoleto.Configuracoes.WebService.VersaoDF :='3.0'; //----Boleto Normal QtdePagamentoParcial:= 1; TipoPagamento:= tpNao_Aceita_Valor_Divergente; PercentualMinPagamento:= 0; PercentualMaxPagamento:= 0; ValorMinPagamento:=0; ValorMaxPagamento:=0; Carteira := 'RG'; EspecieDoc:= '99'; Obs: O cliente PJ Caixa tem que ter o contrato de cobrança ativo e solicitar a ativação de emissão de boleto via webservice ao seu gerente de conta PJ Caixa. ACBrBoletoW_Caixa.pas ACBrBoletoRet_Caixa.pas Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Renato Rubinho Postado 25 Abril Consultores Compartilhar Postado 25 Abril Bom dia, Você utilizou o manual deste tópico ou conseguiu um mais recente? Implementei também o boleto híbrido da Caixa, mas estou aguardando o cliente com as credenciais para homologar. Conseguiu ambiente de homologação ou só em produção? Pode enviar arquivo de envio e o retorno recebido para [email protected] para analisarmos? Mencione este tópico para identificarmos o assunto. Link para o comentário Compartilhar em outros sites More sharing options...
Jhonlenon Ribeiro Postado 25 Abril Compartilhar Postado 25 Abril @Renato Rubinho Bom dia, enviei os dados no [email protected], em relação manual foi o mesmo em anexo, eu só testei em produção. 1 Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Renato Rubinho Postado 25 Abril Consultores Compartilhar Postado 25 Abril Obrigado pela contribuição. Criada TK-5377 para análise. 1 Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Renato Rubinho Postado Segunda as 16:03 Consultores Compartilhar Postado Segunda as 16:03 Boa tarde @Jhonlenon Ribeiro Validada a impressão do Boleto pelo ACBr de acordo com o Boleto retornado pela Caixa (enviei no seu e-mail a comparação). Os maiores detalhes a analisar são as propriedades: Banco.LayoutVersaoArquivo e Banco.LayoutVersaoLote De acordo com essas propriedades o componente irá considerar o Código do Cedente com 6 ou 7 dígitos e aparentemente essa era a diferença do seu boleto para o da caixa. Ao analisar a composição da linha digitável do boleto gerado pela caixa, notamos que foi considerado o código do cedente com 7 dígitos. Se olharmos os fontes (ACBrBancoCaixa.pas), para gerar o código do cedente com 7 dígitos, você deve utilizar: ** Banco.LayoutVersaoArquivo := 107; ** Banco.LayoutVersaoLote := 67; ou ** Banco.LayoutVersaoArquivo := 7; function TACBrCaixaEconomica.DefineCodigoCedente(const ACBrCedente: TACBrCedente): String; begin if ((fpLayoutVersaoArquivo = 107) and (fpLayoutVersaoLote = 67)) or (fpLayoutVersaoArquivo = 007) then Result := PadLeft( ACBrCedente.CodigoCedente, 7, '0') else Result := PadLeft( ACBrCedente.CodigoCedente, 6, '0'); end; Seguem os fontes finais para emissão do boleto híbrido da Caixa. 1. Por favor, como você possui as credenciais, se possível teste a geração de uma nova cobrança com estes fontes que estou disponibilizando e nos informe se foi registrado novamente com sucesso. * Após substituir os arquivos, reinstale os componentes. * Estando tudo ok, enviaremos a implementação para o SVN. 2. Confirme também se ficou tudo ok na emissão do boleto ou informe caso ainda tenha dúvidas a respeito. ACBrBoletoRet_Caixa.pas ACBrBoletoW_Caixa.pas Link para o comentário Compartilhar em outros sites More sharing options...
Jhonlenon Ribeiro Postado Segunda as 17:14 Compartilhar Postado Segunda as 17:14 (editado) @Renato Rubinho Boa tarde, usar suas units tive que comentar essa linha...pois dava erro ao compilar o componente. //Gerador.wCampo(tcStr, '#02.1', 'TIPO', 7, 7, 1, C_TIPO_HIBRIDO, DSC_TIPO_HIBRIDO); e adicionar essa abaixo Gerador.wCampo(tcStr, '#02.1', 'TIPO', 7, 7, 1, 'HIBRIDO', ''); ACBrBoleto.Banco.LayoutVersaoArquivo := 107; ACBrBoleto.Banco.LayoutVersaoLote := 67; ACBrBoleto.Cedente.TipoCarteira := tctSimples; ACBrBoleto.Cedente.TipoDocumento := Tradicional; ACBrBoleto.Cedente.IdentDistribuicao := tbClienteDistribui; Carteira :='RG'; ou assim ACBrBoleto.Banco.LayoutVersaoArquivo := 7; Editado Segunda as 17:18 por Jhonlenon Ribeiro Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Renato Rubinho Postado Segunda as 17:42 Consultores Compartilhar Postado Segunda as 17:42 11 minutos atrás, Jhonlenon Ribeiro disse: usar suas units tive que comentar essa linha...pois dava erro ao compilar o componente. //Gerador.wCampo(tcStr, '#02.1', 'TIPO', 7, 7, 1, C_TIPO_HIBRIDO, DSC_TIPO_HIBRIDO); e adicionar essa abaixo Gerador.wCampo(tcStr, '#02.1', 'TIPO', 7, 7, 1, 'HIBRIDO', ''); Qual erro apresenta? * Reinstalou os componentes e fez um "Build All" na aplicação? 1. C_TIPO_HIBRIDO foi declarada na linha 100 da ACBrBoletoW_Caixa 2. DSC_TIPO_HIBRIDO já existia na linha 57 da ACBrBoletoPcnConsts 22 minutos atrás, Jhonlenon Ribeiro disse: Você não preencheu o nosso número antes de imprimir o boleto: Nosso Número 3: 00000.0003 Nosso Número 0: 00000.0000 Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Renato Rubinho Postado Segunda as 18:13 Consultores Compartilhar Postado Segunda as 18:13 29 minutos atrás, Renato Rubinho disse: 2. DSC_TIPO_HIBRIDO já existia na linha 57 da ACBrBoletoPcnConsts @Jhonlenon Ribeiro Falha minha, a alteração da ACBrBoletoPcnConsts.pas existia nos meus fontes, mas ainda não foi para o SVN assim como os demais. Atualize essa unit junto com as demais, reinstale os componentes, recompile sua aplicação e veja se resolveu. ACBrBoletoPcnConsts.pas Link para o comentário Compartilhar em outros sites More sharing options...
Jhonlenon Ribeiro Postado Segunda as 20:49 Compartilhar Postado Segunda as 20:49 @Renato Rubinho Agora ficou 100%...eu que estava vacilando e não estava passando o nosso número, adicionei sua units ACBrBoletoPcnConsts ai funcionou, só um detalhe na unit ACBrBoletoRet_Caixa, eu testei a consulta do boleto e baixa pelo caixa que funcionou também, ai precisava saber o estado da cobrança, se estava EM ABERTO, LIQUIDADO ou BAIXADO, ai adicionei esse linha aqui if leitor.rExtrai(3, 'MENSAGENS') <> '' then begin Retorno := Leitor.rCampo(tcStr, 'RETORNO'); // pegar o estado da cobranca TituloRet.EstadoTituloCobranca := Retorno; end; Ai ficou 100% Eu registrei um boleto em produção que vou enviar no seu e-mail....testei pagando ele pelo qrcode do pix, linha digitavel e codigo de barras, todos funcionário 100%, que bom...mais um boleto hibrido pix no componente ACBrBoleto... 1 Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Renato Rubinho Postado Segunda as 21:07 Consultores Compartilhar Postado Segunda as 21:07 Olá @Jhonlenon Ribeiro Que legal, e-mail recebido. 15 minutos atrás, Jhonlenon Ribeiro disse: if leitor.rExtrai(3, 'MENSAGENS') <> '' then begin Retorno := Leitor.rCampo(tcStr, 'RETORNO'); // pegar o estado da cobranca TituloRet. Por favor anexe a unit alterada para análise. Se possível envie por e-mail também o retorno da consulta para podermos validar. Mais uma vez, obrigado pela contribuição. Link para o comentário Compartilhar em outros sites More sharing options...
Jhonlenon Ribeiro Postado Segunda as 21:13 Compartilhar Postado Segunda as 21:13 3 minutos atrás, Renato Rubinho disse: Olá @Jhonlenon Ribeiro Que legal, e-mail recebido. Por favor anexe a unit alterada para análise. Se possível envie por e-mail também o retorno da consulta para podermos validar. Mais uma vez, obrigado pela contribuição. Anexei as 3, mais alterei só a unit ACBrBoletoRet_Caixa...em relação a consulta vou te enviar o retorno no e-mail depois ACBrBoletoPcnConsts.pas ACBrBoletoRet_Caixa.pas ACBrBoletoW_Caixa.pas Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Solution Renato Rubinho Postado Terça as 00:03 Consultores Solution Compartilhar Postado Terça as 00:03 Implementação enviada ao SVN na Rev-33448 Apenas confirmando, no e-mail você mencionou "Só achei ruim porque não está retornando a LINHA DIGITÁVEL e CÓDIGO DE BARRAS", mas no xml do retorno não constam essas informações conforme destacado a seguir. Se o erro persistir, acredito que precisará verificar com o banco o motivo dos dados não estarem retornando. <!-- Sem Código de Barras --> <CODIGO_BARRAS/> <!-- Sem Linha digitável --> <LINHA_DIGITAVEL/> <!-- Sem Url --> <URL/> Validado o retorno com o status e funcionou como o esperado, alimentando o DadosRet.TituloRet.EstadoTituloCobranca e o DadosRet.ControleNegocial.Retorno Cod_Retorno=00 Msg_Retorno= Ori_Retorno=CONSULTA_COBRANCA_BANCARIA HTTP_Result=0 JSON= indicadorContinuidade=0 proximoIndice=0 numeroBoletoBB = dataRegistro = 30/12/1899 dataVencimento = 24/05/2024 valorOriginal = 5 carteiraConvenio = variacaoCarteiraConvenio = 0 codigoEstadoTituloCobranca = estadoTituloCobranca = (0) OPERACAO EFETUADA - SITUACAO DO TITULO = EM ABERTO contrato = dataMovimento = 30/12/1899 dataCredito = 30/12/1899 valorAtual = 0 valorPago = 0 --- Link para o comentário Compartilhar em outros sites More sharing options...
Jhonlenon Ribeiro Postado Terça as 11:01 Compartilhar Postado Terça as 11:01 Que bom mais um boleto hibrido pix ao componente ACBrBoleto, com relação retorno, o problema é na caixa mesmo, no xml não está vindo o retorno, vou tentar contato com eles, qualquer coisa lhe aviso Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Renato Rubinho Postado Terça as 12:36 Consultores Compartilhar Postado Terça as 12:36 Obrigado por reportar. Foi enviado mais um complemento na Rev-33453 preenchendo automaticamente a VersaoDF, na classe de Webservice da Caixa, de acordo com o IndicadorPIX. Sendo True=3.2, False=3.0. Fechando. Para novas dúvidas, criar um novo tópico. Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Renato Rubinho Postado Quarta as 00:46 Consultores Compartilhar Postado Quarta as 00:46 Adicionadas particularidades no tópico centralizado de informações sobre Boleto Online. Incrementada lista de bancos que suportam Boleto Híbrido no ACBr. Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts