Ir para conteúdo
  • Cadastre-se

dev botao

Fluxo, correto, para recebimento via QrCode


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

Recommended Posts

Bom dia senhores, gostaria da contribuição de vcs sobre como tratar o recebimento com QRCode. Qual o fluxo correto ?

Hj quando realizamos a venda com TEF, se cartão aprovado finaliza a NFC-e e imprime o comprovante TEF, se negado, cancela toda a transação.. No caso do QrCode como fica isso, pelo que vi, recebo uma string das operadores e mostro na tela essa string como QrCode, então o cliente lê esse QrCode com o aplicativo do banco instalado no celular do mesmo. Duvida, como fico sabendo se essa transação foi aprovado ou rejeitada pelo banco, quando devo finalizar ou cancelar a venda ?

Abaixo exemplo de como estou tratando essa informação

 

image.thumb.png.caef0c1960789ba8d7e53cd81663cf85.png

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Creio que a pintura que fez a seguir deveria de ficar em uma tela modal esperando algo.

se com o pinpad ele envia e mostra no pinpad e o sistema fica esperando algo creio que seja no mesmo sentido, não será somente pintar em um formulário ele vai esperar um callback

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
2 minutos atrás, ALA disse:

Obrigado pela resposta Julio. Sim ja alterei isso, coloquei o QrCode em outra tela, aguardando algo, o problema e saber o que ? Não existe homologação para esse tipo de implementação..

Creio que quem possa responder é isso seria a softwareexpress ou skytef

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Pessoa, bom dia. Resposta da SkyTEf

 

Tirando o valor devolvido para montar o QRCode, o fluxo é o mesmo de transações de vendas com Crédito ou Débito.

Com isso a FinalizaFuncaoSiTefInterativo é envia quando o retorno da ContinuaFuncaoSiTefInterativo for igual a 0 (zero).

O fluxo realmente é o mesmo, tem poucos ajustes a serem realizados.

  Alguém poderia me ajudar a montar esse fluxo ?

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
1 hora atrás, ALA disse:

Pessoa, bom dia. Resposta da SkyTEf

 

Tirando o valor devolvido para montar o QRCode, o fluxo é o mesmo de transações de vendas com Crédito ou Débito.

 

Com isso a FinalizaFuncaoSiTefInterativo é envia quando o retorno da ContinuaFuncaoSiTefInterativo for igual a 0 (zero).

 

O fluxo realmente é o mesmo, tem poucos ajustes a serem realizados.

 

 

  Alguém poderia me ajudar a montar esse fluxo ?

 

 

 

Oi ALA, bom dia.

Como você mesmo disse, é o mesmo fluxo do Cartão. Então, se você já tem implementado o cartão, já tem o fluxo implementado.

Que tipo de ajuda você precisa?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Quando recebo o retorno da carteira, se a sring do QrCode estiver preenchida eu abro uma nova tela, mostranndo o QrCode. Ate ai blz, a duvida é, como saber se a transação foi aprovada ou não ? Se aprovada fecho a tela e transmito a nfce, se não foi aprovada, rejeito a transação ?

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Existem 2 formas de integrar.

Todos os provedores de pagamento digital (PicPay, Ame, Mercado Pago) solicitam que, no endpoint da API que gera o QR Code, você forneça uma url de callback, para eles lhe responderem quanto à aprovação do pagamento (quando o cliente pagar via app deles no celular). 

Então, você pode fazer das seguintes formas:

1 - automatizado: sua url de callback grava no seu servidor a resposta. Vc cria um objeto no PDV no Padrão de Projeto Observer, que tão logo o cliente pague, vc lê (através do Redis por exemplo) e conclui a transação no PDV.

2 - manualmente, criando uma função de capturar resultado. Cliente paga, o callback grava o resultado e então vc lê este resultado.

Espero ter ajudado.

Charles

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • Membros Pro
Em 03/08/2020 at 09:53, ALA disse:

Quando recebo o retorno da carteira, se a sring do QrCode estiver preenchida eu abro uma nova tela, mostranndo o QrCode. Ate ai blz, a duvida é, como saber se a transação foi aprovada ou não ? Se aprovada fecho a tela e transmito a nfce, se não foi aprovada, rejeito a transação ?

Estou com esse mesmo problema, se alguém ja conseguiu resolver de uma dica. 

Link para o comentário
Compartilhar em outros sites

  • Consultores
47 minutos atrás, brajan disse:

Estou com esse mesmo problema, se alguém ja conseguiu resolver de uma dica. 

Bom dia brajan.

   Você precisa verificar a documentação pra esse tipo de fluxo. A ideia geral seria a mesma do TEF.

   Assim, o gerenciador do TEF é quem deve te dar um retorno. No entanto acho que não tenho documentação pra recebimento em QrCode.

   Então, você precisa verificar o que a documentação recomenda a ser feito.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Atualize os fontes...  Verifique o (extenso), ACBrTEFD-Change-Log.txt

Citar

07/10/20
-- ACBrPOSPGWebPrinter --
[*] Remoção de Hints

-- ACBrTEFComum --
[*] Ajustes para usar Generics quando disponível

-- ACBrTEFD, ACBrTEFDClass --
[+] Adicionado o evento: OnExibeQRCode: TACBrTEFDExibeQRCode
    TACBrTEFDExibeQRCode = procedure(const Dados: String) of object ;
[+] Adicionado o Método:
    procedure ExibirMensagemPinPad(const MsgPinPad: String);
    - Para definir uma mensagem no PinPad

[*] Ajustes para usar Generics quando disponível

-- ACBrTEFDCliSiTef --
[*] Ajustes para usar evento "OnExibeQRCode"
[+] Implementado "ExibirMensagemPinPad"

-- ACBrTEFDBanese, ACBrTEFDClass, ACBrTEFDPayGo --
[*] Remoção de Warning, corrigndo a visibildade do método "ProcessarTipoInterno"

-- ACBrTEFDPayGoWeb --
[+] Implementado "ExibirMensagemPinPad"
[+] Adicionada a propriedade "PortaPinPad: Integer"  default 0;  // -1 = Sem PinPad
[+] Adicionada a propriedade "ExibicaoQRCode: TACBrTEFPGWebAPIExibicaoQRCode"
[*] Ajustes para usar evento "OnExibeQRCode"

-- ACBrTEFPayGoComum --
[+] Mapeado novos valores de PWINFO_ e PWOPER_, seguindo manual 1.22

-- ACBrTEFPayGoWebComum --
[*] Ajustes para inicio de suporte em Android
[+] Mapeado novos valores de PWRET_
[+] Adicionado suporte aos comandos:
    PWDAT_DSPCHECKOUT  = 18;  // Mensagem a ser exibida no checkout
    PWDAT_TSTKEY       = 19;  // Teste de chaves presentes no PIN-pad.
    PWDAT_DSPQRCODE    = 20;  // QR Code, a ser exibido no checkout.
[*] Método "ImprimirViaClienteReduzida" renomeado para "ImprimeViaClienteReduzida"
[+] Adicionada as propriedades:
    RemocaoCartaoPinPad: Boolean;
    ExibeMensagemCheckout: Boolean;
    ExibicaoQRCode: TACBrTEFPGWebAPIExibicaoQRCode
      TACBrTEFPGWebAPIExibicaoQRCode = (qrNaoSuportado, qrExibirNoPinPad, qrExibirNoCheckOut);
[*] Método "IniciarTransacao" com tipo de parametro mudado de:
    "iOPER: SmallInt" para "iOPER: Byte"
[*] Remoção de Hint, em Delphi, no método "ExecutarTransacao"
[+] Implementado "ExibirMensagemPinPad"
[*] "AdicionarDadosObrigatorios", modificado para informar suporte a QRCode
[*] "CalcularCapacidadesDaAutomacao", modificado para considerar
    RemocaoCartaoPinPad, ExibeMensagemCheckout, ExibicaoQRCode
[*] Método "PGWebFunctionDetect", modificado com novo parâmetro "FuncIsRequired"
    PGWebFunctionDetect( FuncName: AnsiString; var LibPointer: Pointer;
                         FuncIsRequired: Boolean = True) ;
    - Permite carregar versões antigas da DLL sem erros em métodos que não existam
    (por: DSA)

 

 

Hoje devo atualizar o TEFDemoNF, com a exibição do QRCode dinâmico...

Hoje teremos uma palestra sobre isso...

https://www.diadoacbr.com.br/sessions/pix-e-carteiras-digitais/

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Ja atualizei notei que o ExibicaoQRCode so está relacionado ao TEFPayGoWeb ela no se encontra no Sitef 

  if cbQRCodeTela.Checked then
    ACBrTEFD1.TEFPayGoWeb.ExibicaoQRCode := qrExibirNoCheckOut
  else
    ACBrTEFD1.TEFPayGoWeb.ExibicaoQRCode := qrExibirNoPinPad;

Outra coisa é q por exemplo no sitef ele apresenta o qrCode e ja fecha a venda essa é a dificuldade ele não espera uma resposta, não sei pq estou em homologação que el faz isso

Link para o comentário
Compartilhar em outros sites

  • Fundadores
2 horas atrás, brajan disse:

Ja atualizei notei que o ExibicaoQRCode so está relacionado ao TEFPayGoWeb ela no se encontra no Sitef 

No momento estou focado na integração com PayGo Web

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa dia, se eu usar uma tela secundaria para abrir o QrCode o componente TEF fica esperando a tela para fechar para dar continuidade no processo de fechamento da venda essa é a mesma questão do retorno nesse caso o componente teria q ficar rodando em segundo plano até ter uma resposta para fechar a tela de QrCode ou da Leitura se foi confirmada, assim o controle seria pela aplicação.

No teste q fiz não estou conseguindo executar essa finalidade no componente, ele para na tela modal ou continua sem parar quando o qrcode esta na mesma tela igual no exemplo

Não sei se o evento AguardaResp poderia resolver esse problema, ja fiz varias programações nele mas até agora não obtive sucesso 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

pois é ja não sei para onde ir, se não para, como é feita a leitura em tela pq o componente ja fecha a venda direta, no componente picpay eu tenho uma resposta posso abrir o QrCode e quando é aprovado ele traz essa resposta para dar continuidade na venda após a leitura.

Isso que não estou compreendendo nesse novo método, pq quando dou o CRT ele ja vai fechando não tem uma resposta de foi feita a leitura ou não. isso que não estou conseguindo entender, ou minha logica está errada, nesse caso para quando mostrado em tela. 

Link para o comentário
Compartilhar em outros sites

  • Fundadores
1 hora atrás, brajan disse:

pois é ja não sei para onde ir, se não para, como é feita a leitura em tela pq o componente ja fecha a venda direta, no componente picpay eu tenho uma resposta posso abrir o QrCode e quando é aprovado ele traz essa resposta para dar continuidade na venda após a leitura.

Isso que não estou compreendendo nesse novo método, pq quando dou o CRT ele ja vai fechando não tem uma resposta de foi feita a leitura ou não. isso que não estou conseguindo entender, ou minha logica está errada, nesse caso para quando mostrado em tela. 

O ACBrTEFD chama o evento com os Dados do QRCode, para exibição... e também chama o mesmo evento, com a String vazia, sinalizando que você deve remover o QRCode...

Estude os Fontes do projeto TEFDemoNF

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
23 minutos atrás, Daniel Simoes disse:

O ACBrTEFD chama o evento com os Dados do QRCode, para exibição... e também chama o mesmo evento, com a String vazia, sinalizando que você deve remover o QRCode...

Estude os Fontes do projeto TEFDemoNF

Eu estou olhando o fontes porem estou usando o clisitef não sei se falta fazer alguma coisa para esse modelo, não sei se estou sendo claro nas minhas duvidas, pq quando dou o CRT ele chama o qrcode mas é tão rápido que ele aparece e some, é isso não estou entendendo, nem consigo ver o qrcode é como se a venda fosse normal, dessa forma o cliente não consegue ler o qrcode.

com CRT deveria mostrar o qrCode como faz mas devia parar até receber uma resposta, só que ele vai direto sem parar e ja sai fechando a venda.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Creio que ao chamar no evento onmsg tu deve de colocar o QrCode em algum campo diferente de um showmessage ou algo assim . exemplo um timage em seu form principal

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1273 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.