Ir para conteúdo
  • Cadastre-se

dev botao

Problema em obter dados PINPAD


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

Recommended Posts

Boa tarde, utilizo a funcao obtem dados pinpad para o cliente digitar o codigo de operador com 4 digitos:

EntradaCOD :=  '010404DIGITE O CODIGO                 CONFIRME CODIGO | xxxx            ';
Retorno := xObtemDadoPinPadDiretoEx(PAnsiChar(ChaveAcesso), PAnsiChar(Identificador),
              PAnsiChar(EntradaCOD), Saida);

Porem em alguns pinpad com firmeware mais recentes não está aceitando!

Conversando com a softwareexpress tem uma maneira mais recente de obter esses dados.

"Osmar, boa tarde. Conforme conversamos em linha, informo que o erro apresentado se deve a versão da Firmware do Pinpad, pois nas novas versões é necessário seguir outro padrão no envio das funções. Modelo do Pinpad onde não apresentou o erro: [GERTEC|PPC-930;192MB C|1200.11808.VR0012 @|2.12002.14 200921|7200101907305095] Modelo do Pinpad onde apresentou erro: [GERTEC|PPC-930;192MB C|1400.12503.VR1115 @|2.12002.14 200921|7200102207027526] Conforme conversamos em linha, oriento o desenvolvimento da função dentro das novas normas para que o erro não seja apresentado. Atenciosamente, Sandra Silva"

Nova maneira é usar:

 

Função  Descrição
789 Obtenção de dado aberto no pinpad. Disponível a partir da clisitef 7.0.115.34.rc15.

Essa funcionalidade é iniciada através da função IniciaFuncaoSiTefInterativo() com o parâmetro Funcao (primeiro parâmetro de entrada da rotina) assumindo o valor 789 e os demais parâmetros com seus valores usuais.

No processo de Continuação (ContinuaFuncaoSiTefInterativo()), serão solicitados (via comando 29) e entregues os campos descritos a seguir (“Descrição dos parâmetros”).

Diferentemente da forma antiga (descrita em capítulo posterior), esta funcionalidade não possui rotinas de uso direto.

alguém já teve viu algo assim?

https://dev.softwareexpress.com.br/docs/clisitef-leitura-de-campo-aberto-no-pinpad/api_prototipo_das_funcoes

 

Link para o comentário
Compartilhar em outros sites

Analisando os fontes do acbrtefapi constatei que ObtemDadoPinPadDireto sempre remete a mesma função da clisitef.dll

xObtemDadoPinPadDiretoEx(PAnsiChar(ChaveAcesso), PAnsiChar(Identificador), PAnsiChar(EntradaCPF), Saida)
 

tentei iniciar uma requisicao da seguinte maneira:
-- 29/08 16:46:19:902 - *** IniciaFuncaoSiTefInterativo. Modalidade: 789 Valor: 0,00 Documento: 164619 Data: 20230829 Hora: 164619 Operador:  Restricoes: 
-- 29/08 16:46:19:902 - BloquearMouseTeclado: SIM
-- 29/08 16:46:19:902 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer = 
-- 29/08 16:46:20:145 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 29 TipoCampo = 2967 Buffer =  Tam.Min = 1 Tam.Max = 4
-- 29/08 16:46:20:145 - ContinuaFuncaoSiTefInterativo, Chamando: Continua = 0 Buffer = 
-- 29/08 16:46:20:161 - ContinuaFuncaoSiTefInterativo, Retornos: STS = 10000 ProximoComando = 22 TipoCampo = -1 Buffer = Campo com formato invalido Tam.Min = 1 Tam.Max = 2
-- 29/08 16:46:20:161 - CliSiTef DoExibeMsg: Oper: opmOK Mensagem: Campo com formato invalido

Como posso tratar para inserir esses parametros na Requisicao? 

image.png.25b3931fc2a42955503e576b7c7d63ad.png

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • 4 semanas depois ...
  • 2 meses depois ...

Bom dia RRIquema, então eu ja entendi como funciona porem não sei qual é a melhor abordagem para implimentar no ACBRTEFD.

Mas funciona assim:

fRetornoPINPADNovo : String; 

Criei uma variavel global para salvar o retorno do pinpad.


Abra uma transação com a operacao: 789

 if ExecutarTransacaoSiTef(789, 0) then
      ContinuarRequisicaoSiTef;

no ContinuarRequisicaoSiTef verifique os retornos

 proximocomando for 0 e tipocampo=2971: 

  • fRetornoPINPADNovo := BinaryStringToString(Buffer);

proximocomando=29

  •  tipocampo =  2967:
  •                         Resposta := '1E'; // Código hexadecimal do dado do portador: Veja Tabela
  •   tipocampo =  2968:
  •                          Resposta := '4'; // Tamanho Minimo do Campo 
  •   tipocampo =  2969:
  •                          Resposta := '4'; // Tamanho Maximo do campo
  •   tipocampo =  2970:
  •                           Resposta := '0'; // Tempo de Espera
     

com isso consegui retornar os dados do pinpad.

Fiz isso no ACBrTEFAPI.

Da pra fazer igual no ACBrTEFD.

Então se alguem se habilitar para poder adicionar nos fontes do TEF eu posso ajudar.

chamar no Whatsapp 45-99971-5601

Editado por Osmar de Luca
Link para o comentário
Compartilhar em outros sites

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