Stripe iOS SDK
Stripe iOS SDK 使您能够快速轻松地在 iOS 应用中构建出色的支付体验。我们提供了强大且可定制的 UI 屏幕 和 元素,可以直接使用收集用户的支付信息。我们还公开了驱动这些 UI 的高层 APIs,以便您构建完全自定义的体验。
请查看我们的
了解我们的 Stripe Identity iOS SDK 以在 iOS 上验证用户的身份。
目录
特性
简化安全:我们使您能够轻松地收集敏感数据,如信用卡号码,并保持与PCI兼容。这意味着敏感数据将直接发送到Stripe,而不是通过您的服务器。更多信息,请参阅我们的集成安全指南。
Apple Pay:StripeApplePay提供了与Apple Pay无缝集成。
SCA ready:如果需要,SDK将自动执行本地3D Secure身份验证,以符合欧洲强化客户身份验证法规。
本地UI:我们提供本地屏幕和元素来收集付款详情。例如,PaymentSheet是一个预构建的UI,它将完成付款所需的所有步骤 - 收集付款详情、账单详情和确认付款 - 合并到一个显示在您的应用顶部的单张表单中。
Stripe API:StripePayments提供了对应于Stripe API中的对象和方法的低级API。您可以在该层之上构建自己的完全定制的UI,同时仍然可以利用STPCardValidator等其他工具来验证用户的输入。
卡扫描:我们支持iOS 13及以上版本的卡扫描。请参阅我们的卡扫描部分。
App Clips:《StripeApplePay》模块为在App Clip中提供Apple Pay提供了一种轻量级SDK。
多语言支持:我们支持以下语言:保加利亚语、加泰罗尼亚语、中文(香港)、中文(简体)、中文(繁体)、克罗地亚语、捷克语、丹麦语、荷兰语、英语(美国)、英语(英国)、爱沙尼亚语、菲律宾语、芬兰语、法语、法语(加拿大)、德语、希腊语、匈牙利语、��度尼西亚语、意大利语、日语、韩语、拉脱维亚语、立陶宛语、马来语、马耳他语、挪威语(Bokmål)、挪威语(Nynorsk)、波兰语、葡萄牙语、葡萄牙语(巴西)、罗马尼亚语、俄语、斯洛伐克语、斯洛文尼亚语、西班牙语、西班牙语(拉丁美洲)、瑞典语、土耳其语、泰语和越南语。
推荐用法
如果您正在销售将由您应用的客户端使用的数字产品或服务(例如,订阅、游戏内货币、游戏等级、访问高级内容或解锁完整版),您必须使用苹果的内置购买API。有关更多信息,请参阅App Store 审查指南。对于所有其他场景,您可以使用此SDK通过Stripe处理支付。
隐私
Stripe iOS SDK收集数据以帮助我们改进我们的产品并防止欺诈。这些数据永远不会用于广告,也不会出租、出售或提供给广告商。我们的完整隐私策略可在https://stripe.com/privacy找到。
有关App Store Connect中苹果App隐私详情表的帮助,请访问Stripe iOS SDK隐私详情。
模块
模块 | 描述 | 压缩的 | 未压缩的 |
---|---|---|---|
StripePaymentSheet | Stripe的预构建支付UI。 | 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分支构建,需要遵循以下步骤
- 克隆仓库并
cd
进入其目录。 - 根据tuist.io上的说明安装Tuist。
- 运行
tuist generate
,如果您不希望自动打开Xcode,可以可选地传递-n
选项。
您可以像平时一样构建任何生成的目标。
要了解更多关于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