Ir para conteúdo
  • Cadastre-se

dev botao

Verificar presença do pinpad - nova função


JLuis
Ver Solução Respondido por Daniel Simoes,

Recommended Posts

  • Membros Pro

Bom dia,

Atualizei os fontes e verifiquei que foi implementada uma nova função para verificar a presença do pinpad "VerificarPresencaPinPad", algo que considero de grande importância se permitir que possamos verificar se o equipamento está devidamente conectado e configurado já na abertura do sistema pois evitaria de o problema só ser percebido na hora de processar o pagamento.

Ao testar verifiquei que ao chamar a função está ocorrendo um AV.... também não consegui localizar nos fontes quais seriam os possíveis valores de retorno, apenas que retorna um tipo byte.

Utilizo a PayGoWeb DLL.

Grato.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Oi @JLuis, eu ainda estou trabalhando nessa função...

Eu notei que ela é demorada, fica varrendo todas as portas seriais...

Sabe em que linha ocorreu o A.V. ?

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

Ocorre na unit ACBrTEFAPI.pas linha 327
function TACBrTEFAPI.GetTEFAPIClass: TACBrTEFAPIClass;
begin
  Result := TACBrTEFAPIClass(fpTEFAPIClass);  // <<<---
end;

A DLL (PGWebLib.dll) é a de homologação versão 4.1.15.1.

O pinpad é um Gertec PPC 930 versão 2.12.

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Daniel, desculpe, falha minha... verifiquei agora que eu estava chamando a função antes da minha rotina de configuração do componente, então corrigi e o AV não ocorreu mais, apenas demorou um tempo e deu a mensagem de "Erro de comunicação com o pinpad" mesmo ele estando conectado e funcionando normal.

Link para o comentário
Compartilhar em outros sites

  • Fundadores
  • Solution

Pois é.. a função para não estar funcionando como deveria... e a documentação que recebemos não está ajudando muito...

  • 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

  • 8 meses depois ...
  • Consultores
Em 13/02/2024 at 08:07, DaniPro disse:

Ola.

Tentei usar a VerificarPresencaPinPad mas resulta em chamada inválida (-2494). Procurei na documentação da PayGo e

não encontrei a função PW_iPPCommTest para tentar verificar.

 

 

 

 

Esta com o componente e PGWebLib.dll atualizada ? 
 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
2 horas atrás, DaniPro disse:

Sim, baixei tudo na sexta passada

 

Pelo que vi o retorno significa chamada fora do lugar.

ta, de fato, parece estar chamando em um momento incorreto, geralmente, durante uma transação TEF ou Administrativa..
Tente inicializar o componente e logo após fazer a chamada VerificarPresencaPinPad

Link para o comentário
Compartilhar em outros sites

  • Moderadores
25 minutos atrás, DaniPro disse:

Tentei fazer um teste com a CliSiTef mas dá isso.

 

teste.png

a implementação foi feito para PayGo conforme conversas anteriores pois está a falar da PGWeblib

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

  • Fundadores

Você poderia usar o TACBrAbecsPinPad, para detectar ele...

Basta varrer as portas seriais no sistema, tentar abrir elas, e nas que tiver sucesso com a abertura, tentar o comando TACBrAbecsPinPad.OPN

 

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

  • Fundadores

Implementei no Demo do ACBrAbecsPinpad o seguinte Botão, para detectar o Pinpad

procedure TfrMain.btDetectPinPadClick(Sender: TObject);
var
  sl: TStringList;
  PortFound: String;
  i: Integer;
begin
  sl := TStringList.Create;
  try
    ACBrAbecsPinPad1.Device.AcharPortasSeriais( sl );
    i := 0;
    PortFound := '';
    while (i < sl.Count) and (PortFound = '') do
    begin
      try
        ACBrAbecsPinPad1.Disable;
        ACBrAbecsPinPad1.Port := sl[i];
        ACBrAbecsPinPad1.Enable;
        try
          ACBrAbecsPinPad1.OPN;
          ACBrAbecsPinPad1.CLO;
          PortFound := ACBrAbecsPinPad1.Port;
        finally
          ACBrAbecsPinPad1.Disable;
        end;
      except
      end;
      Inc(i);
    end;

    if (PortFound <> '') then
      ShowMessage('PinPad Found on '+PortFound)
    else
      ShowMessage('PinPad not Found');
  finally
    sl.Free;
  end;
end; 

 

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

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.