ID TECH
全部技术文章

技术文章

ID TECH Universal SDK 入门指南

选择 ID TECH 制造的读卡器有诸多好处,其中之一是您可以通过一套统一的软件开发工具包(我们称之为 Universal SDK)快速、轻松地将设备集成到 POS 或支付应用环境中。

它之所以 "通用",是因为它在所有受支持的 ID TECH 产品中均提供统一的 API 产品,并且 无论在何种环境下,其工作方式都是一致的。

话虽如此,需要注意的是,ID TECH 的 Universal SDK 有多个版本,具体取决于您计划将设备部署到何种操作系统,以及您希望使用的特定编程语言。基于 C# 的(.NET 4.61、.NET Standard 2.0/2.1、.NET Core 3.1)Universal SDK 可在 Windows 上支持大多数 ID TECH 产品,但如果您需要使用三星手机来支持例如我们的某款蓝牙 VP3300 读卡器, 则有 一个基于 Java 的 Android 版本的 Universal SDK 可供使用。如果您需要集成到 Linux,我们提供 C++ 版本的 Universal SDK(同时也可选用 Java 版本)。我们的部分移动读卡器可与 iPad 或 iPhone 配合使用,因此当然也提供 iOS 版本的 Universal SDK(支持使用 Swift 或 Objective-C 进行编程)。是的,我们还支持 Raspberry Pi(提供 C 和 Java 版本)。

与一些竞争对手不同,ID TECH 的 SDK 完全免费,且无需加入"开发者计划"。事实上,您无需注册即可获取大多数开发工具(及文档)。您只需访问我们的 知识库,选择一个产品系列,然后进入相关的产品页面即可找到 SDK 链接。(例如,请查看 VP3300 产品页面。向下滚动至"SDKs"。)。此外,我们的 .NET SDK 通过 NuGet 分发,便于与 Visual Studio 集成。 项目页ge 对应我们的 .NET SDK 包含文档、示例以及其他有助于 实施 .NET 到您项目中的有用信息。

我们在 上提供的内容 Visual Studio .NET 项目页面?

  • 一个指向 NuGet.org 的链接,其中托管着 ID TECH .NET
  • 跨平台示例:在 Windows、Mac 或 Linux 上使用 SDK .NET Core 3.1
  • SDK API 文档,提供两种格式: HTMLPDF 格式
  • 使用 Xamarin 进行 iOS 和 Android 移动端开发的源代码示例
  • 我们的源代码 uDemo 软件,可通过 USB、 ID TECH 设备,包括 USB、 串口 和 IP 接口
  • 已编译的安装程序 uDemo 软件
  • 变更日志
  • 多种 .NET 用于驱动/配置的实用工具 ID TECH 设备

我们在 包含在 SDK 中 您从以下位置下载的软件包 知识 (非 .NET 版本)?解压 Zip 压缩包后,您将看到四个文件夹:

  • 演示 此文件夹包含已编译好的可执行文件,对应于以下文件夹中提供的示例代码项目: SourceCode 文件夹。其中有两个可执行文件:一个名为 Simple Demo,对应于文档中描述的最基础"入门"演示程序;另一个 是更为完善的应用程序,其外观和操作感(至少在 Windows SDK 中)与 UDemo 实用工具 所展示的 之前的文章.
  • 文档 SDK 文档提供两种格式:HTML 和 PDF。每种格式均包含详尽的 API 说明、使用示例、背景介绍、入门教程等内容。
  • SDK 您将在此找到在相关平台上运行应用程序所需的已编译库及其他资源。Windows 系统将提供 DLL 文件;MacOS 系统则 提供 .DYLIB 文件;Android 则提供 JAR 文件。
  • SourceCode 此文件夹包含头文件、项目文件以及 Simple Demo(教程)应用的源代码,另外还包含一个功能更丰富的示例应用源代码,用于展示更高级的功能。同样,具体获取的内容取决于您使用的操作系统。Linux 的源代码采用 C 和 Java 编写;Windows 的源代码则视您下载的具体 SDK 而定,可能是 C# 或 C++;Android 为 Java;iOS 则可选择 Objective-C 或 Swift。

SDK 库会针对各个平台(及各款产品)处理设备连接事宜,因此您无需关注通过 RS-232、USB、蓝牙或音频接口(就移动设备而言)连接读卡器的底层细节。这些库会处理产品特定的通信协议问题,使您不必直接处理固件级命令。举例来说,若您想查询 VP3300 的固件版本,通常情况下 在没有 SDK 时,您需要通过串口发送 对应于十六进制序列 5669564f74656368320029000000dea0 的原始字节流,然后等待类似如下的响应:

接下来,您还要会验证响应末尾的 CRC、从帧字节中解析出数据负载、将负载转换为 ASCII 字符串等等。而使用 Universal SDK,您只需调用 API 方法 device_getFirmwareVersion(),然后查看返回的字符串即可。SDK 会处理数据封送与解封送、计算 CRC、读写串口缓冲区等繁琐细节。

Universal SDK 极大地简化了交易处理(无论是磁条、接触式 EMV 还是非接触式),因为它提供了便捷方法来解析 TLV 数据(和/或 MSR 数据)、解读状态码以及自定义设备行为。Universal SDK 让您能够在相当高的抽象层面进行编码,使您不必再陷于数据协议、解析例程、错误代码查找表及其他底层细节之中。

那么 Universal SDK 有什么 做不到的 吗?它 并不 包含业务逻辑: 这部分需要您自行实现。它也不感知网关或处理商;各大支付处理商均有各自 专用的 SDK,用于访问在线授权主机。这意味着您需要在适当时机使用网关推荐的 SDK,以便完成在线授权(或清算等)操作。

是否可以使用 Universal SDK 构建支付应用(包括与 ID TECH 读卡器的集成)? 在没有 事实上是可以的。ID TECH 的部分客户(他们通常需要集成来自多个供应商的硬件,但不希望为此使用六种不同的 SDK)确实会选择这种方式。

但请记住,这意味着您需要:

  1. 自行编写连接代码(本质上是一种专用驱动程序),以便通过 USB、COM、蓝牙或其他适用方式与设备通信。
  2. 了解控制设备所需的固件命令(ID TECH 在其各类产品文档中提供了相关信息)。.
  3. 根据设备的协议要求(NGA、ITP、 NEO 2 或其他适用协议)处理数据和命令的封装与解封装。
  4. 自行处理数据解析。
  5. 自行解读状态码和错误代码。
  6. 以贴合目标平台特定硬件和操作系统要求的方式完成上述所有工作。

是否有任何 优势 选择不使用 SDK 这条路有什么好处?仅此一点: 因为 正在 处理原始字节,与设备的直接通信基本上是 与编程语言无关的。您使用哪种语言不再重要,只要能够以原生方式与串口(或 USB 端口等)通信即可。 因此 如果您习惯使用 Pascal、Go 或 Kotlin 编程(或目前 Universal SDK 不支持的语言),您仍然可以完成工作,尽管不会那么轻松。

上手 Universal SDK 的最佳方式是什么? 很简单: 载它并阅读文档!访问知识库链接 或访问 .NET 上方的项目页面 ,您今天下午就可以开始编码。与此同时,如果您是 EMV 新手,建议您先查看我们的白皮书: 《使用 Universal SDK 进行 EMV 交易》,其中除了对 USDK 进行入门介绍外,还回顾了 EMV(芯片卡交易)的相关内容。

设备驻留应用程序

将支付应用程序托管 在设备本身上呢? 这样做可行吗?实际上,对于 ID TECH 的某些较新设备(例如 VP5300 插卡式读卡器和 VP6800 等),将您的应用程序托管在设备本身上确实是可行的。您需要熟悉使用 ANSI C 为实时操作系统(和/或 Linux)编写嵌入式应用程序,但这是可以实现的,并且我们提供了一套专门的设备驻留便利库,称为 ADF(即 Application Development Framework,应用程序开发框架),专门用于让您的应用程序能够驻留在设备上。

对 Universal SDK(或 ADF)有疑问?请咨询我们的内部专家。请通过以下方式联系我们: 1-800-984-1010. 期待您的来信!