一个用于 iOS 的 Stripe Terminal 集成。(非官方)
ℹ️ 该库仍处于早期开发阶段,仅在 WisePad3 上进行了测试。 非常欢迎您的反馈和贡献。
Astral 依赖 Stripe Terminal iOS SDK 来提供开箱即用的支付处理方案。
它目前在我们的销售点应用程序 incwo POS 中使用。
尚未支持
仅支持 Swift Package Manager。
在 Xcode 中,转到 File > Add Packages
并粘贴 https://github.com/incwo/Astral。
由于 Astral 依赖 Stripe Terminal SDK,您的应用程序需要按照此处所述进行配置。 特别是,不要忘记在应用程序的 Info.plist
中设置密钥。
您的后端需要调用 Stripe 的 API 来
Stripe 提供了丰富的文档:https://stripe.com/docs/terminal/quickstart
创建一个符合 AstralApiClient
协议的类(或结构体)。 当您的应用程序必须向您的后端发送请求时,将调用此对象的方法。 请参阅 ExampleApiClient
示例。
设置 Astral
的共享实例,通常在您的 AppDelegate
中
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Astral.initSharedInstance(apiClient: ExampleApiClient())
}
然后您可以显示设置
Astral.shared?.presentSettings(from: viewController)
或者收取一定金额
Astral.shared?.charge(amount: 9.90, currency: "EUR", presentFrom: viewController) { result in
switch result {
case .success (let paymentInfo):
…
case .cancelation:
…
case .failure (let error):
…
}
}
打开 Example/AstralExample.xcodeproj
查看集成示例。 请参阅下文了解如何运行它。
后端的 URL 在 ExampleApiClient.swift
中设置。
其中一个难点是您需要一个后端来测试该示例或您自己的集成。 Stripe 提供了一个非常[简单的示例后端](https://github.com/stripe/example-terminal-backend https://github.com/stripe/example-terminal-backend)。
后端需要您 Stripe 帐户的密钥 API 密钥。 您可以在Stripe 的 API 密钥页面上获取它。 有两个密钥——这是以 sk_test
开头的那个(您应该从“测试模式”开始)。
在我们的示例中,我们选择使用 Docker 容器在我们的 Mac 上本地部署示例后端。 这应该允许在 iOS 模拟器上快速测试它。 但是,如果您想在物理 iOS 设备和物理读卡器上进行测试,则必须部署在 Heroku 上,或者激活 Mac 上的 Web 共享。
Stripe 应该已随读卡器一起向您发送了一些测试卡。 您的后端必须在测试模式下运行(参见上文)才能尝试它们。
请注意,收取的金额很重要。 最后两位数有特殊含义。 例如,支付 1.55 的金额会导致PIN 码不正确错误。
如果您发现 Astral 有用,您可以帮助其开发
有关 Astral 架构的描述,请参阅开发文档。
MIT 许可证
版权所有 (c) 2022 incwo
特此授予任何人免费获取本软件及相关文档文件(“软件”)副本的许可,以处理本软件而不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向其提供软件的人员这样做,但须符合以下条件
上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。
本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有者均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或软件的使用或其他交易引起、产生或与之相关的。