@capgo/capacitor-stripe-terminal

中文文档
8.0.9发布于 2026/10/15MPL-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 2.1万

Frede终端当面付款的电容插件.

中文使用文档
文档目录61 节
  1. *免费开始*
  2. 主要特点
  3. 为什么这个插件
  4. 文档
  5. 兼容性
  6. 安装
  7. 平台设置
  8. 网页
  9. iOS系统
  10. 机器人
  11. 使用量
  12. 简单收款
  13. 听觉设备更新
  14. 获取终端处理信息
  15. 领导人屏幕上的更多细节
  16. 模拟用于测试的读取器状态变化
  17. API 密码
  18. 初始化(...)
  19. 发现读取器(...)
  20. 设置连接托肯(...)
  21. 设置模拟器
  22. 连接Reader(...)
  23. 获取连接阅读器( C)
  24. 断开读取器 ()
  25. 取消发现阅读器( )
  26. 收集付费方法(...)
  27. 取消拼图支付方法( )
  28. 确认付款意向( )
  29. 安装 Avail可更新日期( )
  30. 取消安装更新日期( C)
  31. 设置 ReaderDisplay (...)
  32. 清除读取器Display ()
  33. 重新启动 Reader ()
  34. 取消 Reader 重新连接( C)
  35. 设置 TapTopPayUx 配置(...)
  36. 添加倾听器( Terminal EventsEnum) 。 已装入,... )
  37. 添加倾听器( Terminal EventsEnum. requested Connection Token,...)
  38. 添加倾听器( Terminal EventsEnum) 。 (发现读者,. )
  39. 添加倾听器( Terminal Events Enum. Connected Reader,...)
  40. 添加倾听器( Terminal EventsEnum) 。 断开连接读取器,... )
  41. 添加倾听器( Terminal Events Enum. Connection statusChange,...)
  42. 添加收听器( Terminal Events Enum. Unexpected Reader Disconnect,.…
  43. 添加倾听器( Terminal Events Enum. confirmed Payment Intent,...)
  44. 添加倾听器( Terminal Events Enum. Collected Payment Intent,...)
  45. 添加倾听器( Terminal EventsEnum) 。 已取消,(...)
  46. 添加倾听器( Terminal EventsEnum) 。 失败,... )
  47. 添加倾听器( Terminal EventsEnum. Report Available Update,...)
  48. 添加倾听器( Terminal EventsEnum. StartInstalling Update,...)
  49. 添加收听器( Terminal Events Enum. ReaderSoftware Update producti…
  50. 添加倾听器( Terminal EventsEnum) 。 Finish Installed Update,...) …
  51. 添加倾听器( Terminal EventsEnum) 。 电池级,... )
  52. 添加倾听器( Terminal EventsEnum. ReaderEvent,...)
  53. 添加倾听器( Terminal EventsEnum. Request DisplayMessage,...)
  54. 添加倾听器( Terminal EventsEnum. Reader Input,...)
  55. 添加倾听器( Terminal Events Enum. Payment Status Change,...)
  56. 添加倾听器( Terminal Events Enum. Reader Reconnect Started,...)
  57. 添加倾听器( Terminal Events Enum. Reader Reconnect Successed,...)
  58. 添加收听器( Terminal Events Enum. Reader Reconnection 失败,...)
  59. 接口
  60. 类型异名
  61. 数字

@ capgo/ 电容器- 断层

接受在您的 Capacitor app 中亲自支付, 并使用 Frede 终端 : Tap to Pay 在电话中, 加上 Bluetooth, USB 和 Internet 卡片阅读器在 iOS 和 Android 上.

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-stripe-terminal 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/capor-strip-terminal 到我的Capacitor app 并把它接上 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-stripe-terminal for Capacitor apps

主要特点

  • 设置数字 : initialize() 连接符号终点或 setConnectionToken()。 。 。 .
  • 读者数字 : discoverReaders(), (中文(简体) ), connectReader(), (中文(简体) ), getConnectedReader() 财务报告和审定财务报表 disconnectReader()。 。 。 .
  • 付款数字 : collectPaymentMethod(), (中文(简体) ), confirmPaymentIntent() 财务报告和审定财务报表 cancelCollectPaymentMethod()。 。 。 .
  • 阅读器显示和更新数字 : setReaderDisplay() 显示一车,加 installAvailableUpdate() 用于阅读软件.
  • 测试数字 : setSimulatorConfiguration() 用于模拟阅读器和卡片.
  • 磁带到Android上的 UX数字 : setTapToPayUxConfiguration() 自定义磁带到付费屏幕 .
  • 平台:iOS,Android和Web. Web使用Frede Terminal JS并仅支持互联网阅读器.

为什么这个插件

此插件是维护的叉 @ mictor- community/ stripe( 社区)Capgo将社区项目分成焦点包,每个包都有自己的docs,例应用和CI.

我们追踪开放问题,把请求拉入社区存储库, 将相关修正合并到我们的重置中, 并把它们运入目前的花纹SDK。 我们的目标是当虫子降落或平台改变时,比社区维护者更具反应性.

这个包覆盖 条纹终端Tap to Pay, Bluetooth, USB, 和互联网读者.

如果您今天使用社区软件包,这是从社区软件包中维护的升级路径.

文档

这里有最完整的文件: https://capgo.app/docs/plugins/stripe-terminal/ 互联网档案馆的存檔,存档日期2013-12-21

兼容性

插件版本电容兼容性维护
v八.。 。 。 .v八.。 。 。 .✅
v.。 。 。 .v.。 。 。 .应要求

说明: 此插件的主要版本沿用了Capacitor的主要版本. 使用匹配您的 Capacitor 安装的版本( 如 Capacitor 8 的插件 v8) 。 只有最新的主要版本得到积极维护.

安装

您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

然后使用下列提示:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-stripe-terminal` plugin in my project.

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

# Install (choose one)
npm install @capgo/capacitor-stripe-terminal
pnpm add @capgo/capacitor-stripe-terminal
yarn add @capgo/capacitor-stripe-terminal
bun add @capgo/capacitor-stripe-terminal

# Then sync Capacitor (choose one)
npx cap sync
pnpm exec cap sync
yarn cap sync
bunx cap sync

平台设置

我们已经证实,它在示范项目中效果良好。 参见:

网页

没有必要采取额外步骤.

iOS系统

没有必要采取额外步骤.

机器人

添加权限到您的 android/app/src/main/AndroidManifest.xml 文件 :

+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
+ <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
+ <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
+ <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
+ <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

将 minSdkVersion 更新到您的 26 android/app/build.gradle 文件 :

  ext {
-    minSdkVersion = 23
+    minSdkVersion = 26

如果您正在为 Strade Android 设备开发应用程序( 如 Strade Reader S700), 请遵循 Strade 为客户端设置的文档 .

使用量

简单收款

使用插件客户端

(async ()=> {
  /**
   * tokenProviderEndpoint: The URL of your backend to provide a token. Use Post request to get a token.
   */
  await StripeTerminal.initialize({ tokenProviderEndpoint: 'https://example.com/token', isTest: true })
  const { readers } = await StripeTerminal.discoverReaders({
    type: TerminalConnectTypes.TapToPay,
    locationId: "**************",
  });
  await StripeTerminal.connectReader({
    reader: readers[0],
  });
  // Collect payment intent
  await StripeTerminal.collectPaymentMethod({ paymentIntent: "**************" });
  // Process and confirm payment intent
  await StripeTerminal.confirmPaymentIntent();
  // disconnect reader
  await StripeTerminal.disconnectReader();
});

设置字符串符号

(async ()=> {
  // run before StripeTerminal.initialize
  StripeTerminal.addListener(TerminalEventsEnum.RequestedConnectionToken, async () => {
    const { token } = (await fetch("https://example.com/token")).json();
    StripeTerminal.setConnectionToken({ token });
  });
});
(async ()=> {
  await StripeTerminal.initialize({ isTest: true })
  const { readers } = await StripeTerminal.discoverReaders({
    type: TerminalConnectTypes.TapToPay,
    locationId: "**************",
  });
  await StripeTerminal.connectReader({
    reader: readers[0],
  });
  // Collect payment intent
  await StripeTerminal.collectPaymentMethod({ paymentIntent: "**************" });
  // Process and confirm payment intent
  await StripeTerminal.confirmPaymentIntent();
  // disconnect reader
  await StripeTerminal.disconnectReader();
});

听觉设备更新

设备会 必要时 自动开始更新。 必须视需要处理这些问题,以免扰乱业务.

(async ()=> {
  StripeTerminal.addListener(TerminalEventsEnum.ReportAvailableUpdate, async ({ update }) => {
    if (window.confirm("Will you update the device?")) {
      await StripeTerminal.installAvailableUpdate();
    }
  });
  StripeTerminal.addListener(TerminalEventsEnum.StartInstallingUpdate, async ({ update }) => {
    console.log(update);
    if (window.confirm("Will you interrupt the update?")) {
      StripeTerminal.cancelInstallUpdate();
    }
  });
  StripeTerminal.addListener(TerminalEventsEnum.ReaderSoftwareUpdateProgress, async ({ progress }) => {
    // be able to use this value to create a progress bar.
  });
  StripeTerminal.addListener(TerminalEventsEnum.FinishInstallingUpdate, async ({ update }) => {
    console.log(update);
  });
});

获取终端处理信息

对于没有领头屏幕的设备,处理信息必须检索并显示在移动设备上. 以听者取来.

/**
 * Listen battery level. If the battery level is low, you can notify the user to charge the device.
 */
StripeTerminal.addListener(TerminalEventsEnum.BatteryLevel, async ({ level, charging, status }) => {
  console.log(level, charging, status);
});

/**
 * Listen reader event. You can get the reader's status and display it on the mobile device.
 */
StripeTerminal.addListener(TerminalEventsEnum.ReaderEvent, async ({ event }) => {
  console.log(event);
});

/**
 * Listen display message. You can get the message to be displayed on the mobile device.
 */
StripeTerminal.addListener(TerminalEventsEnum.RequestDisplayMessage, async ({ messageType, message }) => {
  console.log(messageType, message);
});

/**
 * Listen reader input. You can get the message what can be used for payment.
 */
StripeTerminal.addListener(TerminalEventsEnum.RequestReaderInput, async ({ options, message }) => {
  console.log(options, message);
});

领导人屏幕上的更多细节

支付内容可以在显示器上显示. 这需要在设备上设置领导屏幕. 这个应该先运行 collectPaymentMethod。 。 。 .

await StripeTerminal.setReaderDisplay({
  currency: 'usd',
  tax: 0,
  total: 1000,
  lineItems: [{
    displayName: 'winecode',
    quantity: 2,
    amount: 500
  }] as CartLineItem[],
})

// Of course, erasure is also possible.
await StripeTerminal.clearReaderDisplay();

模拟用于测试的读取器状态变化

为了实施更新等,我们正在推动一个API来改变模拟器的状态. 应在发现Readers之前完成.

await StripeTerminal.setSimulatorConfiguration({ update: SimulateReaderUpdate.UpdateAvailable })

API 密码

初始化(...)

initialize(options: { tokenProviderEndpoint?: string; isTest: boolean; }) => Promise<void>
参数类型
options{ tokenProviderEndpoint?: string; isTest: boolean; }

发现读取器(...)

discoverReaders(options: DiscoverReadersOptions) => Promise<{ readers: ReaderInterface[]; }>
参数类型
optionsDiscoverReadersOptions

回返情况: Promise<{ readers: ReaderInterface[]; }>


设置连接托肯(...)

setConnectionToken(options: { token: string; }) => Promise<void>
参数类型
options{ token: string; }

设置模拟器

setSimulatorConfiguration(options: { update?: SimulateReaderUpdate; simulatedCard?: SimulatedCardType; simulatedTipAmount?: number; }) => Promise<void>

条纹文件参考

参数类型
options{ update?: SimulateReaderUpdate; simulatedCard?: SimulatedCardType; simulatedTipAmount?: number; }

连接Reader(...)

connectReader(options: { reader: ReaderInterface; autoReconnectOnUnexpectedDisconnect?: boolean; merchantDisplayName?: string; onBehalfOf?: string; }) => Promise<void>
参数类型
options{ reader: ReaderInterface; autoReconnectOnUnexpectedDisconnect?: boolean; merchantDisplayName?: string; onBehalfOf?: string; }

获取连接阅读器( C)

getConnectedReader() => Promise<{ reader: ReaderInterface | null; }>

回返情况: Promise<{ reader: ReaderInterface | null; }>


断开读取器 ()

disconnectReader() => Promise<void>

取消发现阅读器( )

cancelDiscoverReaders() => Promise<void>

收集付费方法(...)

collectPaymentMethod(options: { paymentIntent: string; }) => Promise<void>
参数类型
options{ paymentIntent: string; }

取消拼图支付方法( )

cancelCollectPaymentMethod() => Promise<void>

确认付款意向( )

confirmPaymentIntent() => Promise<void>

安装 Avail可更新日期( )

installAvailableUpdate() => Promise<void>

取消安装更新日期( C)

cancelInstallUpdate() => Promise<void>

设置 ReaderDisplay (...)

setReaderDisplay(options: Cart) => Promise<void>
参数类型
optionsCart

清除读取器Display ()

clearReaderDisplay() => Promise<void>

重新启动 Reader ()

rebootReader() => Promise<void>

取消 Reader 重新连接( C)

cancelReaderReconnection() => Promise<void>

设置 TapTopPayUx 配置(...)

setTapToPayUxConfiguration(options: TapToPayUxConfiguration) => Promise<void>

配置 Tap to Pay UX 外观( 只有Android) . 在初始化( ) 但连接Reader( ) 后调用 . 对iOS或网络平台没有影响.

参数类型
optionsTapToPayUxConfiguration

添加倾听器( Terminal EventsEnum) 。 已装入,... )

addListener(eventName: TerminalEventsEnum.Loaded, listenerFunc: () => void) => Promise<PluginListenerHandle>
参数类型
eventNameTerminalEventsEnum.Loaded
listenerFunc() => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum. requested Connection Token,...)

addListener(eventName: TerminalEventsEnum.RequestedConnectionToken, listenerFunc: () => void) => Promise<PluginListenerHandle>
参数类型
eventNameTerminalEventsEnum.RequestedConnectionToken
listenerFunc() => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum) 。 (发现读者,. )

addListener(eventName: TerminalEventsEnum.DiscoveredReaders, listenerFunc: ({ readers }: { readers: ReaderInterface[]; }) => void) => Promise<PluginListenerHandle>

在搜索iOS Bluetooth时,此会被多次执行. https://docs.stripe.com/terminal/payers/连接-阅读器?terminal-sdk-platform=ios&reader-type=蓝牙

参数类型
eventNameTerminalEventsEnum.DiscoveredReaders
listenerFunc({ readers }: { readers: ReaderInterface[]; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal Events Enum. Connected Reader,...)

addListener(eventName: TerminalEventsEnum.ConnectedReader, listenerFunc: () => void) => Promise<PluginListenerHandle>
参数类型
eventNameTerminalEventsEnum.ConnectedReader
listenerFunc() => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum) 。 断开连接读取器,... )

addListener(eventName: TerminalEventsEnum.DisconnectedReader, listenerFunc: ({ reason }: { reason?: DisconnectReason | undefined; }) => void) => Promise<PluginListenerHandle>

读取器断开时被解接, 无论是针对 disconnectReader() 或某种连接错误.

对所有读者类型来说,这是针对 disconnectReader() 无 reason 属性.

对于蓝牙和USB读取器来说,这是用一个 reason 当读取器断开时,属性.

说明: 蓝牙和USB的读者,当你打电话 disconnectReader(),该事件 将发射两次: 1次无 reason 感谢您的呼吁, 并再次以 reason 当诵经者 完成断开 .

参数类型
eventNameTerminalEventsEnum.DisconnectedReader
listenerFunc({ reason }: { reason?: DisconnectReason; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal Events Enum. Connection statusChange,...)

addListener(eventName: TerminalEventsEnum.ConnectionStatusChange, listenerFunc: ({ status }: { status: ConnectionStatus; }) => void) => Promise<PluginListenerHandle>

当终端连接状态改变时发送 .

注: 你应该 没有 使用这种方法来检测一个读者出乎意料地与您的应用程序断开时, 因为它不能用来准确区分预期的和意外的断开事件.

要检测出意外断开( 例如自动通知用户), 您应该使用 非预期读取器断开事件 .

条纹文件参考

参数类型
eventNameTerminalEventsEnum.ConnectionStatusChange
listenerFunc({ status }: { status: ConnectionStatus; }) => void

回返情况: Promise<PluginListenerHandle>


添加收听器( Terminal Events Enum. Unexpected Reader Disconnect,...)

addListener(eventName: TerminalEventsEnum.UnexpectedReaderDisconnect, listenerFunc: ({ reader }: { reader: ReaderInterface; }) => void) => Promise<PluginListenerHandle>

终端突然与读者断开联系.

在执行此方法时,您可能想要通知您的用户阅读器已断开 . 你也可以打电话 discoverReaders() 开始扫描阅读器,并尝试 以自动重接断开的读取器。 要么定出时间 要么成功 可能取消通话 discoverReaders()

当连接到蓝牙或USB读取器时,您可以通过 执行断开读取器事件.

条纹文件参考

参数类型
eventNameTerminalEventsEnum.UnexpectedReaderDisconnect
listenerFunc({ reader }: { reader: ReaderInterface; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal Events Enum. confirmed Payment Intent,...)

addListener(eventName: TerminalEventsEnum.ConfirmedPaymentIntent, listenerFunc: () => void) => Promise<PluginListenerHandle>
参数类型
eventNameTerminalEventsEnum.ConfirmedPaymentIntent
listenerFunc() => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal Events Enum. Collected Payment Intent,...)

addListener(eventName: TerminalEventsEnum.CollectedPaymentIntent, listenerFunc: () => void) => Promise<PluginListenerHandle>
参数类型
eventNameTerminalEventsEnum.CollectedPaymentIntent
listenerFunc() => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum) 。 已取消,(...)

addListener(eventName: TerminalEventsEnum.Canceled, listenerFunc: () => void) => Promise<PluginListenerHandle>

何时出院 cancelCollectPaymentMethod() 被称为成功. 承诺归来 cancelCollectPaymentMethod() 也将得到解决.

参数类型
eventNameTerminalEventsEnum.Canceled
listenerFunc() => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum) 。 失败,... )

addListener(eventName: TerminalEventsEnum.Failed, listenerFunc: (info: { message: string; code?: string; declineCode?: string; }) => void) => Promise<PluginListenerHandle>

两者之一时被放出 collectPaymentMethod() 或者说 confirmPaymentIntent() 失败。 相关呼吁发出的诺言也将被拒绝.

参数类型
eventNameTerminalEventsEnum.Failed
listenerFunc(info: { message: string; code?: string; declineCode?: string; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum. Report Available Update,...)

addListener(eventName: TerminalEventsEnum.ReportAvailableUpdate, listenerFunc: ({ update }: { update: ReaderSoftwareUpdateInterface; }) => void) => Promise<PluginListenerHandle>

当一个软件更新可供连接的阅读者使用时,即可发送.

参数类型
eventNameTerminalEventsEnum.ReportAvailableUpdate
listenerFunc({ update }: { update: ReaderSoftwareUpdateInterface; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum. StartInstalling Update,...)

addListener(eventName: TerminalEventsEnum.StartInstallingUpdate, listenerFunc: ({ update }: { update: ReaderSoftwareUpdateInterface; }) => void) => Promise<PluginListenerHandle>

仅适用于蓝牙和USB读取器.

当连接的读取器开始安装软件更新时发送 . 如果一个阅读器第一次连接时有强制软件更新,则更新就是 自动安装。 更新将在 ConnedReader 发布前安装 在承诺回来之前 connectReader() 决定. 在此情况下,您会收到这一系列事件:

  1. 启动总计 更新
  2. 阅读器软件更新进度( 重复)
  3. 完成总计 更新
  4. 连接阅读器
  5. connectReader() 保证会解决的

您的应用程序应该向用户显示正在安装软件更新 来解释为什么连接比通常需要更长的时间.

条纹文件参考

参数类型
eventNameTerminalEventsEnum.StartInstallingUpdate
listenerFunc({ update }: { update: ReaderSoftwareUpdateInterface; }) => void

回返情况: Promise<PluginListenerHandle>


添加收听器( Terminal Events Enum. ReaderSoftware Update production,...)

addListener(eventName: TerminalEventsEnum.ReaderSoftwareUpdateProgress, listenerFunc: ({ progress }: { progress: number; }) => void) => Promise<PluginListenerHandle>

仅适用于蓝牙和USB读取器.

在读者软件更新时定期发送,以通报安装进度. progress 是0到1之间的浮点.

条纹文件参考

参数类型
eventNameTerminalEventsEnum.ReaderSoftwareUpdateProgress
listenerFunc({ progress }: { progress: number; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum) 。 Finish Installed Update,...) 互联网档案馆的存檔,存档日期2011-12-21

addListener(eventName: TerminalEventsEnum.FinishInstallingUpdate, listenerFunc: (args: { update: ReaderSoftwareUpdateInterface; } | { error: string; }) => void) => Promise<PluginListenerHandle>

仅适用于蓝牙和USB读取器.

条纹文件参考

参数类型
eventNameTerminalEventsEnum.FinishInstallingUpdate
listenerFunc(args: { update: ReaderSoftwareUpdateInterface; } | { error: string; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum) 。 电池级,... )

addListener(eventName: TerminalEventsEnum.BatteryLevel, listenerFunc: ({ level, charging, status }: { level: number; charging: boolean; status: BatteryStatus; }) => void) => Promise<PluginListenerHandle>

仅适用于蓝牙和USB读取器.

接通后每10分钟通知一次.

条纹文件参考

参数类型
eventNameTerminalEventsEnum.BatteryLevel
listenerFunc({ level, charging, status }: { level: number; charging: boolean; status: BatteryStatus; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum. ReaderEvent,...)

addListener(eventName: TerminalEventsEnum.ReaderEvent, listenerFunc: ({ event }: { event: ReaderEvent; }) => void) => Promise<PluginListenerHandle>

仅适用于蓝牙和USB读取器.

条纹文件参考

参数类型
eventNameTerminalEventsEnum.ReaderEvent
listenerFunc({ event }: { event: ReaderEvent; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum. Request DisplayMessage,...)

addListener(eventName: TerminalEventsEnum.RequestDisplayMessage, listenerFunc: ({ messageType, message }: { messageType: ReaderDisplayMessage; message: string; }) => void) => Promise<PluginListenerHandle>

仅适用于蓝牙和USB读取器.

当终端请求在您的应用程序中显示信件时, 通知 .

条纹文件参考

参数类型
eventNameTerminalEventsEnum.RequestDisplayMessage
listenerFunc({ messageType, message }: { messageType: ReaderDisplayMessage; message: string; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal EventsEnum. Reader Input,...)

addListener(eventName: TerminalEventsEnum.RequestReaderInput, listenerFunc: ({ options, message }: { options: ReaderInputOption[]; message: string; }) => void) => Promise<PluginListenerHandle>

仅适用于蓝牙和USB读取器.

当读者开始等待投入时,即发出通知。 您的应用程序应该提醒客户 来使用给定的输入选项之一显示源。 如果读者发出信息, 将发布“请求忽略”事件.

条纹文件参考

参数类型
eventNameTerminalEventsEnum.RequestReaderInput
listenerFunc({ options, message }: { options: ReaderInputOption[]; message: string; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal Events Enum. Payment Status Change,...)

addListener(eventName: TerminalEventsEnum.PaymentStatusChange, listenerFunc: ({ status }: { status: PaymentStatus; }) => void) => Promise<PluginListenerHandle>

条纹文件参考

参数类型
eventNameTerminalEventsEnum.PaymentStatusChange
listenerFunc({ status }: { status: PaymentStatus; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal Events Enum. Reader Reconnect Started,...)

addListener(eventName: TerminalEventsEnum.ReaderReconnectStarted, listenerFunc: ({ reader, reason }: { reader: ReaderInterface; reason: string; }) => void) => Promise<PluginListenerHandle>
参数类型
eventNameTerminalEventsEnum.ReaderReconnectStarted
listenerFunc({ reader, reason }: { reader: ReaderInterface; reason: string; }) => void

回返情况: Promise<PluginListenerHandle>


添加倾听器( Terminal Events Enum. Reader Reconnect Successed,...)

addListener(eventName: TerminalEventsEnum.ReaderReconnectSucceeded, listenerFunc: ({ reader }: { reader: ReaderInterface; }) => void) => Promise<PluginListenerHandle>
参数类型
eventNameTerminalEventsEnum.ReaderReconnectSucceeded
listenerFunc({ reader }: { reader: ReaderInterface; }) => void

回返情况: Promise<PluginListenerHandle>


添加收听器( Terminal Events Enum. Reader Reconnection 失败,...)

addListener(eventName: TerminalEventsEnum.ReaderReconnectFailed, listenerFunc: ({ reader }: { reader: ReaderInterface; }) => void) => Promise<PluginListenerHandle>
参数类型
eventNameTerminalEventsEnum.ReaderReconnectFailed
listenerFunc({ reader }: { reader: ReaderInterface; }) => void

回返情况: Promise<PluginListenerHandle>


接口

发现阅读器选项

Prop类型说明
typeTerminalConnectTypes
locationIdstring
bluetoothScanWaitTimenumber仅适用于蓝牙扫描发现(iOS只). 在发现期间,读者通过DiscoveryDelegate.didate DiscoveredReaders进行报道. 此超时控制了等待多久才能解决 discoverReaders 使用当前列表的方法。 如果未指定或设定为0,则将返回初始扫描结果.

TapToPayUx 配置

Tap to Pay UX的配置(只有Android).

Prop类型说明
colorsTapToPayColorScheme磁带到付费屏幕的颜色方案
darkModeTapToPayDarkMode黑暗模式设置
tapZoneTapToPayTapZone磁带区位置配置

TapToPay彩色计划

Tap to Pay 屏幕的颜色方案 .

Prop类型说明
primaryTapToPayColor主色(tap区指标). 十六进制字符串或“ 默认 ” .
successTapToPayColor成功州颜色. 十六进制字符串或“ 默认 ” .
errorTapToPayColor错误状态颜色 。 十六进制字符串或“ 默认 ” .

插件听筒

Prop类型
remove() => Promise<void>

类型异名

阅读器界面

{ /** * The unique serial number is primary identifier inner plugin. / serialNumber: string; label: string; batteryLevel: number; batteryStatus: BatteryStatus; simulated: boolean; id: number; availableUpdate: ReaderSoftwareUpdateInterface; locationId: string; ipAddress: string; status: NetworkStatus; location: LocationInterface; locationStatus: LocationStatus; deviceType: DeviceType; deviceSoftwareVersion: string | null; /* * iOS Only properties. These properties are not available on Android. / isCharging: number; /* * Android Only properties. These properties are not available on iOS. */ baseUrl: string; bootloaderVersion: string; configVersion: string; emvKeyProfileId: string; firmwareVersion: string; hardwareVersion: string; macKeyProfileId: string; pinKeyProfileId: string; trackKeyProfileId: string; settingsVersion: string; pinKeysetId: string; }

读取器软件更新界面

{ deviceSoftwareVersion: string; estimatedUpdateTime: UpdateTimeEstimate; requiredAt: number; }

位置界面

{ id: string; displayName: string; address: { city: string; country: string; postalCode: string; line1: string; line2: string; state: string; }; ipAddress: string; }

设备类型

Stripe.Terminal.Reader.DeviceType

圆筒

{ currency: string; tax: number; total: number; lineItems: CartLineItem[]; }

CartLine 项目

{ displayName: string; quantity: number; amount: number; }

TaptoPay 颜色

颜色值 TapToPayUx 配置。 。 。 . 使用“ 默认” 来使用 Frede 的默认颜色, 或者像“ # 965D35” 这样的六进制字符串 .

'default' | string

TapToPayTap 区域

磁带区域位置配置 . 屏幕上显示水龙头指示器的控制器 .

{ type: 'default' } | { type: 'front'; xBias: number; yBias: number } | { type: 'behind'; xBias: number; yBias: number } | { type: 'above'; bias?: number } | { type: 'below'; bias?: number } | { type: 'left'; bias?: number } | { type: 'right'; bias?: number }

数字

电池状况

成员数值
Unknown'UNKNOWN'
Critical'CRITICAL'
Low'LOW'
Nominal'NOMINAL'

更新时间

成员数值
LessThanOneMinute'LESS_THAN_ONE_MINUTE'
OneToTwoMinutes'ONE_TO_TWO_MINUTES'
TwoToFiveMinutes'TWO_TO_FIVE_MINUTES'
FiveToFifteenMinutes'FIVE_TO_FIFTEEN_MINUTES'

网络状态

成员数值
Unknown'UNKNOWN'
Online'ONLINE'
Offline'OFFLINE'

状态

成员数值
NotSet'NOT_SET'
Set'SET'
Unknown'UNKNOWN'

设备类型

成员数值
tapToPayDevice'tapToPayDevice'
wisePad3s'wisePad3s'
appleBuiltIn'appleBuiltIn'
chipper1X'chipper1X'
chipper2X'chipper2X'
etna'etna'
stripeM2'stripeM2'
stripeS700'stripeS700'
stripeS700DevKit'stripeS700Devkit'
wiseCube'wiseCube'
wisePad3'wisePad3'
wisePosE'wisePosE'
wisePosEDevKit'wisePosEDevkit'
unknown'unknown'

终端连接Typs

成员数值
Simulated'simulated'
Internet'internet'
Bluetooth'bluetooth'
Usb'usb'
TapToPay'tap-to-pay'
HandOff'hand-off'

模拟更新

成员数值
UpdateAvailable'UPDATE_AVAILABLE'
None'NONE'
Required'REQUIRED'
Random'RANDOM'
LowBattery'LOW_BATTERY'
LowBatterySucceedConnect'LOW_BATTERY_SUCCEED_CONNECT'

模拟 纸牌

成员数值
Visa'VISA'
VisaDebit'VISA_DEBIT'
Mastercard'MASTERCARD'
MastercardDebit'MASTERCARD_DEBIT'
MastercardPrepaid'MASTERCARD_PREPAID'
Amex'AMEX'
Amex2'AMEX_2'
Discover'DISCOVER'
Discover2'DISCOVER_2'
DinersClub'DINERS'
DinersClulb14Digits'DINERS_14_DIGITS'
JCB'JCB'
UnionPay'UNION_PAY'
Interac'INTERAC'
EftposAustraliaDebit'EFTPOS_AU_DEBIT'
VisaUsCommonDebit'VISA_US_COMMON_DEBIT'
ChargeDeclined'CHARGE_DECLINED'
ChargeDeclinedInsufficientFunds'CHARGE_DECLINED_INSUFFICIENT_FUNDS'
ChargeDeclinedLostCard'CHARGE_DECLINED_LOST_CARD'
ChargeDeclinedStolenCard'CHARGE_DECLINED_STOLEN_CARD'
ChargeDeclinedExpiredCard'CHARGE_DECLINED_EXPIRED_CARD'
ChargeDeclinedProcessingError'CHARGE_DECLINED_PROCESSING_ERROR'
EftposAustraliaVisaDebit'EFTPOS_AU_VISA_DEBIT'
EftposAustraliaMastercardDebit'EFTPOS_AU_DEBIT_MASTERCARD'
OfflinePinCVM'OFFLINE_PIN_CVM'
OfflinePinSCARetry'OFFLINE_PIN_SCA_RETRY'
OnlinePinCVM'ONLINE_PIN_CVM'
OnlinePinSCARetry'ONLINE_PIN_SCA_RETRY'

TapToPayDarkMode 磁盘

成员数值
System'SYSTEM'
Dark'DARK'
Light'LIGHT'

终端事件Enum

成员数值
Loaded'terminalLoaded'
DiscoveredReaders'terminalDiscoveredReaders'
DiscoveringReaders'terminalDiscoveringReaders'
CancelDiscoveredReaders'terminalCancelDiscoveredReaders'
ConnectedReader'terminalConnectedReader'
DisconnectedReader'terminalDisconnectedReader'
ConnectionStatusChange'terminalConnectionStatusChange'
UnexpectedReaderDisconnect'terminalUnexpectedReaderDisconnect'
ConfirmedPaymentIntent'terminalConfirmedPaymentIntent'
CollectedPaymentIntent'terminalCollectedPaymentIntent'
Canceled'terminalCanceled'
Failed'terminalFailed'
RequestedConnectionToken'terminalRequestedConnectionToken'
ReportAvailableUpdate'terminalReportAvailableUpdate'
StartInstallingUpdate'terminalStartInstallingUpdate'
ReaderSoftwareUpdateProgress'terminalReaderSoftwareUpdateProgress'
FinishInstallingUpdate'terminalFinishInstallingUpdate'
BatteryLevel'terminalBatteryLevel'
ReaderEvent'terminalReaderEvent'
RequestDisplayMessage'terminalRequestDisplayMessage'
RequestReaderInput'terminalRequestReaderInput'
PaymentStatusChange'terminalPaymentStatusChange'
ReaderReconnectStarted'terminalReaderReconnectStarted'
ReaderReconnectSucceeded'terminalReaderReconnectSucceeded'
ReaderReconnectFailed'terminalReaderReconnectFailed'

断开连接Reason

成员数值
Unknown'UNKNOWN'
DisconnectRequested'DISCONNECT_REQUESTED'
RebootRequested'REBOOT_REQUESTED'
SecurityReboot'SECURITY_REBOOT'
CriticallyLowBattery'CRITICALLY_LOW_BATTERY'
PoweredOff'POWERED_OFF'
BluetoothDisabled'BLUETOOTH_DISABLED'

连接状态

成员数值
Unknown'UNKNOWN'
NotConnected'NOT_CONNECTED'
Connecting'CONNECTING'
Connected'CONNECTED'

阅读器事件

成员数值
Unknown'UNKNOWN'
CardInserted'CARD_INSERTED'
CardRemoved'CARD_REMOVED'

读取器列表

成员数值
CheckMobileDevice'CHECK_MOBILE_DEVICE'
RetryCard'RETRY_CARD'
InsertCard'INSERT_CARD'
InsertOrSwipeCard'INSERT_OR_SWIPE_CARD'
SwipeCard'SWIPE_CARD'
RemoveCard'REMOVE_CARD'
MultipleContactlessCardsDetected'MULTIPLE_CONTACTLESS_CARDS_DETECTED'
TryAnotherReadMethod'TRY_ANOTHER_READ_METHOD'
TryAnotherCard'TRY_ANOTHER_CARD'
CardRemovedTooEarly'CARD_REMOVED_TOO_EARLY'

阅读器输入选项

成员数值
None'NONE'
Insert'INSERT'
Swipe'SWIPE'
Tap'TAP'
ManualEntry'MANUAL_ENTRY'

付款状况

成员数值
Unknown'UNKNOWN'
NotReady'NOT_READY'
Ready'READY'
WaitingForInput'WAITING_FOR_INPUT'
Processing'PROCESSING'

版本与发布记录

@capgo/capacitor-stripe-terminal 共发布 9 个版本,首次发布于 2026/06/24;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.0.9latest2026/10/1525 天前
8.0.82026/10/1327 天前
8.0.72026/10/091 个月前
8.0.52026/10/081 个月前
8.0.62026/10/081 个月前
8.0.42026/09/161 个月前

关于 @capgo/capacitor-stripe-terminal 的常见问题

@capgo/capacitor-stripe-terminal 是什么?

Frede终端当面付款的电容插件.

如何安装 @capgo/capacitor-stripe-terminal?

在项目目录运行 npm install @capgo/capacitor-stripe-terminal,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-stripe-terminal 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-stripe-terminal 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-stripe-terminal 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@capgo/capacitor-stripe-terminal 可以商用吗?

@capgo/capacitor-stripe-terminal 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-stripe-terminal 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-stripe-terminal 在 2026/10/09 – 2026/11/07 这 30 天内被下载 20,713 次,日均约 690 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-stripe-terminal 还在维护吗?

最新版本 8.0.9 发布于 2026/10/15(25 天前);至今共发布 9 个版本,其中过去 12 个月发布了 9 个;首次发布于 2026/06/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。