Ir para conteúdo
  • Cadastre-se

dev botao

(Clisitef) Coletar CPF pelo pinpad para NFP


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

Recommended Posts

  • Fundadores

Nos fontes do ACBrTEFDCliSitef há um método para enviar uma mensagem ao Pin-Pad... mas acho que não há um método que capture informação do Pin-Pad... (apesar da DLL do SiTEF permitir isso)

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

Deve existir uma DLL especifica para capturar dados genéricos do pinpad. 

 

Com certeza existe um meio, pois vários sistemas PDV estão usando este artificio.

 

Se alguém puder encurtar minha caçada ficarei agradecido, assim como vários outros colegas.

 

Vou entrar em contato com as homologadoras ...

 

Enfim, se eu conseguir alguma solução postarei aqui...

 

Abs

Evandro

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Leia o manual da CliSiTEF.dll... o que você procura está lá... Procure por: LeSenhaDireto, e LeSenhaInterativo

 

no meu tópico anterior, apenas disse que o ACBrTEFD não "abstrai" essa funcionalidade da DLL...

Se quiser desenvolver e enviar sua colaboração será muito bem vinda...

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

  • 3 semanas depois ...
  • Solution

Pessoal...

 

Aqueles que quiserem usar essa funcionalidade da DLL Sitef devem solicitar diretamente a Software Express...

 

Tivemos que assinar um Termo de Confidenciabilidade para que fosse gerada uma chave de segurança personalizada para chamar a função para coletar dados genéricos do pinpad.

 

Fica a dica...

 

Obrigado a todos

 

Evandro

Link para o comentário
Compartilhar em outros sites

  • 10 meses depois ...

Pessoal...

 

Aqueles que quiserem usar essa funcionalidade da DLL Sitef devem solicitar diretamente a Software Express...

 

Tivemos que assinar um Termo de Confidenciabilidade para que fosse gerada uma chave de segurança personalizada para chamar a função para coletar dados genéricos do pinpad.

 

Fica a dica...

 

Obrigado a todos

 

Evandro

Bom Dia Evandro,

Também assinamos esse Termo diretamente com a Software Express, agora eles são muito fracos em tirar dúvidas, o metodo de chamada direta quando acesso retorna um erro, você poderia me auxiliar?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Olá a todos,

Como ficou está questão, procurei aqui no Fórum e não encontrei nada que resolve-se a Captura do CPF pelo PINPAD,  como o Daniel citou acima eu vi na documentação da clisitef.dll os comandos  "LeSenhaDireto" e "LeSenhaInterativo" se for o caso posso tentar implementar a função e enviar para testes, na próxima semana vou pedir a documentação atualizada da dll junto a Softwareexpress pois a minha está desatualizada.

 

Att;

Genilson

Link para o comentário
Compartilhar em outros sites

  • 11 meses depois ...

Olá, segue abaixo as funções que executam este procedimento, estou tentando implementar, se alguém tiver isso pronto, por favor, ajude.

Leitura de um campo aberto no pinpad

As funções abaixo permitem a coleta de dados em aberto no pinpad, para habilitar essa funcionalidade é necessário solicitar a Software Express uma chave de segurança que habilitará a coleta de determinados tipos de dados no pinpad.

         Funções Interativas

int ObtemDadoPinPadEx (ChaveAcesso, Identificador, Entrada);

void ObtemDadoPinPadExA (Resultado , ChaveAcesso, Identificador, Entrada);

         Funções Diretas

int ObtemDadoPinPadDiretoEx (ChaveAcesso, Identificador, Entrada, Saida);

void ObtemDadoPinPadDiretoExA (Resultado, ChaveAcesso, Identificador, Entrada, Saida);

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Em 4/7/2016 at 10:07, FabianoQS disse:

Olá, segue abaixo as funções que executam este procedimento, estou tentando implementar, se alguém tiver isso pronto, por favor, ajude.

Leitura de um campo aberto no pinpad

 

As funções abaixo permitem a coleta de dados em aberto no pinpad, para habilitar essa funcionalidade é necessário solicitar a Software Express uma chave de segurança que habilitará a coleta de determinados tipos de dados no pinpad.

 

         Funções Interativas

 

int ObtemDadoPinPadEx (ChaveAcesso, Identificador, Entrada);

void ObtemDadoPinPadExA (Resultado , ChaveAcesso, Identificador, Entrada);

 

         Funções Diretas

 

int ObtemDadoPinPadDiretoEx (ChaveAcesso, Identificador, Entrada, Saida);

 

void ObtemDadoPinPadDiretoExA (Resultado, ChaveAcesso, Identificador, Entrada, Saida);

 

Bom dia!

 

Eu tenho essas rotinas funcionando.

 

O detalhe eh que para coletar esses dados, voce precisa entrar em contato com a SE e solicitar uma dll feita (na teoria para o seu cliente e na pratica funciona para todos) para isso. 

A dll se chama mkse.dll.

Tendo essa dll a coleta em si eh tranquilo.

So com as dlls do clisitef normal nao da pra coletar.

Vou separar aqui as rotinas e ja posto.

 

 

 

 

Segue anexo a rotina para a coleta.

Eu nao uso ACBrTEFD e o componente que eu uso não tenho os fontes.

Por isso fiz separado.

Devo migrar em breve para o ACBrTED e ai posso incluir  nos fontes.

Qualquer duvida estou a disposição.

coleta.txt

Editado por giulianon
  • Curtir 2

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Ola...

primeiro: existe uma MkSe.dll de teste? 

segundo: achei um pouco extensa a sua função... não da pra fazer assim? 

///// pegar dados do PIN PAD -- declaração

type
   TTEFD_SISTEF = class // funcoes para SITEF DEDICADO da minha aplicação
   public
      function F_CapturarCpfCnpjPinPad(DigitoCPF: Boolean; Identificador, ChavePersonalizada: AnsiString): string;
   end;

/// declaração de acesso a função externa

function xObtemDadoPinPadDiretoEx(ChaveAcesso: PAnsiChar; Identificador: PAnsiChar; Entrada: PAnsiChar; var Saida: array of Byte): Integer; stdcall; external 'MkSe.dll';

//////////////////////// pegar cpf/cnpj pelo pin pad ///////////////////////////// --- ESSA FUNÇÃO É DO ACBrTEF, peguei igual....

function TTEFD_SISTEF.F_CapturarCpfCnpjPinPad(DigitoCPF: Boolean; Identificador, ChavePersonalizada: AnsiString): string;
const
   EntradaCPF = '011111  INFORME CPF                   CONFIRME O CPF  |xxx.xxx.xxx-xx  ';
   EntradaCNPJ = '020808INFORME CNPJ P1                 CONFIRME P1     |xx.xxx.xxx      ' +
      '0606INFORME CNPJ P2                 CONFIRME P2     |xxxx-xx         ';
var
   retorno: Integer;
   Saida: array of Byte;
   Caracter: Char;
   sSaida: string;
   I: Integer;
begin
   Result := '';

   SetLength(Saida, 15);
   if DigitoCPF then
   begin
      retorno := xObtemDadoPinPadDiretoEx(PAnsiChar(ChavePersonalizada),
         PAnsiChar(Identificador),
         PAnsiChar(EntradaCPF),
         Saida);
   end
   else
   begin
      retorno := xObtemDadoPinPadDiretoEx(PAnsiChar(ChavePersonalizada),
         PAnsiChar(Identificador),
         PAnsiChar(EntradaCNPJ),
         Saida);
   end;

   if retorno = 0 then
   begin
      sSaida := '';
      if DigitoCPF then
      begin
         for I := 4 to 14 do
         begin
            Caracter := Chr(Saida);
            sSaida := sSaida + Caracter;
         end;
      end
      else
      begin
         for I := 4 to 19 do
         begin
            Caracter := Chr(Saida);
            sSaida := sSaida + Caracter;
         end;
         sSaida := Copy(sSaida, 1, 8) + Copy(sSaida, 11, 6);
      end;
      Result := sSaida;
   end;
   Saida := nil;

end;
 

 

obrigado...

 

Link para o comentário
Compartilhar em outros sites

4 horas atrás, João Carlos Almeida Prado disse:

Ola...

primeiro: existe uma MkSe.dll de teste? 

segundo: achei um pouco extensa a sua função... não da pra fazer assim? 

///// pegar dados do PIN PAD -- declaração

type
   TTEFD_SISTEF = class // funcoes para SITEF DEDICADO da minha aplicação
   public
      function F_CapturarCpfCnpjPinPad(DigitoCPF: Boolean; Identificador, ChavePersonalizada: AnsiString): string;
   end;

/// declaração de acesso a função externa

function xObtemDadoPinPadDiretoEx(ChaveAcesso: PAnsiChar; Identificador: PAnsiChar; Entrada: PAnsiChar; var Saida: array of Byte): Integer; stdcall; external 'MkSe.dll';

//////////////////////// pegar cpf/cnpj pelo pin pad ///////////////////////////// --- ESSA FUNÇÃO É DO ACBrTEF, peguei igual....

function TTEFD_SISTEF.F_CapturarCpfCnpjPinPad(DigitoCPF: Boolean; Identificador, ChavePersonalizada: AnsiString): string;
const
   EntradaCPF = '011111  INFORME CPF                   CONFIRME O CPF  |xxx.xxx.xxx-xx  ';
   EntradaCNPJ = '020808INFORME CNPJ P1                 CONFIRME P1     |xx.xxx.xxx      ' +
      '0606INFORME CNPJ P2                 CONFIRME P2     |xxxx-xx         ';
var
   retorno: Integer;
   Saida: array of Byte;
   Caracter: Char;
   sSaida: string;
   I: Integer;
begin
   Result := '';

   SetLength(Saida, 15);
   if DigitoCPF then
   begin
      retorno := xObtemDadoPinPadDiretoEx(PAnsiChar(ChavePersonalizada),
         PAnsiChar(Identificador),
         PAnsiChar(EntradaCPF),
         Saida);
   end
   else
   begin
      retorno := xObtemDadoPinPadDiretoEx(PAnsiChar(ChavePersonalizada),
         PAnsiChar(Identificador),
         PAnsiChar(EntradaCNPJ),
         Saida);
   end;

   if retorno = 0 then
   begin
      sSaida := '';
      if DigitoCPF then
      begin
         for I := 4 to 14 do
         begin
            Caracter := Chr(Saida);
            sSaida := sSaida + Caracter;
         end;
      end
      else
      begin
         for I := 4 to 19 do
         begin
            Caracter := Chr(Saida);
            sSaida := sSaida + Caracter;
         end;
         sSaida := Copy(sSaida, 1, 8) + Copy(sSaida, 11, 6);
      end;
      Result := sSaida;
   end;
   Saida := nil;

end;
 

 

obrigado...

 

Não existe uma mkse.dll de testes pois a mesma é feita para cada cliente.

Eu não utilizo o ACBrTEFD por isso criei uma função paralela.

Estou migrando do componente atual para o ACBrTEFD.

Pelo que eu li em algum post o Daniel ia implementar algo para coletar qualquer informação via pinpad.

Chegou a atualizar o componente de TEF e verificar se isso foi feito?

Por último recebi esse email da software express, que trata da alteração na forma de coleta dessas informações através do pinpad.

Citar

1.      Introdução

Desde que surgiu o primeiro pinpad que trabalha de forma segura, onde as senhas dos clientes não mais são disponibilizadas em claro, for permitido que a Software Express possuísse uma chave DES (Método de criptografia existente nos PinPads e considerado fraco nos dias de hoje por possuir uma chave de 56 bits) de criptografia dentro destes equipamentos e, a partir dela, disponibilizasse aos usuários do SiTef a possibilidade de obter Senhas Proprietárias.

          Para tanto, foram disponibilizadas bibliotecas personalizadas cliente a cliente de forma a tornar seguro o processo de tratamento dessas senhas por software e permitir que os estabelecimentos pudessem utilizar o PinPad normalmente alugado dos adquirentes para esse fim.

2.       Situação atual

          Com a evolução do mercado de meios de pagamento, que está cada vez mais rápida quer seja pela entrada de novos adquirentes, quer seja através da própria evolução tecnológica onde os cartões com chip passaram a fazer parte de nosso dia a dia, as regras de segurança também evoluíram e, nesse contexto, todas as chaves DES serão removidas dos PinPads, a previsão inicial é que este processo seja iniciando a partir de 31 de maio de 2016. Neste momento ainda não temos nenhum Pinpad certificado e liberado para uso por isso entendemos que esta data seja prorrogada, de qualquer forma estamos enviando as orientações para a validação de senha neste novo formato.

          Essa é uma determinação da ABECS (Associação Brasileira das Empresas de Cartões de Crédito e Serviços, organização que congrega as empresas que estão envolvidas com os meios de pagamento eletrônico via cartão e define, entre outras, as regras de compartilhamento e segurança de uso dos PinPads no Brasil, sempre atendendo aos padrões internacionais) em atendimento as regras do PCI. Entretanto, não será feito um mutirão para essa remoção há curto prazo, mas qualquer PinPad adquirido a partir desta data ou que voltar ao fabricante para conserto, não mais poderá retornar ao mercado com as chaves DES.

3.       O problema

          Embora foi-nos permitido ter uma chave 3DES (Evolução do DES utilizando chave dupla e contendo um nível de segurança aceito para os padrões de mercado atual) no PinPad, por regras de segurança essa chave NÃO mais poderá ser tratada por qualquer tipo de biblioteca de software, sob pena de termos ela removida dos PinPads.

          Sendo assim, a Software Express não mais conseguirá fornecer uma biblioteca que possibilite recuperar as Senhas Proprietárias dos clientes, por isso foi preciso            criar um novo formato para atender a nossos clientes na necessidade de obter ou validar uma Senha Proprietária.

 

4.       Formato de coleta de senha utilizado hoje.

A solução atual permite que a senha seja obtida pela automação através do uso de três funções, são elas:

SEObtemChaveSeguranca: utilizada para obter a chave de trabalho.

LeSenhaDireto: permite a captura da senha através do pinpad e devolve a senha criptografada.

SEObtemSenhaCliente: Utilizada para descriptografar a senha.

 

5.       O Novo formato a ser utilizado para validação da senha.

Como a troca dos novos Pins pode ocorrer de forma gradual estamos sugerindo este fluxo aonde primeiro a automação deverá identificar o tipo de Pin utilizado. Um segundo ponto é que como não será possível descriptografar a senha capturada a automação deverá armazenar e comparar sempre a string retornada do Pin para saber se a senha digitada foi a correta.

VerificaCapacidadePinpad: retorna a automação se o Pin permite o uso das funções legadas.

Tem função legada?

(Sim)

SEObtemChaveSeguranca: utilizada para obter a chave de trabalho.

LeSenhaDireto: permite a captura da senha através do pinpad e devolve a senha criptografada.

SEObtemSenhaCliente: Utilizada para descriptografar a senha.

(Não)

LeSenhaABECSDireto: permite a captura da senha através do pinpad e devolve a senha criptografada (Pinblock).

Para saber se a senha esta correta a automação deverá comparer o PinBlock retornado com um Pinblock já armazenado previamente.

           

         

 

6.       Especificação das novas funções.

Capacidade do PinPad

   Interface padrão

int VerificaCapacidadePinpad(Capacidade)

 

Interface ASCII

void VerificaCapacidadePinpadA (Resultado, Capacidade)

 

 

Parâmetro

Tipo

Interface padrão

Interface

ASCII

Descrição

Resultado

Saída,

por valor

Não usado

Fixo 6

Contém o resultado de resposta à chamada da rotina

Capacidade

Entrada,

por valor

char *

01

Identifica capacidade do pinpad

 

Neste parâmetro será retornado a capacidade do pinpad:

Parâmetro

Tipo

Tamanho

Descrição

Capacidade

N

01

Valores válidos:

‘0’ – Capacidade de processas funções legadas

‘1’ – Capacidade de processar funções novas

‘2’ – Capacidade de processar funções legadas e novas.

            

Retorna o código de resposta indicando a capacidade de processamento do pinpad na chamada da função ou no campo “Resultado”.

Código de Retorno

Descrição

0

Ok. 

Outros

Ocorreu algum erro na execução da função

                                                                           

Nova leitura de senha no PinPad

 

Interface padrão

int LeSenhaAbecsDireto (PAN, WorkingKey, PinBlock)

int LeSenhaAbecsInterativo (PAN, WorkingKey)

 

Interface ASCII

void LeSenhaAbecsInterativoA (Resultado, PAN, WorkingKey)

void LeSenhaAbecsDiretoA (Resultado, PAN, WorkingKey, PinBlock)

 

Parâmetro

Tipo

Interface padrão

Interface

ASCII

Descrição

Resultado

Saída,

por valor

Não usado

Fixo 6

Contém o resultado de resposta à chamada da rotina

PAN

Entrada,

por valor

char *

13..19

Número do cartão

WorkingKey

Entrada,

por valor

char *

32

Chave utilizada para criptografar a senha

PinBlock

Entrada,

por valor

char *

32

Senha criptografada com a  “WorkingKey” fornecida.

Tabela 7

 

 

 

·         O parâmetro “PAN”(Número do cartão) deve ter de 13 a 19 dígitos.

 

·         O parâmetro “WorkingKey” é uma chave que será utilizada para criptografar a senha fornecida pelo cliente. Como essa chave é manipulada internamente pelo pinpad, não é possível utilizando apenas ela obter a senha em claro.   Deve ser informado no formato “numérico hexadecimal” em ASCII.  Valores válidos: “0” a “9” e “A” a “F”, cada par de caracter representa um byte hexadecimal.  O tamanho desse campo é fixo contendo 32 caracteres.

 

·         A senha digitada pelo usuário, no pinpad, será sempre retornada no parâmetro “PinBlock” e criptografado, no formato “numérico hexadecimal”. O pinpad garante que sempre que for fornecido o mesmo PAN, a mesma WorkingKey e o cliente digitar a mesma senha, o PinBlock retornado será sempre o mesmo.

 

7.       Recadastramento de senhas.

Como não será possível abrir a senha com os novos Pins, entendemos que a solução possível é solicitar aos usuários que realizem o recadastramento da senha, com isto a automação deverá capturar a string (PinBlock) e armazena-la para utilizar quando da comparação em uma nova digitação de senha pelo usuário. Além da alteração da chamada da função vale observar que desta forma o tamanho da string de senha passa a ter 32 posições e não mais 4 ou 6 como antigamente.

 

 

 

8.       Previsão de liberação.

Temos como previsão liberar a nova versão da CliSiTef que contempla estas novas funcionalidades até o dia 16 de maio de 2016. Esta data foi estipulada porque até o dia de hoje não temos nenhum fabricante com Pin certificado nesta nova interface ABECS.

 

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Bom dia, fiz umas alterações na unit ACBrTEFDCliSiTef,  referente a coleta de dados do PinPad, possibilitando além da leitura do CPF/CNPJ, também a possibilidade de ler o número do telefone celular para recarga pelo TEF. Se possível gostaria que fosse avaliado para possivel atualização do componente.

exemplo de uso:

    edCPFCNPJ.Text := ACBrTEFD.TEFCliSiTef.ObtemDadoPinPadDiretoEx(1,     // tipo  de coleta 1-CPF 2-Cnpj 3-Celular
     'informe aqui a chave fornecida pela Software Express', 
     'informe aqui o seu CNPJ');

Obrigado.

ACBrTEFDCliSiTef.pas

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
Em 31/08/2017 at 11:18, Anderson.D disse:

Bom dia, fiz umas alterações na unit ACBrTEFDCliSiTef,  referente a coleta de dados do PinPad, possibilitando além da leitura do CPF/CNPJ, também a possibilidade de ler o número do telefone celular para recarga pelo TEF. Se possível gostaria que fosse avaliado para possivel atualização do componente.

exemplo de uso:

    edCPFCNPJ.Text := ACBrTEFD.TEFCliSiTef.ObtemDadoPinPadDiretoEx(1,     // tipo  de coleta 1-CPF 2-Cnpj 3-Celular
     'informe aqui a chave fornecida pela Software Express', 
     'informe aqui o seu CNPJ');

Obrigado.

ACBrTEFDCliSiTef.pas

 Boa tarde Anderson!

Tentei usar a sua rotina mas sem sucesso.

Aparentemente essa função "ObtemDadoPinPadDiretoEx" não existe na DLL pois depurando retorna -100.

Pode postar aqui a dll ou me informar qual a versão da mesma você está usando?

Outra dúvida. Essa chave fornecida pela Software Express é a mesma utilizada na dll mkse.dll, ou você solicitou uma nova?

Att.

 

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
Em 08/01/2018 at 12:13, Anderson.D disse:

Bom dia, segue em anexo as dll's que utilizo, em relação a chave eu solicitei a Software Express, mais não sei informar se é a mesma da mkse.dll.

CliSiTef32.dll

CliSiTef32I.dll

Obrigado pelo retorno Anderson.

Eu já havia entrado em contato com a Software Express e era isso mesmo.

Para solicitar uma nova chave, tem que assinar um novo termo e confidencialidade e enviar para eles pelo correio.

Só depois de alguns dias que eles liberam a chave.

Ainda não testei com as suas alterações mas acredito que agora vá funcionar.

Então deixando um passo a passo para o pessoal, a sequencia para coletar informações através do pinpad é a seguinte:

  • Entrar em contato com o departamento comercial da Software Express informando qual informação você quer coletar.
  • Conforme o tipo de informação que você quer coletar, a Software Express vai te enviar um termo de confidencialidade que você vai ter que assinar e enviar para eles pelo correio.
  • Depois que a software receber esse tempo ela vai liberar a chave sendo que a chave depende do tipo de informação que você quer coletar
  • Se for para coletar senha a DLL é a mkse.dll e se for para coletar outras informações é através da Clisitef32.dll.
  • O ACBrTEFD ainda não como está com essas rotinas implementadas, mas vários colegas já fizeram essas alterações e postaram aqui, então é bem simples pegar e ajustar para obter essa funcionalidade.

Qualquer dúvida estamos a disposição.

Att.



 

  • Curtir 2

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Bom dia, implementei a função acima no ACBrTEFDCliSiTef.pas

function ObtemDadoPinPadDiretoEx(Tipo_Doc: Integer; ChaveAcesso: PAnsiChar; Identificador: PAnsiChar): AnsiString;

Gostaria que por gentileza colocassem no SVN, por que toda vez que atualizou o ACBR tenho que ficar atualizando ele e as vezes eu esqueço rsrs


 

ACBrTEFDCliSiTef.pas

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • 2 meses depois ...

Seria uma boa ter no fonte do SVN, para quem usa versão mais atual da CliSiTef.dll não precisa mais de chave e nem identificador conforme manual que a software express me enviou hoje 04/07/2019.

Observação:
1) Se a automação estiver utilizando a CliSiTef (Versões mínimas: 5.0.115.13.r1 / 6.1.115.13.r1 / 6.2.115.13.r1) em conjunto com o GerPdv (Versões mínimas: 6.2.3.56 / 6.2.4.19), não é necessário que a automação informe os parâmetros “ChaveAcesso” e “Identificador” na execução das funções mencionadas acima, pois os referidos parâmetros serão recebidos do SiTef. Neste caso, a automação deve passar um endereço nulo (NULL) ou uma string vazia nestes parâmetros.
Desse modo, para que essa funcionalidade possa ser utilizada, é necessário que após a carga da CliSiTef (CliSiTef32I.dll / CliSiTef64I.dll / libclisitef.so), seja realizado pelo menos uma conexão com o SiTef.
Se no momento da execução dessas funções (ObtemDadoPinPadEx / ObtemDadoPinPadDiretoEx), a CliSiTef ainda não tiver realizado nenhuma conexão com o SiTef, a CliSiTef irá tentar fazê-lo nesse momento. Se a tentativa de conexão falhar, essas funções irão retornar um erro.
Se a CliSiTef for descarregada da memória, será novamente necessário a realização de pelo menos uma conexão com o SiTef.

Esta observação esta no manual em anexo no final da página 6.

Leitura de Campo Aberto no PinPad v1.09.pdf

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • Consultores
2 horas atrás, ALA disse:

Senhores, bom dia. As funções criadas pelo  osmcvlnão estão no 

 

image.png.7235ea0fe33c5c678ce4a2c491dd83c4.png

as mesma serão incorporadas ao ACBRTEF ?

É necessária ainda a avaliação das alterações.

Você pode ajudar baixando, testando e reportando tanto o sucesso como qualquer problema encontrado.

[]'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

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