@ capgo/ 电容器- 断层
接受在您的 Capacitor app 中亲自支付, 并使用 Frede 终端 : Tap to Pay 在电话中, 加上 Bluetooth, USB 和 Internet 卡片阅读器在 iOS 和 Android 上.
🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用
@capgo/capacitor-stripe-terminal在您的电容应用程序中:npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/capor-strip-terminal 到我的Capacitor app 并把它接上 代理设置指南 • 妇女 主机磁共振
主要特点
- 设置数字 :
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
平台设置
我们已经证实,它在示范项目中效果良好。 参见:
- Tap to Pay / Internet / Bluetooth 演示 : https://github.com/ Cap-go/cap-stripe-terminal/tree/main/demo/angular 互联网档案馆的存檔,存档日期2013-12-21
- 设备演示应用 : https://github.com/ Cap-go/concessor-stripe-terminal/tree/main/demo/app-on-devices 互联网档案馆的存檔,存档日期2013-12-22
网页
没有必要采取额外步骤.
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(...)discoverReaders(...)setConnectionToken(...)setSimulatorConfiguration(...)connectReader(...)getConnectedReader()disconnectReader()cancelDiscoverReaders()collectPaymentMethod(...)cancelCollectPaymentMethod()confirmPaymentIntent()installAvailableUpdate()cancelInstallUpdate()setReaderDisplay(...)clearReaderDisplay()rebootReader()cancelReaderReconnection()setTapToPayUxConfiguration(...)addListener(TerminalEventsEnum.Loaded, ...)addListener(TerminalEventsEnum.RequestedConnectionToken, ...)addListener(TerminalEventsEnum.DiscoveredReaders, ...)addListener(TerminalEventsEnum.ConnectedReader, ...)addListener(TerminalEventsEnum.DisconnectedReader, ...)addListener(TerminalEventsEnum.ConnectionStatusChange, ...)addListener(TerminalEventsEnum.UnexpectedReaderDisconnect, ...)addListener(TerminalEventsEnum.ConfirmedPaymentIntent, ...)addListener(TerminalEventsEnum.CollectedPaymentIntent, ...)addListener(TerminalEventsEnum.Canceled, ...)addListener(TerminalEventsEnum.Failed, ...)addListener(TerminalEventsEnum.ReportAvailableUpdate, ...)addListener(TerminalEventsEnum.StartInstallingUpdate, ...)addListener(TerminalEventsEnum.ReaderSoftwareUpdateProgress, ...)addListener(TerminalEventsEnum.FinishInstallingUpdate, ...)addListener(TerminalEventsEnum.BatteryLevel, ...)addListener(TerminalEventsEnum.ReaderEvent, ...)addListener(TerminalEventsEnum.RequestDisplayMessage, ...)addListener(TerminalEventsEnum.RequestReaderInput, ...)addListener(TerminalEventsEnum.PaymentStatusChange, ...)addListener(TerminalEventsEnum.ReaderReconnectStarted, ...)addListener(TerminalEventsEnum.ReaderReconnectSucceeded, ...)addListener(TerminalEventsEnum.ReaderReconnectFailed, ...)- 接口
- 类型异名
- 数字
初始化(...)
initialize(options: { tokenProviderEndpoint?: string; isTest: boolean; }) => Promise<void>
| 参数 | 类型 |
|---|---|
options | { tokenProviderEndpoint?: string; isTest: boolean; } |
发现读取器(...)
discoverReaders(options: DiscoverReadersOptions) => Promise<{ readers: ReaderInterface[]; }>
| 参数 | 类型 |
|---|---|
options | DiscoverReadersOptions |
回返情况: 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>
| 参数 | 类型 |
|---|---|
options | Cart |
清除读取器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或网络平台没有影响.
| 参数 | 类型 |
|---|---|
options | TapToPayUxConfiguration |
添加倾听器( Terminal EventsEnum) 。 已装入,... )
addListener(eventName: TerminalEventsEnum.Loaded, listenerFunc: () => void) => Promise<PluginListenerHandle>
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.Loaded |
listenerFunc | () => void |
回返情况: Promise<PluginListenerHandle>
添加倾听器( Terminal EventsEnum. requested Connection Token,...)
addListener(eventName: TerminalEventsEnum.RequestedConnectionToken, listenerFunc: () => void) => Promise<PluginListenerHandle>
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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=蓝牙
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.DiscoveredReaders |
listenerFunc | ({ readers }: { readers: ReaderInterface[]; }) => void |
回返情况: Promise<PluginListenerHandle>
添加倾听器( Terminal Events Enum. Connected Reader,...)
addListener(eventName: TerminalEventsEnum.ConnectedReader, listenerFunc: () => void) => Promise<PluginListenerHandle>
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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 当诵经者
完成断开 .
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.DisconnectedReader |
listenerFunc | ({ reason }: { reason?: DisconnectReason; }) => void |
回返情况: Promise<PluginListenerHandle>
添加倾听器( Terminal Events Enum. Connection statusChange,...)
addListener(eventName: TerminalEventsEnum.ConnectionStatusChange, listenerFunc: ({ status }: { status: ConnectionStatus; }) => void) => Promise<PluginListenerHandle>
当终端连接状态改变时发送 .
注: 你应该 没有 使用这种方法来检测一个读者出乎意料地与您的应用程序断开时, 因为它不能用来准确区分预期的和意外的断开事件.
要检测出意外断开( 例如自动通知用户), 您应该使用 非预期读取器断开事件 .
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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读取器时,您可以通过 执行断开读取器事件.
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.UnexpectedReaderDisconnect |
listenerFunc | ({ reader }: { reader: ReaderInterface; }) => void |
回返情况: Promise<PluginListenerHandle>
添加倾听器( Terminal Events Enum. confirmed Payment Intent,...)
addListener(eventName: TerminalEventsEnum.ConfirmedPaymentIntent, listenerFunc: () => void) => Promise<PluginListenerHandle>
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.ConfirmedPaymentIntent |
listenerFunc | () => void |
回返情况: Promise<PluginListenerHandle>
添加倾听器( Terminal Events Enum. Collected Payment Intent,...)
addListener(eventName: TerminalEventsEnum.CollectedPaymentIntent, listenerFunc: () => void) => Promise<PluginListenerHandle>
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.CollectedPaymentIntent |
listenerFunc | () => void |
回返情况: Promise<PluginListenerHandle>
添加倾听器( Terminal EventsEnum) 。 已取消,(...)
addListener(eventName: TerminalEventsEnum.Canceled, listenerFunc: () => void) => Promise<PluginListenerHandle>
何时出院 cancelCollectPaymentMethod() 被称为成功.
承诺归来 cancelCollectPaymentMethod() 也将得到解决.
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.Canceled |
listenerFunc | () => void |
回返情况: Promise<PluginListenerHandle>
添加倾听器( Terminal EventsEnum) 。 失败,... )
addListener(eventName: TerminalEventsEnum.Failed, listenerFunc: (info: { message: string; code?: string; declineCode?: string; }) => void) => Promise<PluginListenerHandle>
两者之一时被放出 collectPaymentMethod() 或者说 confirmPaymentIntent()
失败。 相关呼吁发出的诺言也将被拒绝.
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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>
当一个软件更新可供连接的阅读者使用时,即可发送.
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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() 决定.
在此情况下,您会收到这一系列事件:
- 启动总计 更新
- 阅读器软件更新进度( 重复)
- 完成总计 更新
- 连接阅读器
connectReader()保证会解决的
您的应用程序应该向用户显示正在安装软件更新 来解释为什么连接比通常需要更长的时间.
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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之间的浮点.
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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读取器.
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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分钟通知一次.
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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读取器.
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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读取器.
当终端请求在您的应用程序中显示信件时, 通知 .
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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读取器.
当读者开始等待投入时,即发出通知。 您的应用程序应该提醒客户 来使用给定的输入选项之一显示源。 如果读者发出信息, 将发布“请求忽略”事件.
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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>
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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>
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.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>
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.ReaderReconnectSucceeded |
listenerFunc | ({ reader }: { reader: ReaderInterface; }) => void |
回返情况: Promise<PluginListenerHandle>
添加收听器( Terminal Events Enum. Reader Reconnection 失败,...)
addListener(eventName: TerminalEventsEnum.ReaderReconnectFailed, listenerFunc: ({ reader }: { reader: ReaderInterface; }) => void) => Promise<PluginListenerHandle>
| 参数 | 类型 |
|---|---|
eventName | TerminalEventsEnum.ReaderReconnectFailed |
listenerFunc | ({ reader }: { reader: ReaderInterface; }) => void |
回返情况: Promise<PluginListenerHandle>
接口
发现阅读器选项
| Prop | 类型 | 说明 |
|---|---|---|
type | TerminalConnectTypes | |
locationId | string | |
bluetoothScanWaitTime | number | 仅适用于蓝牙扫描发现(iOS只). 在发现期间,读者通过DiscoveryDelegate.didate DiscoveredReaders进行报道. 此超时控制了等待多久才能解决 discoverReaders 使用当前列表的方法。 如果未指定或设定为0,则将返回初始扫描结果. |
TapToPayUx 配置
Tap to Pay UX的配置(只有Android).
| Prop | 类型 | 说明 |
|---|---|---|
colors | TapToPayColorScheme | 磁带到付费屏幕的颜色方案 |
darkMode | TapToPayDarkMode | 黑暗模式设置 |
tapZone | TapToPayTapZone | 磁带区位置配置 |
TapToPay彩色计划
Tap to Pay 屏幕的颜色方案 .
| Prop | 类型 | 说明 |
|---|---|---|
primary | TapToPayColor | 主色(tap区指标). 十六进制字符串或“ 默认 ” . |
success | TapToPayColor | 成功州颜色. 十六进制字符串或“ 默认 ” . |
error | TapToPayColor | 错误状态颜色 。 十六进制字符串或“ 默认 ” . |
插件听筒
| 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' |