Jump to content

dev botao

Cartão de Débito em 2 ou + Parcelas


Go to solution Solved by EMBarbosa,
  • Este tópico foi criado há 394 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Posted

Bom dia,

Estamos tentando implementar a opção de recebimento no TEF com cartão de débito com mais de 1 parcela.

Em anexo enviamos os arquivos de log para análise, se necessário.
A operação realizada e que consta no log foi:
- Cartão débito
- 3 parcelas
- Valor total: R$ 10,00

Ao iniciar o processamento, o TEF faz as perguntas:
1) Se a primeira parcela será à vista: foi respondido que não;

2) Se as parcelas serão iguais: respondido que não;
Por conta dessa resposta, o TEF pergunta o valor e vencimento de cada parcela. Foi informado assim:
- Parcela 01: R$ 2,00; vencimento: 05/01/24
- Parcela 02: R$ 3,00; vencimento: 10/01/24
- Parcela 03: R$ 5,00; vencimento: 15/01/24

A questão que não estamos conseguindo fazer é capturar os dados dessas parcelas. 
Como é uma informação que o operador vai digitar na tela do TEF, precisamos capturar essa lista de parcelas após a operação ser autorizada, para podermos gravar no banco de dados da nossa aplicação.
Como fazer essa captura?

Em anexo arquivos de log e também comprovante impresso da transação.

Obrigado!

Comprovante.jpg

comms_231221.log Log21122023.txt ppsers_231221.log

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Consultores
Posted
5 horas atrás, Valdir Dill disse:

A questão que não estamos conseguindo fazer é capturar os dados dessas parcelas. 
Como é uma informação que o operador vai digitar na tela do TEF, precisamos capturar essa lista de parcelas após a operação ser autorizada, para podermos gravar no banco de dados da nossa aplicação.
Como fazer essa captura?

Olá Valdir,

Se você quiser capturar durante a apresentação dos dados, você pode usar os eventos OnObtemCampo e OnExibeMenu.

É justamente nesse código que os usuários vão informar os dados ao TEF.

[]'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.
  • Membros Pro
Posted
4 horas atrás, EMBarbosa disse:

Olá Valdir,

Se você quiser capturar durante a apresentação dos dados, você pode usar os eventos OnObtemCampo e OnExibeMenu.

É justamente nesse código que os usuários vão informar os dados ao TEF.

Boa noite,

Obrigado @EMBarbosa  as acho que você não entendeu bem nossa dúvida/dificuldade.

Vou tentar explicar melhor.

Bem, em primeiro lugar, é preciso registrar que, na verdade os eventos que você sugere seriam os QuandoPerguntarCampo e QuandoPerguntarMenu.
Obs.: estamos falando do TEF PayGo, ok?

Mas a questão não é onde (quando) pegar esses dados e sim, COMO pegar. Qual a rotina/método usar? 

Por exemplo, se eu quiser saber a quantidade de parcelas, vou ler:
ACBrTEFAPI1.UltimaRespostaTEF.LeInformacao(PWINFO_INSTALLMENTS), certo?

Mas COMO ler, por exemplo, o valor e vencimento da parcela 02 dessa transação que eu mencionei na abertura deste post?

Os parâmetros PWINFO_INSTALLMDATE e PWINFO_INSTALLM1AMT trazem o vencimento e valor, mas é apenas da entrada (acredito que seja a primeira parcela).
Mas e as parcelas 2, 3, ...? Como faço para obter seus dados?

Obs.: eu já havia relatado essa situação no Discord e o @Daniel Simoes me orientou a abrir um post aqui no fórum para uma melhor análise.

Obrigado

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Consultores
  • Solution
Posted

 

15 horas atrás, Valdir Dill disse:

Obrigado @EMBarbosa  as acho que você não entendeu bem nossa dúvida/dificuldade.

Desculpe se eu não entendi bem... Fica a vontade pra me mostrar sempre o que eu não tiver entendido. 👍

15 horas atrás, Valdir Dill disse:

Bem, em primeiro lugar, é preciso registrar que, na verdade os eventos que você sugere seriam os QuandoPerguntarCampo e QuandoPerguntarMenu.
Obs.: estamos falando do TEF PayGo, ok?

Ahh certo, você tem razão nos nomes do evento do componente. Na verdade, usei os nomes que são correspondentes a esses na classe interna porque são estes que estão no log.

Veja esse trecho por exemplo na linha 1244 do log21122023.txt que você compartilhou:

21/12/23 09:22:02:667 -   OnObtemCampo
21/12/23 09:22:10:687 -     Resposta: 150124, Valido: False, Cancelado: False
21/12/23 09:22:10:687 - PW_iAddParam( PWINFO_48900, 150124 )

 

15 horas atrás, Valdir Dill disse:

Mas COMO ler, por exemplo, o valor e vencimento da parcela 02 dessa transação que eu mencionei na abertura deste post?

Hmm.... talvez tenha sido mais isso que não entendi direito...

Você não disse que o usuário digitou isso? Ele digita os valores em um form que você cria e mostra ao chamar nos eventos que mencionamos.

Então você poderia capturar eles ali, naquele evento ou no form. Como no log acima...

Não?

 

15 horas atrás, Valdir Dill disse:

Obs.: eu já havia relatado essa situação no Discord e o @Daniel Simoes me orientou a abrir um post aqui no fórum para uma melhor análise.

Ahh quando for assim, é bom você mencionar logo no início do tópico. Assim a gente já direciona pra quem pediu, ou mesmo quando for outra pessoa que vá continuar, ela pode ir no Discord e pegar o contexto da conversa.

Por exemplo, é o que eu vou fazer agora, ir lá ler todas as suas mensagens. :)

[]'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.
  • Fundadores
Posted

@Valdir Dill, pelo que notei no Log, não há um mapeamento entre Vero e PayGo, com os dados das parcelas, em identificadores bem específicos... 

Ou seja, o Log não retorna as parcelas, de forma normatizada...

 

Você tem algumas opções para capturar o valor

1 - capturar do "espelho" do comprovante

Isso pode não ser muito bacana, pois se a adquirente modificar o layout do Espelho, sua pesquisa pode falhar... mas pelo que notei, as informações das parcelas, estão bem formatadas por lá...

09:22:32:309 0x53= ------------ 1 via - loja -----------


VERO - BANRICOMPRAS
PAGAMENTO PARCELADO

NELSON HENRI
CNPJ: 04.357.337/0001-01
ROLANTE

041131200661000  00620893

DATA: 21/12/2023          HORA: 09:22:28
NSU BERGS: 00235925
CARTAO: 4313                VALOR: 10,00
NUMERO DE PARCELAS: 03

PARCELAS        VALOR     DEBITO EM 
   01            2,00     05/01/2024
   02            3,00     10/01/2024
   03            5,00     15/01/2024

Banrisul Debito
00-00C1-28B9524DD4A38C0A
A0000001544442                

--------------------------------------
5745823 EC:0000688678 REF:0000002257

 

2 - Capturar assim que o usuário digitar

Essa foi a sugestão do @EMBarbosa...

Observe que no evento onde ocorre as perguntas, você recebe o título e alguns indicadores, que poderia usar para saber quando essa informação está sendo perguntada, e acumular as respostas, em registradores internos do seu sistema

21/12/23 09:21:48:793 -  PW_GetData: 1
  wIdentificador: PWINFO_48901  // <---------- NOME DO REGISTRADOR -----------
  bTipoDeDado: PWDAT_TYPED
  szPrompt: VALOR 1 PARCELA:    // <---------- TITULO DA PERGUNTA -----------
  bNumOpcoesMenu: 0
  szMascaraDeCaptura: R$@.@@@.@@@,@@
  bTiposEntradaPermitidos: PWTYP_Numerico
  bTamanhoMinimo: 1
  bTamanhoMaximo: 9
  ulValorMinimo: 0
  ulValorMaximo: 998
  bOcultarDadosDigitados: 0
  bValidacaoDado: PWVAL_Nenhuma
  bAceitaNulo: 1
  szValorInicial: 333
  bTeclasDeAtalho: 0
  szMsgValidacao: 
  szMsgConfirmacao: 
  szMsgDadoMaior: 
  szMsgDadoMenor: 
  bCapturarDataVencCartao: 0
  ulTipoEntradaCartao: 0
  bItemInicial: 0
  bNumeroCapturas: 0
  szMsgPrevia: 
  bTipoEntradaCodigoBarras: 0
  bOmiteMsgAlerta: 0
  bIniciaPelaEsquerda: 0
  bNotificarCancelamento: 0
  bAlinhaPelaDireita: 1

21/12/23 09:21:48:809 -   OnObtemCampo
21/12/23 09:21:53:599 -     Resposta: 200, Valido: False, Cancelado: False

Porém... Isso também está sujeito a alguma alteração do texto exato da pergunta...

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.

  • Membros Pro
Posted

Deixe-me se entendi a sugestão e me ajudem colocar isso em um código, por favor.

no evento ACBrTEFAPI1QuandoPerguntarMenu eu faria:

- if szPrompt = "DATA 1 PARCELA:" then VIDentificadorGuardadoDataPrimeiraParcela := wIdentificador

- if szPrompt = "VALOR 1 PARCELA:" then  VIDentificadorGuardadoValorPrimeiraParcela := wIdentificador


aí, no final da operação faço:
DataPrimeiraParcela := ACBrTEFAPI1.UltimaRespostaTEF.LeInformacao(VIDentificadorGuardadoDataPrimeiraParcela)
ValorPrimeiraParcela := ACBrTEFAPI1.UltimaRespostaTEF.LeInformacao(VIDentificadorGuardadoValorPrimeiraParcela)

Seria isso?

Obrigado!

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Fundadores
Posted

Não pois conforme está no Log esses valores não estão sendo retornados como indicadores...

A sugestão é capturar o que o usuário digitou no Edit...

Algo como:

if szPrompt = "DATA 1 PARCELA:" then VIDentificadorGuardadoDataPrimeiraParcela := EditCampo.Text

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

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...