Ir para conteúdo
  • Cadastre-se

alexpt

Membros Pro
  • Total de ítens

    3
  • Registro em

  • Última visita

Community Answers

  1. alexpt's post in ACBrBoleto - API Banco do Brasil - Erro - Demo e Tutorial furados was marked as the answer   
    Agradeço a todos pela atenção dispensada.
    Consegui fazer funcionar aqui, está funcionando corretamente agora.
    Havia algumas falhas no Demo da versão que baixei e que ocasionavam erros diversos, vou deixar aqui um resumo, talvez ajude a alguém na mesma situação.
    1 - No demo (qualquer dos dois) o DM está setado no projeto para criação automática, no entanto ele é criado após o form principal, o que gera erros de violação de acesso na criação do form principal. A variável dm fica Nil e dá ruim.
    Para resolver, simplesmente tirei a criação do DM do automatico, e criei uma função no fonte do DM (ambos), para criar o DM por demanda, e ao setar a variável dm no form principal chamo esta função.
    function DM_Fortes: TdmForte; begin if (dmForte = Nil) then begin dmForte := TdmForte.Create( Application ); end; result := dmForte; end; No Form principal:
    {$IFDEF demo_forte} dm := DM_Fortes; {$ELSE} dm := DM_Fast; {$ENDIF}  
    2 - Na inclusão de Titulo (procedure TfrmDemo.btnBoletoIndividualClick), antes da instrução  "Titulo := dm.ACBrBoleto.CriarTituloNaLista;", foi necessário incluir as instruções abaixo para que o JSON enviado refletisse corretamente as informações digitadas no formulário.
    procedure TfrmDemo.btnBoletoIndividualClick(Sender: TObject); var Titulo : TACBrTitulo; VQtdeCarcA, VQtdeCarcB, VQtdeCarcC :Integer; VLinha, logo : string; i: Integer; begin // Se não configurar aqui, estes valores são ignorados mesmo que sejam especificados em Titulo. dm.ACBrBoleto.Cedente.Modalidade := edtModalidade.Text; dm.ACBrBoleto.Cedente.Convenio := edtConvenio.Text; Titulo := dm.ACBrBoleto.CriarTituloNaLista;  
    3 - Campos importantes (atalhos). Para testes usar as informações disponíveis no manual da API  (https://apoio.developers.bb.com.br/referency/post/5ffc477c3b02bd0012ecaa1a).
    O código abaixo corresponde a um programa de testes com finalidade exclusiva de registrar boletos on-line.
    uses ACBrDFeSSL, pcnConversao, BlckSock; Const // Fornecidos pelo painel do desenvolvedor o Banco do Brasil BB_API_CLIENT_ID = '<client_id>'; BB_API_CLIENT_SECRET = '<client_sercret>'; BB_API_CLIENT_DEV_KEY = '<developer_application_key>'; BB_API_ESCOPO = 'cobrancas.boletos-info cobrancas.boletos-requisicao'; // Informações do Cedente/Beneficiario BB_CNPJ_CEDENTE = '94491202000127'; // valor de teste fornecido na documentacao do BB dados ficticios para testes BB_AGENCIA = '<sua_agencia>'; BB_AGENCIA_DV = '<dv_sua_agencia>'; BB_CONTA = '<sua_conta>'; BB_CONTA_DV = '<dv_sua_conta>'; BB_CODIGO_CEDENTE = BB_AGENCIA + '/' + BB_CONTA; BB_CONVENIO = '<Num-Convenio>'; // para testes usar o numero fornecido na documentacao do BB dados ficticios para testes BB_CARTEIRA = '17'; BB_VARIACAO_CARTEIRA = '35'; // valor de teste fornecido na documentacao do BB dados ficticios para testes BB_INICIO_NOSSO_NUMERO = BB_CONVENIO; // prefixo para formação do campo: "numeroTituloCliente" procedure TForm1.ConfiguraIntegracaoBB; begin // Tipo API Banco do Brasil ACBrBoleto.Banco.TipoCobranca := cobBancoDoBrasilAPI; // Cedente (Empresa cobradora) ACBrBoleto.Cedente.CNPJCPF := BB_CNPJ_CEDENTE; ACBrBoleto.Cedente.Agencia := BB_AGENCIA; ACBrBoleto.Cedente.AgenciaDigito := BB_AGENCIA_DV; ACBrBoleto.Cedente.Conta := BB_CONTA; ACBrBoleto.Cedente.ContaDigito := BB_CONTA_DV; ACBrBoleto.Cedente.CodigoCedente := BB_CODIGO_CEDENTE; ACBrBoleto.Cedente.Convenio := BB_CONVENIO; ACBrBoleto.Cedente.TipoCarteira := tctSimples; ACBrBoleto.Cedente.TipoInscricao := pJuridica; ACBrBoleto.Cedente.Modalidade := BB_VARIACAO_CARTEIRA; ACBrBoleto.Cedente.Cidade := ''; ACBrBoleto.Cedente.UF := ''; ACBrBoleto.Cedente.Logradouro := ''; ACBrBoleto.Cedente.Bairro := ''; ACBrBoleto.Cedente.CEP := ''; // Credenciais de acesso a API ACBrBoleto.Cedente.CedenteWS.ClientID := BB_API_CLIENT_ID; ACBrBoleto.Cedente.CedenteWS.ClientSecret := BB_API_CLIENT_SECRET; ACBrBoleto.Cedente.CedenteWS.KeyUser := BB_API_CLIENT_DEV_KEY; ACBrBoleto.Cedente.CedenteWS.IndicadorPix := true; // Modo Hibrido, pagamento com pix ACBrBoleto.Cedente.CedenteWS.Scope := BB_API_ESCOPO; // Configurações - Log ACBrBoleto.Configuracoes.Arquivos.LogRegistro := True; ACBrBoleto.Configuracoes.Arquivos.PathGravarRegistro := '.\log'; ACBrBoleto.DirArqRemessa := '.\log'; ACBrBoleto.DirArqRetorno := ACBrBoleto.DirArqRemessa; ACBrBoleto.NomeArqRemessa := 'Demo_Remessa.txt'; ACBrBoleto.NomeArqRetorno := 'Demo_Retorno.txt'; // Configurações do WebService/API ACBrBoleto.Configuracoes.WebService.Ambiente := taHomologacao; ACBrBoleto.Configuracoes.WebService.Operacao := tpInclui; ACBrBoleto.Configuracoes.WebService.SSLHttpLib := httpOpenSSL; ACBrBoleto.Configuracoes.WebService.SSLType := LT_TLSv1_2; ACBrBoleto.Configuracoes.WebService.VersaoDF := '1.2'; ACBrBoleto.Configuracoes.WebService.UseCertificateHTTP := false; end; procedure TForm1.IncluiBoleto; var Titulo : TACBrTitulo; VQtdeCarcA, VQtdeCarcB, VQtdeCarcC :Integer; VLinha, logo : string; i: Integer; begin // Operação ACBrBoleto.Configuracoes.WebService.Operacao := tpInclui; ACBrBoleto.ListadeBoletos.Clear; Titulo := ACBrBoleto.CriarTituloNaLista; Titulo.Vencimento := Date+5; Titulo.DataDocumento := Date; Titulo.NumeroDocumento := LZeroFil(edNumTitulo.Text, 10); Titulo.EspecieDoc := 'DM'; Titulo.Aceite := atNao; Titulo.DataProcessamento := Now; Titulo.Carteira := '17'; // * Titulo.NossoNumero := BB_INICIO_NOSSO_NUMERO + LZeroFil(edNumTitulo.Text, 10); // * Titulo.ValorDocumento := 45.00; // * Titulo.Sacado.Pessoa := pJuridica; // * [pFisica,pJuridica, - pOutras, pNenhum ] Titulo.Sacado.NomeSacado := 'Odorico Paraguassu'; // * Titulo.Sacado.CNPJCPF := '74910037000193'; // * Titulo.Sacado.Logradouro := 'Avenida Dias Gomes 1970'; // * Titulo.Sacado.Numero := ''; Titulo.Sacado.Bairro := 'Centro'; // * Titulo.Sacado.Cidade := 'Sucupira'; // * Titulo.Sacado.UF := 'TO'; // * Titulo.Sacado.CEP := '77458000'; // * Titulo.ValorAbatimento := 0.00; Titulo.LocalPagamento := 'QUALQUER BANCO'; Titulo.ValorMoraJuros := 0.00; Titulo.ValorDesconto := 0.00; Titulo.ValorAbatimento := 0.00; Titulo.DataMoraJuros := 0; Titulo.DataDesconto := 0; Titulo.TipoDesconto := tdNaoConcederDesconto; Titulo.DataAbatimento := 0; Titulo.DataProtesto := 0; Titulo.PercentualMulta := 0.00; Titulo.CodigoMoraJuros := cjIsento; //Mensagem.Text := memMensagem.Text; Titulo.OcorrenciaOriginal.Tipo := toRemessaRegistrar; Titulo.Instrucao1 := 'Instruções linha 1'; Titulo.Instrucao2 := 'Instruções linha 2'; end; procedure TForm1.RegistrarBloletoOnLine(Sender: TObject); var SLRemessa: TStringList; i, j: Integer; Boleto : TACBrBoleto; begin // *** Configura acesso a API e dados da empresa *** ConfiguraIntegracaoBB; // *** Inclui um boleto ficticio para registro *** IncluiBoleto; Boleto := ACBrBoleto; //Função de Envio Boleto.Configuracoes.WebService.Operacao := tpInclui; Boleto.EnviarBoleto; // retorna como false se o httpresult code for diferente de 200,201,202 //Verifica Lista com os retornos if Boleto.ListaRetornoWeb.Count > 0 then begin // Este trecho de código é o mesmo do Demo do ACBrBoleto 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...