Ir para conteúdo
  • Cadastre-se

dev botao

Coleta de CPF no PinPad, travando em Produção


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

Recommended Posts

Bom dia pessoal,

Me desculpem se abri algum tópico duplicado, mas procurei em todo fórum e não encontrei ninguém com este mesmo problema que eu.

Estou tentando implementar a captura de CPF pelo Pinpad mas estou enfrentando problemas em ambiente de produção.

Fiz todo processo de implementação utilizando o ambiente de homologação como Simulador Sitef da Software Express e funcionou tudo certinho, o sistema captura o CPF e traz tudo OK.

Quando coloco meu sistema para rodar em produção nos meus clientes, começa a travar a aplicação.
Maioria dos meus clientes utilizam o TEF Nuvem da Skytef. 

Analisaram LOG da Clisitef, dizem que com a DLL está tudo correto e o problema está no meu sistema. 
Entrei em contato com eles mas eles teimam em dizer que lá funciona e tenho que deixar meu sistema igual ao exemplo que eles me mandaram, ou voltar a utilizar o Delphi 7 (que é inviável pra mim).

Alguém mais aqui teve problema igual ao meu?
Poderia me ajudar a resolver meu problema?
Já até atualizei as DLLs da Clisitef para versão 7.0.116.1.r1 mas mesmo assim não funciona, fica travando.

 

Desde já agradeço a todos.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia.

está usando o ACBrTEFD e o método implementado nele?

consegue ver se a assinatura do metodo está igual ao exemplo que eles mandaram?

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

Bom dia Juliomar, 

Estou utilizando sim o ACBrTEFD como o método implementado no ACBrTEFDCliSiTef.

A assinatura do exemplo deles está diferente da assinatura no ACBrTEFDCliSiTef.

A deles estão assim: 

fClienteObtemDadoPinPadDiretoEx: function(lpcChaveAcesso: PChar; lpcChaveSecreta: PChar; lpcEntrada: PChar;
      lpcSaida: PChar): integer; stdcall;

function ClienteObtemDadoPinPadDiretoEx(sChaveAcesso: ANSIstring; sChaveSecreta: ANSIstring): ANSIstring;

No ACBrTEFDCliSiTef esta assim:

xObtemDadoPinPadDiretoEx: function(ChaveAcesso: PAnsiChar; Identificador: PAnsiChar; Entrada: PAnsiChar; var Saida: array of Byte): Integer;
     {$IFDEF LINUX} cdecl {$ELSE} stdcall {$ENDIF};
   
function ObtemDadoPinPadDiretoEx(TipoDocumento: Integer; ChaveAcesso: PAnsiChar;
       Identificador: PAnsiChar): AnsiString;   

 

Já tentei alterar o ACBrTEFDCliSiTef para ficar igual do exemplo deles, mas nada de funcionar.

 

Obs: Estou utilizando o Delphi 10.3.3 Rio

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Seria preciso modificar e testar, como a sitef não disponibiliza código para testar teria que você compatibilizar as chamadas do ACBrTEFD e testar

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

Boa tarde, 

Novamente insistindo um suporte como pessoal da Skytef, eles me orientaram como chamar corretamente a função da DLL e parar este travamento.

Fiz a implementação no ACBrTEFDCliSiTef, testei e funcionou corretamente.

Segue anexo minha contribuição para a comunidade.

 

Moderadores, favor fechar este tópico.

E novamente obrigado pela ajuda de sempre.

ACBrTEFDCliSiTef.pas

 

Editado por Andrei Ricardo
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Fiquei um pouco confuso, pois existem diferenças significativas na sua Unit, em relação a Unit atual no SVN...

Existem na sua Unit, dois métodos para captura de dados no teclado... qual delas é a funcional ? Seria essa ?

     function ObtemDadoPinPad(TipoDocumento: Integer; ChaveAcesso: PAnsiChar;
       Identificador: PAnsiChar; out Resultado: String): Boolean;

 

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
  • Solution

Enviei ajustes ao SVN, baseado em suas sugestões... Também enviei em conjunto o refactoring que venho trabalhando...

Citar

-- ACBrTEFDCliSitef, ACBrTEFCliSiTefComum --
[*] Refactoring, movendo toda carga de DLL e uso da API do SiTef, para
    ACBrTEFCliSiTefComum
[+] Novas propriedades, para permitir o uso do método "CDP"
     property PinPadChaveAcesso: AnsiString
     property PinPadIdentificador: AnsiString
[+] Método "TACBrTEFDCliSiTef.CDP", implementado, em modo de compatibilidade.
[*] Simplificação na implementação do método "ObtemDadoPinPadDiretoEx"
    (por: DSA)

 

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

  • Este tópico foi criado há 1399 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.