Ir para conteúdo
  • Cadastre-se

alexpt

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