# 自定义应用的 POS 硬件：打印机、钱箱与扫码枪

> Published: 2026-10-27
> Updated: 2026-10-27
> Author: Mathias Nielsen
> Category: Hardware
> Canonical: https://finalpos.com/zh-Hans/blog/pos-hardware-for-custom-apps-zh-Hans

你用 AI 构建的 POS 在遇到小票打印机之前看起来都像成品。本文将准确说明每种 POS 硬件与自定义应用配合工作所需的技术条件、哪些需要 Apple 批准，以及如何避开最耗时的路径。

用于自定义应用的 POS 硬件，是大多数利用 AI 构建 POS 的项目卡壳的地方。结账界面在预览中看起来很完美，但小票打印机却毫无反应，钱箱打不开，读卡器也无法配对。这些都不是代码层面的问题。每种设备都有其特定的连接方式，而某些连接方式在允许你的应用使用之前，需要获得 Apple 和设备厂商的批准。

本指南将逐一讲解每种设备：它们的连接方式、在 iOS 和 Android 上的需求，以及哪些选择能帮你节省数周时间。简而言之：在挑选打印机之前，先确定你的连接类型。

![自定义应用的 POS 硬件：柜台上的小票打印机、钱箱、条形码扫码枪和平板电脑 POS](https://storage.googleapis.com/final-os-media/media/43399b6a-0d29-48b6-84dd-88ef01fcb193/generated/fbe670be1a7d73ed-pos-hardware-for-custom-apps-hero.png)

## 为什么硬件是 AI 构建 POS 应用最容易卡壳的地方？

因为 AI 可以根据打印机 SDK 编写代码，但它无法为你的应用授予使用打印机的权限。有三件事会在柜台上阻碍 Vibe Coding 出来的 POS：

- **平台规则。** iOS 只允许应用与通过 Apple MFi 计划批准该应用使用的经典蓝牙和 Lightning/USB 配件进行通信。
- **浏览器。** Safari 不支持 Web Bluetooth，因此 iPad 上的 Web POS 根本无法连接蓝牙硬件。
- **测试。** 每台打印机、钱箱和读卡器的表现都有细微差异，只有在真实设备上测试才能发现。

如果你打算从零构建，我们关于[如何利用 AI 构建你自己的 POS 系统](/en-US/blog/build-your-own-pos-system-with-ai)的专题文章也涵盖了支付和部署方面的障碍。本页主要介绍所有外接设备。

## iOS 上的每种小票打印机连接需要什么？

决定你审批负担的是连接类型，而非品牌。以下是 iPad 或 iPhone POS 的完整框架：

| 连接类型 | iOS 上的 MFi 应用认证 | 是否支持浏览器 | 最适合场景 |
| --- | --- | --- | --- |
| 经典蓝牙 | 是，需通过打印机厂商 | 否 | 打印机已获得 MFi 认证的移动打印 |
| 低功耗蓝牙 (BLE) | 否 | 否（Safari 无 Web Bluetooth） | 无需 MFi 步骤的移动打印 |
| 网络（以太网或 Wi-Fi） | 否 | 是（需支持 WebPRNT 或 ePOS-Print 的型号） | 固定柜台、多个工作站共用一台打印机 |
| Lightning 或 USB | 是 | 否 | 使用支持型号的单工作站柜台 |

在 Android 上，这些都不需要 Apple 的批准；你只需使用打印机厂商的 Android SDK 和 Android 的蓝牙权限。按门店类型划分的完整对比，请参阅 [蓝牙、BLE 还是网络：为 iPad POS 选择小票打印机](/en-US/blog/bluetooth-vs-network-receipt-printer)。

## 打印机的 MFi 应用认证流程如何工作？

MFi 应用认证是 Apple 针对你特定应用发起的许可，允许其通过经典蓝牙或 Lightning/USB 与特定配件通信。你无需自己向 Apple 提交申请，打印机厂商会替你办理：

1. 下载打印机厂商的 iOS SDK 并注册 Apple 开发者计划。
2. 使用厂商为该打印机指定的协议名称构建你的应用。
3. 通过厂商的注册表单提交你的应用信息。
4. 厂商将你的应用提交给 Apple 的 MFi 计划。
5. Apple 审核通过后，厂商会发给你一个 MFi 产品计划 ID（PPID）。
6. 将你的应用提交到 App Store，并在 App Review 备注中填入 PPID。

Star Micronics 对此流程有明确文档说明，并指出审核可能需要一到两周（[Star 的 MFi 流程](https://star-m.jp/eng/products/s_print/apple_app_mfi.html)）。Epson 对其支持蓝牙或 Lightning-to-USB 的 MFi 打印机也采用相同模式，而 Zebra 将其称为加白名单。有两点容易让人踩坑：PPID 与你注册的打印机型号绑定，因此添加新型号可能意味着要重新跑一遍流程；此外，如果忘记在审核备注中填入 PPID，应用会被直接拒绝。

深度探讨：[从 iPad 应用打印小票是否需要 MFi 认证](/en-US/blog/mfi-printer-app-approval)、[如何将 Star Micronics 打印机连接到你自己的 POS 应用](/en-US/blog/star-micronics-printer-custom-app)、[如何从自定义 POS 打印到 Epson TM 打印机](/en-US/blog/epson-epos-sdk-custom-pos) 以及 [如何从 iOS 应用打印到 Zebra 标签打印机](/en-US/blog/zebra-label-printer-ios-app)。

## 基于 Web 的 POS 能否打印小票？

可以，但只能通过网络进行。iPad 上的浏览器无法连接蓝牙打印机，而标准的浏览器打印对话框完全不适合收银台：它会弹出提示选项、选错纸张尺寸，还会拉低每一笔交易的速度。

可行的方案是使用能接收网页打印任务的网络打印机。Star 的 WebPRNT 和 Epson 的 ePOS-Print 是两种常见选择：你的 Web 应用直接将小票发送到打印机的 IP 地址。权衡之处在于：每个门店都需要配置网络，且断网时无法打印。完整指南：[如何在没有蓝牙的情况下从 Web 应用打印小票](/en-US/blog/print-receipt-from-web-app)。

## 自定义 POS 如何打开钱箱？

在大多数设置中，都是通过打印机来触发的。标准的 POS 钱箱使用 RJ11 或 RJ12 线缆连接到小票打印机的钱箱驱动接口。你的应用向打印机发送“开钱箱”指令，打印机再发出一个短促的电脉冲来解锁钱箱。

这对你的构建意味着两件事：只有在打印功能正常后钱箱才能正常工作；如果基于浏览器的 POS 能打印到连接了钱箱的网络打印机，它就能打开钱箱。USB 和网络直接连接的钱箱虽然存在，但不太常见。请记录每一次开钱箱操作，尤其是无交易开箱，因为现金对账依赖于此。详见 [钱箱如何打开：驱动指令与自定义 POS 应用](/en-US/blog/cash-drawer-kick-custom-pos)。

## 条形码扫码枪需要 SDK 吗？

通常不需要。大多数扫码枪出厂默认使用键盘（HID）模式：每次扫描就像有人手动输入条形码并按下了回车键一样。这种方式适用于任何原生应用和网页，因此扫码枪是最好支持的外设。

不过仍有两个细节需要注意。你的应用必须在没有聚焦任何文本框的情况下也能接收扫描数据，并且能够区分极速扫描与人工打字。SDK 模式则增加了配置、电量状态和更丰富的数据，另外手机摄像头在扫码量不大时也可以充当扫码器。指南：[自定义 POS 应用中的条形码扫码枪：HID 模式与 SDK 对比](/en-US/blog/barcode-scanner-pos-app)。

## 厨房显示屏、客显屏和标签打印机该如何处理？

这些正是自定义结账系统展现其价值的地方，各自有不同的形态：

- **厨房显示系统（KDS）** 替代打印小票。展示屏幕很简单；但可靠地实时路由到各个档口、划单与撤销以及离线表现才是难点。请参阅 [你是否应该自建厨房显示系统](/en-US/blog/build-kitchen-display-system)。
- **面向客户的显示屏（客显屏）** 展示购物车、总额和小费提示。核心工作在于保持两块屏幕之间的购物车状态同步。请参阅 [自定义 POS 应用的客显屏](/en-US/blog/customer-facing-display-pos)。
- **标签打印机** 用于打印货架标签、价格标签和订单标签。在 iOS 上，经典蓝牙标签打印机遵循与小票打印机相同的 MFi 模式，这就是为什么 Zebra 在将你的应用加入白名单之前会向你索取 Bundle ID 和协议字符串。

在任何设备上线之前，请在你要发货使用的具体设备上运行 [POS 硬件测试核对清单](/en-US/blog/pos-hardware-testing-checklist)。

## 自建项目应该从哪些 POS 硬件入手？

如果你是从零构建，请选择能减少审批步骤的硬件：

| 需求 | 阻力最小的选择 | 选型原因 |
| --- | --- | --- |
| 小票打印机（固定柜台） | 支持 Web 打印的网络打印机 | 无需 MFi 步骤，可多台共享，支持浏览器打印 |
| 小票打印机（移动端） | 低功耗蓝牙（BLE）型号 | iOS 上无需 MFi 步骤 |
| 钱箱 | 打印机驱动型钱箱 | 无需额外支持其他连接方式 |
| 扫码枪 | 键盘（HID）模式扫码枪 | 零代码，随处可用 |
| 刷卡支付 | 支付提供商认证的读卡器或 Tap to Pay | 只有经过认证的硬件才能接收刷卡 |

读卡器属于特殊分类，因为只有经过你支付提供商认证的读卡器才能处理刷卡。我们关于[如何在自定义 POS 应用中接收刷卡支付](/en-US/blog/accept-card-payments-custom-pos-app)的专题文章涵盖了读卡器、Tap to Pay 和智能终端。

## 你能否完全跳过硬件 SDK？

可以，前提是你的结账流程运行在已经完成了集成工作的平台上。这就是 Final 的工作原理。你的 AI 在 Flow Studio 中构建结账流程，而运行该流程的工作站会负责搞定硬件：

- **Native Station** 在 Apple 和 Android 设备上运行 Final POS 应用，并连接读卡器、Tap to Pay、小票打印机和钱箱。请参阅 [如何设置 Native Station](/help/set-up-a-native-station)。
- **Virtual Station** 可以在任何浏览器中运行，适合不需要本地硬件的屏幕。两者的差异在 [Native Station 与 Virtual Station 的对比](/help/native-vs-virtual-station) 中有详细说明。
- **多台打印机** 可以按标签进行路由，例如柜台打印机和厨房打印机。请参阅 [工作站上的多打印机路由](/help/how-to-set-up-multi-printer-routing-on-a-station)。

你的结账界面只需发出打印或开钱箱请求，工作站会处理其余所有事情。坦诚地说，折中之处在于：你必须使用 Final 支持的硬件，而不是市面上的任意设备，且硬件按公示价格购买，详情见 [Final POS 的计费方式](/help/how-final-pos-pricing-works)。对大多数门店而言，该支持清单已完全覆盖收银柜台的需求。如果你打算完全自建整个 POS，请从 [利用 AI 构建你自己的 POS 系统](/en-US/blog/build-your-own-pos-system-with-ai) 开始。

## FAQ

**Q: 自定义 POS 需要哪些硬件？**
A: 至少需要一台运行该应用的设备、一台小票打印机以及一种刷卡收款方式。大多数门店还会添加钱箱和条形码扫码枪，而餐厅通常还会添加厨房显示屏或客显屏。

**Q: iPad 应用连接所有小票打印机都需要 MFi 认证吗？**
A: 不需要。在 iOS 上，只有通过经典蓝牙或 Lightning/USB 连接的打印机才需要 MFi 应用认证。低功耗蓝牙（BLE）打印机和网络（以太网或 Wi-Fi）打印机则不需要。

**Q: 我该如何为打印机获取 MFi 认证？**
A: 你需将应用详情提交给打印机厂商（如 Star Micronics、Epson 或 Zebra）。由他们提交给 Apple 的 MFi 计划，并向你提供一个 PPID，你在提交应用时需将该 PPID 填入 App Review 备注中。

**Q: 如何从我的应用中打开钱箱？**
A: 大多数钱箱都连接到小票打印机的钱箱驱动接口。你的应用向打印机发送“开钱箱”指令，打印机发出脉冲信号将钱箱弹开。

**Q: 条形码扫码枪需要 SDK 吗？**
A: 在键盘（HID）模式下不需要，此时每次扫描的数据都会像手动输入的文本一样输入到任何应用或网页中。SDK 可以提供配置功能和更丰富的数据，但对大多数门店来说是可选的。

**Q: 基于 Web 的 POS 能否打印小票？**
A: 可以，前提是打印到接受 Web 打印任务的网络打印机（如 Star WebPRNT 或 Epson ePOS-Print 型号）。iPad 上的 Safari 不支持 Web Bluetooth，因此浏览器无法连接蓝牙打印机。