ID TECH
Contato
Todos os posts técnicos

Post Técnico

Introdução ao SDK Universal da ID TECH

Uma das grandes vantagens de escolher um leitor de cartão de crédito fabricado pela ID TECH é que a integração do dispositivo em um ambiente de PDV ou aplicativo de pagamento pode ocorrer de forma rápida e sem complicações por meio de um único Software Development Kit, que chamamos de Universal SDK.

Ele é "universal" por expor uma API comum a todos os ID TECH produtos compatíveis e funciona da mesma forma independentemente do ambiente.

Dito isso, é importante reconhecer que o Universal SDK da ID TECH está disponível em diversas versões, dependendo do sistema operacional em que você pretende implantar o dispositivo e da linguagem de programação que deseja utilizar. Um Universal SDK baseado em C# (.NET 4.61, .NET Standard 2.0/2.1, .NET Core 3.1) está disponível para suportar a maioria dos ID TECH Products no Windows. Porém, se você precisar, por exemplo, utilizar um de nossos leitores Bluetooth VP3300 com um smartphone Samsung, existe uma versão Android do Universal SDK baseada em Java para essa finalidade. Se precisar integrar ao Linux, temos um Universal SDK em C++ para isso (com uma versão opcional em Java também). Alguns de nossos leitores móveis funcionam com iPads ou iPhones; portanto, naturalmente, há também um Universal SDK para iOS (que permite programar em Swift ou Objective-C). E sim, oferecemos suporte ao Raspberry Pi (com C e Java).

Ao contrário de alguns de nossos concorrentes, a ID TECH não cobra nada pelos seus SDKs e não exige que você participe de um "programa de desenvolvedores". Na verdade, é possível obter a maioria das ferramentas para desenvolvedores (e a documentação) sem sequer se cadastrar para ter acesso. Basta acessar o nosso Base de Conhecimento, selecione uma família de produtos e acesse a Página do Produto correspondente para encontrar os links do SDK. (Por exemplo, confira a VP3300 Página do Produto. Role para baixo até "SDKs".). Além disso, nosso SDK .NET é distribuído por meio do NuGet para facilitar a integração com o Visual Studio. O projeto page para o nosso .NET SDK contém documentação, exemplos e outras informações úteis sobre a implementação do .NET nos seus projetos.

O que está disponível na nossa Página do Projeto Visual Studio .NET ?

  • Um link para NuGet.org, que hospeda as ID TECH .NET bibliotecas
  • Exemplos multiplataforma de utilização do SDK no Windows, Mac ou Linux usando .NET Core 3.1
  • Documentação da API do SDK, nos formatos HTML e PDF
  • Exemplo de código-fonte utilizando Xamarin para desenvolvimento mobile em iOS e Android
  • Código-fonte do nosso software uDemo que opera todos os ID TECH dispositivos via USB, Serial e IP
  • Instalador compilado do nosso software uDemo software
  • Registro de alterações
  • Diversos utilitários baseados em .NET para operar e configurar ID TECH dispositivos

O que está no SDK empacote seu download de Base de Conhecimento (versões não .NET )? Ao descompactar o arquivo Zip, você encontrará quatro pastas:

  • Demo Esta pasta contém executáveis já compilados correspondentes aos projetos de código de exemplo fornecidos na pasta SourceCode . Haverá dois executáveis: um (chamado Simple Demo) que representa o aplicativo de demonstração "tutorial" mais básico descrito na documentação, e um segundo aplicativo mais elaborado que (pelo menos no caso do SDK para Windows) tem uma aparência e funcionamento semelhantes ao UDemo utilitário apresentado em uma publicação anterior.
  • Docs A documentação do SDK está disponível em dois formatos: HTML e PDF. Cada um contém uma descrição detalhada das APIs, exemplos de uso, informações complementares, um tutorial passo a passo e muito mais.
  • SDK Aqui vocêencontrará as bibliotecas compiladas e outros recursos necessários para suportar um aplicativo em execução na plataforma em questão. Para máquinas Windows, espere encontrar DLLs. Para MacOS, espere arquivos .DYLIB ; para Android, um arquivo JAR.
  • SourceCode Esta pasta contém arquivos de cabeçalho, arquivos de projeto e código-fonte para o aplicativo Simple Demo (tutorial), além do código-fonte de um aplicativo de exemplo mais elaborado que demonstra funcionalidades avançadas. O que você recebe depende do sistema operacional utilizado. O código-fonte para Linux está em C e Java. Para Windows, dependendo do SDK exato que você baixar, pode-se esperar código em C# ou C++. Para Android, é Java. Para iOS, você pode escolher entre Objective-C ou Swift.

As bibliotecas do SDK cuidam da conectividade do dispositivo de forma específica para cada plataforma (e para cada produto), para que você não precise se preocupar com detalhes de baixo nível de conexão com o leitor de cartão via RS-232, USB, Bluetooth ou entrada de áudio (no caso de dispositivos móveis). As bibliotecas tratam dos problemas de protocolo de comunicação específicos de cada produto e evitam que você tenha que lidar diretamente com comandos no nível de firmware. Assim, por exemplo, se você quisesse consultar o VP3300 para obter sua versão de firmware, normalmente, sem o SDK, você precisaria enviar um fluxo de bytes brutos correspondente à sequência hexadecimal 5669564f74656368320029000000dea0, pela porta serial, e aguardar uma resposta semelhante a:

Em seguida, você precisaria saber como verificar o CRC no final da resposta, extrair o payload de dados dos bytes de enquadramento, converter o payload em uma string ASCII, entre outros processos. Com o Universal SDK, basta chamar o método API device_getFirmwareVersion()e então inspecionar a string retornada. O SDK cuida dos detalhes mais complexos de marshaling e unmarshalling de dados, cálculo de CRCs, escrita e leitura de buffers de porta serial, etc.

O Universal SDK simplifica consideravelmente a realização de transações (seja por tarja magnética, EMV por contato ou sem contato), pois existem métodos convenientes para análise de dados TLV (e/ou dados MSR), interpretação de códigos de status e personalização dos comportamentos do dispositivo. O Universal SDK permite que você programe em um nível de abstração bastante elevado, sem precisar se preocupar com protocolos de dados, rotinas de análise, tabelas de consulta de códigos de erro e outros detalhes de baixo nível.

Há algo que o Universal SDK não fazer? Bem, ele nãocontém lógica de negócio: contémessa partefica a seu cargo. Eletambém não reconhece gateways ou processadores; os principais processadores de pagamento possuem seus próprios SDKs para acesso ao host de autorização online. Isso significa que vocêprecisará utilizar o SDK recomendado pelo seu gateway para realizar a autorização online (ou liquidação, etc.) no momento adequado.

É possível criar um aplicativo de pagamento (incluindo a integração com um leitor de cartão ID TECH) sem usando o Universal SDK? Na verdade, sim. E alguns doss clientes (que muitas vezes precisam integrar hardware de diversos fornecedores, mas não querem utilizar seis SDKs diferentes para isso) optam por esse caminho.

Mas lembre-se: isso significa que você precisará:

  1. Criar seu próprio código de conectividade (essencialmente um driver personalizado) para comunicação com o dispositivo via USB, COM, Bluetooth ou qualquer outra interface aplicável.
  2. Compreender os comandos de firmware necessários para controlar o dispositivo (ID TECH disponibiliza essas informações na documentação de seus diversos produtos)..
  3. Gerenciar o empacotamento e desempacotamento de dados e comandos, de acordo com os requisitos de protocolo do dispositivo (NGA, ITP, NEO 2 ou o que for aplicável).
  4. Realizar a análise dos dados por conta própria.
  5. Interpretar os códigos de status e de erro por conta própria.
  6. Realizar tudo isso de forma adaptada aos requisitos específicos de hardware e sistema operacional da plataforma que você está utilizando como alvo.

Há alguma vantagem optar pela rota sem SDK? Apenas isto: porque vocêestá lidando com bytes brutos, a comunicação direta com o dispositivo é basicamente independente de linguagem de programação. Não importa mais qual linguagem você usa, desde que seja possível se comunicar com a porta serial (ou porta USB, etc.) de forma nativa. Portanto , se você está acostumado a programar em Pascal, Go, Kotlin (ou em uma linguagem que não é suportada atualmente pelo SDK universal), ainda é possível realizar o trabalho, embora não com a mesma facilidade.

Qual é a melhor forma de começar a usar o SDK universal? É simples: downloade e leia a documentação! Acesse o link da Base de Conhecimento ou a .NET página do projeto acima e você poderá começar a programar ainda hoje. Enquanto isso, se você é novo no universo EMV, pode ser interessante começar dando uma olhada em nosso white paper sobre EMV Transactions with the Universal SDK, que apresenta um resumo sobre EMV (transações com cartão com chip), além de uma introdução ao próprio USDK.

Aplicações Residentes no Dispositivo

E quanto a hospedar um aplicativo de pagamento no próprio dispositivo? Isso é possível? Na verdade, para alguns dos dispositivos mais recentes da ID TECH(como os leitores de inserção VP5300 e o VP6800, entre outros), é sim possível hospedar seu aplicativo no próprio dispositivo. Será necessário ter familiaridade com o desenvolvimento de aplicativos embarcados para sistemas operacionais de tempo real (e/ou Linux), em ANSI C — mas sim, é possível. E sim, existe um conjunto especial de bibliotecas utilitárias residentes no dispositivo, conhecido como ADF (sigla para Application Development Framework), dedicado especificamente a viabilizar que seu aplicativo seja executado diretamente no dispositivo.

Tem dúvidas sobre o SDK Universal (ou sobre o ADF)? Fale com um de nossos especialistas internos. Entre em contato conosco em 1-800-984-1010. Ficaremos felizes em ouvir você!