Technischer Beitrag
Einstieg in das Universal SDK von ID TECH
Einer der großen Vorteile eines Kartenlesers von ID TECH ist, dass die Integration des Geräts in eine POS- oder Zahlungs-App-Umgebung schnell und unkompliziert über ein einziges Software Development Kit erfolgen kann – unser sogenanntes Universal SDK.
Es ist „universal" in dem Sinne, dass es ein einheitliches API für alle unterstützten ID TECH Produkte bereitstellt und unabhängig von der jeweiligen Umgebung auf dieselbe Weise funktioniert.
Dennoch ist es wichtig zu wissen, dass das Universal SDK von ID TECH in verschiedenen Varianten verfügbar ist – je nach Betriebssystem, in dem das Gerät eingesetzt werden soll, und der gewünschten Programmiersprache. Ein auf C# basierendes (.NET 4.61, .NET Standard 2.0/2.1, .NET Core 3.1) Universal SDK steht für die meisten ID TECH Produkte unter Windows zur Verfügung. Wenn Sie hingegen beispielsweise einen unserer Bluetooth-fähigen VP3300 Lesegeräte mit einem Samsung-Smartphone nutzen möchten, gibt es eine Java-basierte Android-Version des Universal SDK. Für die Integration unter Linux steht ein C++-basiertes Universal SDK bereit (optional auch in einer Java-Version). Da einige unserer mobilen Lesegeräte mit iPads oder iPhones kompatibel sind, ist selbstverständlich auch ein iOS Universal SDK erhältlich – mit dem Sie in Swift oder Objective-C programmieren können. Darüber hinaus unterstützen wir Raspberry Pi (mit C und Java).
Anders als einige unserer Mitbewerber stellt ID TECH seine SDKs kostenlos zur Verfügung und setzt keine Teilnahme an einem „Entwicklerprogramm" voraus. Die meisten Entwicklerwerkzeuge und die zugehörige Dokumentation sind sogar ohne vorherige Registrierung zugänglich. Besuchen Sie einfach unsere Wissensdatenbank, wählen Sie eine Produktfamilie aus und navigieren Sie zur entsprechenden Produktseite, um SDK-Links zu finden. (Schauen Sie sich zum Beispiel die VP3300-Produktseite an. Scrollen Sie nach unten zu „SDKs."). Darüber hinaus wird unser .NET SDK über NuGet verteilt, um die Integration mit Visual Studio zu erleichtern. Das Projekt page für unser .NET SDK enthält Dokumentation, Beispiele und weitere nützliche Informationen zur Implementierung von .NET in Ihren Projekten.
Was auf unserer Visual Studio .NET Projektseite verfügbar ist?
- Ein Link zu NuGet.org, das die ID TECH .NET Bibliotheken bereitstellt
- Plattformübergreifende Beispiele zur Nutzung des SDK unter Windows, Mac oder Linux mit .NET Core 3.1
- SDK API-Dokumentation, sowohl im HTML und PDF Format
- Quellcode-Beispiel zur Nutzung von Xamarin für die mobile Entwicklung mit iOS und Android
- Quellcode unserer uDemo Software, die alle ID TECH Geräte über USB, Seriell und IP steuert
- Kompiliertes Installationsprogramm unserer uDemo Software
- Änderungsprotokoll
- Verschiedene .NET basierte Dienstprogramme zur Steuerung/Konfiguration von ID TECH Geräten
Was im SDK Ihr Download-Paket von Knowldege Base (Nicht- .NET Versionen)? Wenn Sie das ZIP-Archiv entpacken, finden Sie vier Ordner:
- Demo — Dieser Ordner enthält bereits erstellte ausführbare Dateien, die den im SourceCode -Ordner bereitgestellten Beispielprojekten entsprechen. Es gibt zwei ausführbare Dateien: eine (namens Simple Demo), die die grundlegende „Tutorial"-Demo-App darstellt, wie sie in der Dokumentation beschrieben wird, sowie eine zweite, umfangreichere App, die (zumindest im Fall des Windows-SDK) in Erscheinungsbild und Bedienung der UDemo Dienstprogramm enthalten in einem früheren Beitrag.
- Docs — Die SDK-Dokumentation ist in zwei Formaten verfügbar: HTML und PDF. Beide enthalten eine ausführliche Beschreibung der APIs, Verwendungsbeispiele, Hintergrundinformationen, eine Schritt-für-Schritt-Anleitung und vieles mehr.
- SDK — Hier finden Sie’die kompilierten Bibliotheken und weitere Ressourcen, die für den Betrieb einer Anwendung auf der jeweiligen Plattform erforderlich sind. Für Windows-Rechner sind DLLs zu erwarten. Für MacOS sind .DYLIB -Dateien vorgesehen; für Android eine JAR-Datei.
- SourceCode — Dieser Ordner enthält Header-Dateien, Projektdateien und Quellcode für die Simple Demo (Tutorial)-App sowie Quellcode für eine umfangreichere Beispielanwendung, die erweiterte Funktionen demonstriert. Der genaue Inhalt richtet sich nach dem verwendeten Betriebssystem. Der Quellcode für Linux ist in C und Java verfügbar. Für Windows kann je nach heruntergeladenem SDK C#- oder C++-Code erwartet werden. Für Android wird Java verwendet. Für iOS steht Objective-C oder Swift zur Auswahl.
Die SDK-Bibliotheken übernehmen die Gerätekonnektivität plattform- und produktspezifisch, sodass Sie sich nicht um die technischen Details der Verbindung zum Kartenlesegerät über RS-232, USB, Bluetooth oder Klinkenanschluss (bei Mobilgeräten) kümmern müssen. Die Bibliotheken bewältigen produktspezifische Kommunikationsprotokolle und schützen Sie davor, direkt mit Befehlen auf Firmware-Ebene arbeiten zu müssen. Wenn Sie beispielsweise die Firmware-Version Ihres VP3300 abfragen möchten, müssten Sie normalerweise ohne das SDK einen rohen Byte-Stream senden, der der Hex-Sequenz 5669564f74656368320029000000dea0 entspricht, über den seriellen Port, und auf eine Antwort in etwa dieser Form warten:
Anschließend müssten Sie die CRC am Ende der Antwort verifizieren, die Nutzdaten aus den Framing-Bytes herausparsen, die Nutzdaten in einen ASCII-String konvertieren und vieles mehr. Mit dem Universal SDK genügt es, die API-Methode device_getFirmwareVersion()aufzurufen und anschließend den zurückgegebenen String auszuwerten. Das SDK übernimmt die aufwendigen Details des Marshaling und Unmarshaling von Daten, die CRC-Berechnung sowie das Schreiben und Lesen von Seriell-Port-Puffern.
Das Universal SDK vereinfacht die Durchführung von Transaktionen (ob Magstripe, Kontakt-EMV oder kontaktlos) erheblich, da praktische Hilfsmethoden für das Parsen von TLV-Daten (und/oder MSR-Daten), die Interpretation von Statuscodes und die Anpassung des Geräteverhaltens bereitstehen. Das Universal SDK ermöglicht es Ihnen, auf einem relativ hohen Abstraktionsniveau zu entwickeln, ohne sich selbst mit Datenprotokollen, Parse-Routinen, Fehlercode-Nachschlagetabellen und anderen technischen Details auf niedriger Ebene befassen zu müssen.
Gibt es etwas, das das Universal SDK nicht tun? Nun, es enthält’keine Geschäftslogik: keineDieser Teil’liegt bei Ihnen. Es ist auch weder gateway- noch prozessorbewusst; die großen Zahlungsabwickler verfügen alle über ihre’eigenen SDKs für den Zugriff auf den Online-Autorisierungshost. Das bedeutet, Sie müssen das von Ihrem Gateway empfohlene SDK verwenden, um zum geeigneten Zeitpunkt online für die Autorisierung (oder Abrechnung usw.) zu gehen.’Ist es möglich, eine Zahlungsanwendung (einschließlich der Integration mit einem ID TECH Kartenlesegerät)
mithilfe des Universal SDK zu entwickeln? Das ist tatsächlich möglich. Und einige von ID TECH ohne s’s Kunden (die häufig Hardware von verschiedenen Anbietern integrieren müssen, aber nicht sechs verschiedene SDKs dafür verwenden möchten) diesen Weg tatsächlich gehen.
Bedenken Sie jedoch, dass Sie dabei Folgendes benötigen:
- Eigenen Verbindungscode (im Wesentlichen einen eigenen Treiber) für die Kommunikation mit dem Gerät über USB, COM, Bluetooth oder eine andere verfügbare Schnittstelle erstellen.
- Die Firmware-Befehle verstehen, die zur Steuerung des Geräts erforderlich sind (ID TECH stellt diese Informationen in der Dokumentation zu den verschiedenen Produkten bereit)..
- Das Verpacken und Entpacken von Daten und Befehlen gemäß den Protokollanforderungen des Geräts übernehmen (NGA, ITP, NEO 2 oder was auch immer zutreffend ist).
- Das Parsen der Daten selbst durchführen.
- Status- und Fehlercodes selbst interpretieren.
- All dies auf eine Weise umsetzen, die auf die spezifischen Hardware- und Betriebssystemanforderungen der Zielplattform abgestimmt ist.
Gibt es einen Vorteil beim Verzicht auf ein SDK? Nur Folgendes: weil Sie’es mit rohen Bytes arbeiten, ist die direkte Kommunikation mit dem Gerät im Grunde programmiersprachen-unabhängig. Es spielt keine Rolle mehr, welche Sprache Sie verwenden, solange Sie nativ mit dem seriellen Anschluss (oder USB-Anschluss usw.) kommunizieren können. Wenn Sie also gewohnt sind, in Pascal, Go oder Kotlin zu programmieren – oder in einer Sprache, die vom Universal SDK derzeit nicht unterstützt wird –, können Sie die Aufgabe dennoch bewältigen, wenn auch nicht ganz so komfortabel.
Wie gelingt der beste Einstieg in das Universal SDK? Ganz einfach: downloaden Sie es und lesen Sie die Dokumentation! Besuchen Sie den Link zur Wissensdatenbank oder die .NET Projektseite oben, und Sie können noch heute Nachmittag mit der Programmierung beginnen. Falls Sie neu bei EMV sind, empfehlen wir Ihnen, zunächst einen Blick in unser Whitepaper zu werfen: EMV Transactions with the Universal SDK. Dieses gibt einen Überblick über EMV (Chip-Kartentransaktionen) und bietet zugleich eine Einführung in das USDK selbst.
Geräteseitige Anwendungen
Was ist mit dem Hosten einer Zahlungs-App auf dem Gerät selbst? Ist das möglich? Tatsächlich ist es bei einigen der neueren Geräte von ID TECH’(z. B. VP5300 Insert-Lesern und dem VP6800, unter anderem) tatsächlich möglich, Ihre App direkt auf dem Gerät selbst zu hosten. Sie müssen mit der Entwicklung eingebetteter Apps für Echtzeit-Betriebssysteme (und/oder Linux) in ANSI C vertraut sein – aber ja, es ist möglich. Und ja, es gibt einen speziellen geräteseitigen Satz an Hilfsbibliotheken, bekannt als ADF (kurz für Application Development Framework), der speziell dafür entwickelt wurde, es Ihrer App zu ermöglichen, auf dem Gerät zu residieren.
Haben Sie Fragen zum Universal SDK (oder zum ADF)? Sprechen Sie mit einem unserer internen Experten. Kontaktieren Sie uns unter 1-800-984-1010. Wir freuen uns, von Ihnen zu hören!
