ID TECH
Contato
Todos os posts técnicos

Post Técnico

Introdução ao Universal SDK da ID TECH

Uma das 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 descomplicada por meio de um único Kit de Desenvolvimento de Software, que chamamos de Universal SDK.

Ele é "universal" no sentido de que expõe 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 tipo de sistema operacional no qual você pretende implantar o dispositivo e da linguagem de programação específica 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 oferecer suporte à maioria dos ID TECH Products no Windows. No entanto, se você precisar, por exemplo, de suporte a um de nossos leitores Bluetooth VP3300 usando um telefone Samsung, uma versão Android baseada em Java do Universal SDK para isso. Se você precisar integrar ao Linux, temos um Universal SDK em C++ para essa finalidade (com uma versão opcional em Java também). Alguns de nossos leitores móveis funcionam com iPads ou iPhones, portanto, naturalmente, há 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 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 nem mesmo se registrar para obter acesso. Tudo o que você precisa fazer é acessar nosso Base de Conhecimento, selecionar uma família de produtos e navegar até a Página do Produto correspondente para encontrar os links do SDK. (Por exemplo, confira a VP3300 Página do Produto. Role a página 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 nosso .NET SDK contém documentação, exemplos e outras informações úteis sobre a implementação do .NET em seus projetos.

O que há disponível em nosso Visual Studio .NET Página do Projeto?

  • 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 iOS e Android
  • Código-fonte do nosso software uDemo que opera todos os dispositivos ID TECH via USB, Serial e IP
  • Instalador compilado do nosso software uDemo software
  • Registro de alterações
  • Diversos utilitários baseados em .NET para operar/configurar ID TECH dispositivos

O que há 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 básico de "tutorial" descrito na documentação, e um segundo aplicativo, mais elaborado, que (pelo menos no caso do SDK para Windows) tem uma aparência e comportamento semelhantes ao UDemo utilitário apresentado em uma postagem 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 básicas, um tutorial passo a passo e muito mais.
  • SDK Aqui vocêencontrará as bibliotecas compiladas e outros recursos necessários para executar um aplicativo na plataforma em questão. Para máquinas Windows, espere encontrar DLLs. Para MacOS, espere arquivos .DYLIB arquivos; para Android, um arquivo JAR.
  • SourceCode Esta pasta contém arquivos de cabeçalho, arquivos de projeto e código-fonte do aplicativo Simple Demo (tutorial), além do código-fonte de um aplicativo de exemplo mais elaborado, que demonstra funcionalidades avançadas. O conteúdo disponível varia conforme o sistema operacional utilizado. O código-fonte para Linux está em C e Java. Para Windows, dependendo da versão exata do SDK baixado, você encontrará código em C# ou C++. Para Android, o código é em Java. Para iOS, você pode escolher entre Objective-C ou Swift.

As bibliotecas do SDK gerenciam a conectividade dos dispositivos de forma específica para cada plataforma (e produto), dispensando a necessidade de lidar com os detalhes de baixo nível da conexão ao leitor de cartão via RS-232, USB, Bluetooth ou entrada de áudio (no caso de dispositivos móveis). As bibliotecas tratam das questões de protocolo de comunicação específicas de cada produto e protegem o desenvolvedor de ter que trabalhar diretamente com comandos em nível de firmware. Assim, por exemplo, caso você queira consultar a versão de firmware do seu VP3300, normalmente, sem o SDK, seria necessário enviar um fluxo bruto de bytes correspondente à sequência hexadecimal 5669564f74656368320029000000dea0 pela porta serial e aguardar uma resposta semelhante a:

Em seguida, seria preciso 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 outras operações. Com o Universal SDK, basta chamar o método API device_getFirmwareVersion()e então inspecionar a string retornada. O SDK cuida de todos os detalhes complexos de serialização e desserialização de dados, cálculo de CRCs, escrita e leitura de buffers de porta serial, entre outros.

O Universal SDK simplifica consideravelmente a realização de transações (seja por MagStripe, EMV por contato ou sem contato), pois disponibiliza métodos convenientes para análise de dados TLV (e/ou dados MSR), interpretação de códigos de status e personalização do comportamento do dispositivo. O Universal SDK permite codificar em um nível de abstração relativamente alto, evitando que o desenvolvedor se perca em protocolos de dados, rotinas de análise, tabelas de consulta de códigos de erro e outros detalhes de baixo nível.

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

É possível desenvolver 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 clientes da ID TECH(que frequentemente 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 (a 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 o processamento e a interpretação dos dados por conta própria.
  5. Interpretar os códigos de status e de erro por conta própria.
  6. Fazer tudo isso de forma adaptada aos requisitos específicos de hardware e sistema operacional da plataforma que você está desenvolvendo.

Existe alguma vantagem em optar pela rota sem SDK? Apenas esta: como 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ê utiliza, 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 seja tão simples.

Qual é a melhor forma de começar a usar o SDK Universal? Essa é fácil: baixe 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, recomendamos começar com nosso white paper sobre Transações EMV com o SDK Universal, 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), é de fato possível hospedar seu aplicativo no próprio dispositivo. Será necessário ter familiaridade com o desenvolvimento de aplicativos embarcados para sistemas operacionais em tempo real (e/ou Linux), em ANSI C, mas sim, é possível — e há um conjunto especial de bibliotecas de conveniência residentes no dispositivo, conhecido como ADF (sigla para Application Development Framework), dedicado especificamente a viabilizar que seu aplicativo resida no dispositivo.

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