Stripe iOS SDK
Stripe iOS SDK 使得在 iOS 应用中快速轻松地构建出色的支付体验变得简单。我们提供强大且可定制的 UI 屏幕和元素,可以直接使用以收集用户的付款详情。我们还公开了支撑这些 UI 的底层 API,以便您可以构建完全自定义的体验。
从我们的
了解我们的 Stripe Identity iOS SDK,以在 iOS 上验证用户的身份。
目录
特性
简化安全性:我们让您轻松收集敏感数据,如信用卡号,并保持PCI合规。这意味着敏感数据会直接发送到Stripe,而不是通过您的服务器。有关更多信息,请参阅我们的集成安全指南。
Apple Pay:StripeApplePay提供了与Apple Pay的无缝集成。
SCA尽快:如果需要,SDK会自动执行本地3D Secure身份验证,以符合欧盟的强客户身份验证法规。
本地UI:我们提供本地屏幕和元素来收集支付详情。例如,PaymentSheet是一个预构建的UI,它将支付所必需的所有步骤——收集支付详情、账单详情以及确认支付——整合到一张显示在您的应用顶部的单张中。
Stripe API:StripePayments提供了对应于Stripe API中对象和方法的低级API。您可以在这一层之上构建自己的完全定制的UI,同时仍然可以利用像STPCardValidator这样的实用工具来验证用户的输入。
卡扫描:我们支持iOS 13及更高版本的卡扫描。请参阅我们的卡扫描部分。
App Clips:StripeApplePay
模块提供了一个轻量级SDK,用于在App Clip中提供Apple Pay。
本地化:我们支持以下本地化:保加利亚语、加泰罗尼亚语、中文(香港)、中文(简体)、中文(繁体)、克罗地亚语、捷克语、丹麦语、荷兰语、美式英语、英式英语、爱沙尼亚语、菲律宾语、芬兰语、法语、法语(加拿大)、德语、希腊语、匈牙利语、��尼语、意大利语、日语、韩语、拉脱维亚语、立陶宛语、马来语、马耳他语、挪威语 bokmal、挪威语 nyorsk(挪威)、波兰语、葡萄牙语、葡萄牙语(巴西)、罗马尼亚语、俄语、斯洛伐克语、斯洛文尼亚语、西班牙语、西班牙语(拉丁美洲)、瑞典语、土耳其语、泰语和越南语。
推荐用法
如果您正在销售将在您的应用程序内消费的数字产品或服务(例如订阅、游戏内货币、游戏等级、访问高级内容或解锁完整版本),则必须使用苹果的 In-App Purchase API。有关更多信息,请参阅 App Store 审查指南。对于所有其他场景,您可以使用此 SDK 通过 Stripe 处理支付。
隐私
Stripe iOS SDK 收集数据以帮助我们改进我们的产品并防止欺诈。这些数据绝对不会用于广告,也不会出租、出售或提供给广告商。我们的完整隐私政策可在 https://stripe.com/privacy 找到。
有关 App Store Connect 中 Apple 的 App 隐私详细信息表的帮助,请访问 Stripe iOS SDK 隐私详情。
模块
模块 | 描述 | 压缩格式 | 未压缩格式 |
---|---|---|---|
StripePaymentSheet | Stripe 的预先构建的支付 UI,您可以在这里找到更多有关如何接受支付的信息:https://stripe.com/docs/payments/accept-a-payment?platform=ios&ui=payment-sheet。 | 2.7MB | 6.3MB |
Stripe | 包含以下所有框架,以及 发行 和 基本集成。 | 2.3MB | 5.1MB |
StripeApplePay | Apple Pay 支持,包括 STPApplePayContext 。 |
0.4MB | 1.0MB |
StripePayments | Stripe Payments API 的绑定。 | 1.0MB | 2.6MB |
StripePaymentsUI | Stripe Payments API 的绑定,包括 STPPaymentCardTextField、STPCardFormView 和其他 UI 元素。 | 1.7MB | 3.9MB |
发布
我们支持 Cocoapods、Carthage 和 Swift Package Manager。
如果您手动链接库,请使用我们的 发布 页面上的版本,并确保嵌入 所有 必需的框架。
对于 Stripe
模块,链接以下框架
Stripe.xcframework
Stripe3DS2.xcframework
StripeApplePay.xcframework
StripePayments.xcframework
StripePaymentsUI.xcframework
StripeCore.xcframework
StripeUICore.xcframework
对于其他模块,请按照以下说明操作
如果您在GitHub.com上阅读此文档,请确保您查看的是与已安装版本相对应的标记版本。否则,指导和示例代码可能与您的副本不匹配。
要求
Stripe iOS SDK 需要Xcode 14.1或更高版本,且与针对iOS 13或更高版本的App兼容。我们支持macOS 10.16或更高版本的Catalyst。
要支持iOS 12,请使用v22.8.4。要支持iOS 11,请使用v21.13.0。对于iOS 10,请使用v19.4.0。如果您需要支持iOS 9,请使用v17.0.2。
入门
集成
从我们的📚集成指南和示例项目开始,或
示例
-
预构建UI(推荐)
- 本示例展示了如何使用
PaymentSheet
构建支付流程,这是一个可嵌入的本地 UI 组件,允许您通过单一集成即可接受 10+ 支付方式。
- 本示例展示了如何使用
-
- 本示例展示了如何使用 Stripe API 人工接受各种支付方式。
从源构建
我们使用 Tuist 生成 Xcode 项目,并将所有与 Xcode 相关的文件从仓库的 master 分支中删除。请注意,项目文件仍然存在于标签版发行中。
如果您想从 master 分支构建,需要遵循以下步骤
- 克隆仓库并进入其目录。
- 通过 tuist.io 上的说明安装 Tuist。tuist.io.
- 运行
tuist generate
,可选地传递-n
选项如果您不希望自动打开 Xcode。
您可以根据常规方式构建任何生成的目标。
有关 Tuist 的更多信息,请访问 https://tuist.io。
卡扫描
PaymentSheet 提供内置的卡扫描功能。要启用卡扫描,您需要在应用程序的 plist 文件中设置 NSCameraUsageDescription
,并提供一个原因以访问相机(例如“扫描卡”)。支持在 iOS 13 或更高版本的设备上进行卡扫描。
您可以通过我们的 PaymentSheet 示例应用程序 演示此功能。在设备上运行示例应用程序时,在添加新卡时,您将看到“扫描卡”按钮。
贡献
我们欢迎各种类型的贡献,包括新功能、错误修复和文档改进。如果您想进行重大的更改,请首先创建一个问题来描述您想构建的内容,以便我们讨论如何前进。否则,请继续提出对诸如错别字修复和单行代码之类的较小更改的拉取请求。
运行测试
- 安装 Carthage 0.37 或更高版本(如果您已安装 homebrew,请使用
brew install carthage
) - 从存储库的根目录运行
bundle install && bundle exec fastlane stripeios_tests
。这将安装测试依赖项并运行测试。 - 首次运行后,您还可以从
Stripe.xcworkspace
中的StripeiOS
目标在 Xcode 中运行测试。请确保使用 iPhone 12 mini 和 iOS 16.1 模拟器,以确保快照测试通过。
从旧版本迁移
参阅 MIGRATING.md