Ir para conteúdo
  • Cadastre-se

dev botao

ACBR Boleto híbrido - Não sei como pegar a string para formar o QrCode


Ver Solução Respondido por Rodrigo SBarcelos,
  • Este tópico foi criado há 545 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia!

Já tenho o registro on-line pelo Banco do Brasil do boleto, entranto gostaria que ele fosse híbrido, mas não sei como obter a string que forma o QrCode.

Titulo.qrcode.emv := ?;

Alguém poderia me dar uma ajuda?

Desde já agradeço.

Postado
14 minutos atrás, Juliomar Marchetti disse:

no exemplo tem como. basta marcar a opção no componente

Sim, se for a opção IndicadorPIX do componente já está marcada como TRUE, mas nas informações do título o retorno do registro "QrCode" na propriedade "EMV" não estou sabendo como receber esta string que formar o QrCode na impressão do boleto.

 

Titulo.qrcode.emv := ?;

Do lado do banco eu só preciso ter a chave PIX? 

  • Consultores
Postado

Boa noite,

Está registrando via API?

Se for via WS acredito que não tenha o pix, não encontrei nos fontes.

Se estiver usando via API, segue onde analisar os fontes.

../trunk2/Fontes/ACBrBoleto/WS/ACBrBoletoRet_BancoBrasil_API.pas

Coloque um ponto de parada no retorno do método de incluir para analisar.

function TRetornoEnvio_BancoBrasil_API.LerRetorno(const ARetornoWS: TACBrBoletoRetornoWS): Boolean;
.
.
.
        //retorna quando tiver sucesso
        if (ARetornoWS.ListaRejeicao.Count = 0) then
        begin
          if (TipoOperacao = tpInclui) then
          begin
          .
          .
          .
            a
            ARetornoWS.DadosRet.TituloRet.UrlPix        := AJSonObject.Values['url'].AsString;
            ARetornoWS.DadosRet.TituloRet.TxId          := AJSonObject.Values['txId'].AsString;
            ARetornoWS.DadosRet.TituloRet.EMV           := AJSonObject.Values['emv'].AsString;
  

 

Postado

Rodrigo SBarcelos Boa noite...vou demostrar como faço com boleto hibrido PIX Banco do Brasil

1 - ACBrBoleto.Cedente.CedenteWS.IndicadorPix :=True;

2 - BoletoPIX.fr3 para Fast Report ou Fortes Report LayOut = lPadraoPIX

3 - qrcode.emv :=QR_CODE_PIX; //------Isso é minha variavél que recebe o qrcode do pix

 

Vou deixar minha procedure que uso pra pegar o retorno

procedure TF_boleto.LerRetornoAPI;
var Node : IXMLNode;
NodeSec : IXMLNode;
var
JSonObjectAsString, MEMO_1, MEMO_2, MEMO_3, MEMO_4, MEMO_5 : string;
JSObj             : TJSONObject;
JSArray           : TJSONArray;
JSValue           : TJSONValue;
var ParRows       : TJSONPair;
var ObjetoMeio    : TJSONObject;
SLRemessa: TStringList;
  i, j: Integer;
  Boleto : TACBrBoleto;
  var LINHA_DIGITAVEL, QR_CODE_PIX : String;
begin
  txt_memojson.Lines.Text  :='';
  Boleto := ACBrBoleto;
  if Boleto.TotalListaRetornoWeb > 0 then
  begin
    SLRemessa := TStringList.Create;
    try
      for i:= 0 to Pred(Boleto.TotalListaRetornoWeb) do
      begin
        if (Boleto.ListaRetornoWeb[i].HTTPResultCode in [200, 201, 202]) then
        begin
         SLRemessa.Add(Boleto.ListaRetornoWeb[i].JSON);
         txt_memojson.Lines.Add(Boleto.ListaRetornoWeb[i].JSON);
        end;
      end;
      //----SLRemessa.SaveToFile( PathWithDelim(ExtractFilePath(Application.ExeName))+'\Boletos\LogsWebservice\'+ NR_DOCUMENTO + Trim(sNOSSO_NUMERO)+'-retorno_registro.json' );
    finally
      FreeAndNil(SLRemessa)
    end;
  end;

  JSonObjectAsString := txt_memojson.Text;
  JSObj := TJSONObject.ParseJSONValue(JSonObjectAsString) as TJSONObject;
  try
    LINHA_DIGITAVEL                       :='';
    QR_CODE_PIX                           :='';
    LINHA_DIGITAVEL                       :=JSObj.GetValue('linhaDigitavel').Value;
    ParRows                               :=JSObj.Get('qrCode');
    ObjetoMeio                            :=JSObj.GetValue('qrCode')as TJSONObject;
    QR_CODE_PIX                           :=ObjetoMeio.GetValue('emv').Value;
    if Length(LINHA_DIGITAVEL) = 47 then
    begin
      //-----Retorno com sucesso------------------------------------------------
    end
    else
    begin
      //----Retorno com erro ai faço o tratamento pra pegar o erro--------------
    end;
  finally
    JSObj.DisposeOf;
  end;
end;

 

  • Curtir 1
  • Este tópico foi criado há 545 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.