Stripe iOS SDK
Stripe iOS SDK 使您能够快速轻松地在 iOS 应用中构建优秀的支付体验。我们提供了强大且可定制的 UI 屏幕,可以直接用于收集用户的支付详细信息。我们还公开了驱动这些 UI 的高级 API,以便您可以构建完整的自定义体验。
从我们的
了解我们的 Stripe Identity iOS SDK 以在 iOS 上验证用户的身份。
目录
功能
简化安全:我们让收集敏感数据(如信用卡号码)变得简单,同时保持与PCI合规性。这意味着敏感数据会直接发送到Stripe,而不是通过您的服务器。有关更多信息,请参阅我们的集成安全指南。
苹果支付:StripeApplePay提供与苹果支付无缝集成。
SCA准备就绪:SDK会自动执行本地3D Secure身份验证(如有必要),以符合欧洲的强客户身份验证法规。
原生前端界面:我们提供本地屏幕和元素以收集付款详细信息。例如,支付表是一个预构建的UI,它将所有付款步骤(收集付款详细信息、账单详细信息以及确认付款)合并到一个显示在应用顶部的工作表中。
Stripe API:StripePayments提供了与Stripe API中的对象和方法相对应的低级API。您可以在这一层的基础上构建自己的完全自定义UI,同时仍然可以利用例如STPCardValidator之类的实用工具来验证用户的输入。
卡扫描:我们支持iOS 13及以上版本的卡扫描。请参阅我们的卡扫描部分。
App Clips:StripeApplePay
模块提供了一个轻量级SDK,用于在App Clip中提供苹果支付。
本地化:我们支持以下本地化:保加利亚语、加泰罗尼亚语、中文(香港)、中文(简体)、中文(繁体)、克罗地亚语、捷克语、丹麦语、荷兰语、英语(美国)、英语(英国)、爱沙尼亚语、菲律宾语、芬兰语、法语、法语(加拿大)、德语、希腊语、匈牙利语、印度尼西亚语、意大利语、日语、韩语、拉脱维亚语、立陶宛语、马来语、马耳他语、挪威语 bokmål、挪威语 nyorsk(挪威)、波兰语、葡萄牙语、葡萄牙语(巴西)、罗马尼亚语、俄语、斯洛伐克语、斯洛文尼亚语、西班牙语、西班牙语(拉丁美洲)、瑞典语、土耳其语、泰语和越南语。
推荐用法
如果您在应用内销售或提供将被使用在您应用内的数字产品或服务(例如订阅、游戏内货币、游戏等级、访问高级内容或解锁完整版),您必须使用苹果的在内购API。有关更多信息,请参阅App Store 审查指南。对于所有其他场景,您可以使用此SDK通过Stripe处理支付。
隐私
Stripe iOS SDK 收集数据以帮助我们改进产品并防止欺诈。这些数据绝不会用于广告,也不会出租、出售或提供给广告商。我们的完整隐私政策可在https://stripe.com/privacy查看。
有关Apple App Store Connect中Apple的隐私详细信息表的帮助,请访问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支付API的绑定。 | 1.0MB | 2.6MB |
StripePaymentsUI | Stripe支付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或更高版本的应用兼容。我们支持macOS 10.16或更高版本的Catalyst。
v22.8.4支持iOS 12。请使用v21.13.0以支持iOS 11,请使用v19.4.0以支持iOS 10。如果您需要支持iOS 9,请使用v17.0.2。
入门
集成
从我们的
示例
-
预建UI(推荐)
- 本示例演示了如何使用嵌入式原生用户界面组件
PaymentSheet
构建支付流程,该组件可接受 10多种支付方式,而无需进行多次集成。
- 本示例演示了如何使用嵌入式原生用户界面组件
-
- 本示例演示了如何使用 Stripe API 手动接受各种支付方式。
从源代码构建
我们使用 Tuist 生成 Xcode 项目,并已从存储库的 master 分支中删除所有 Xcode 相关文件。请注意,项目文件仍然在标记发布的版本中可用。
如果您想从 master 分支构建,请遵循以下步骤
- 克隆存储库并将
cd
进入其目录。 - 通过运行
curl -Ls https://install.tuist.io | bash
安装 Tuist - 运行
tuist generate
,如果不想自动打开 Xcode,可选地传递-n
选项。
您可以像往常一样构建任何生成的目标。
有关 Tuist 的更多信息,请访问 https://tuist.io。
卡扫描
PaymentSheet 集成了卡扫描功能。要启用卡扫描,您需要在应用程序的 plist 中设置 NSCameraUsageDescription
,并提供访问摄像头的理由(例如:“扫描卡”)。卡扫描支持运行 iOS 13 或更高版本的设备。
您可以在我们的 PaymentSheet 示例应用程序 中演示此功能。当您在设备上运行示例应用程序时,在添加新卡时您会看到一个“扫描卡”按钮。
贡献
我们欢迎任何形式的贡献,包括新功能、错误修复和文档改进。如果是一个大的更改,请先创建一个问题描述您想要构建的内容,这样我们可以讨论如何向前推进。否则,请开始创建一个拉取请求,用于提交小的更改,如错别字修复和单行代码。
运行测试
- 安装 Carthage 0.37 或更高版本(如果你已安装 homebrew,请运行
brew install carthage
) - 从仓库名称的根目录运行
bوندle install && bوندle exec fastlane stripeios_tests
。这将安装测试依赖项并运行测试。 - 运行一次之后,你还可以从
Stripe.xcworkspace
中的StripeiOS
目标在 Xcode 中运行测试。请确保使用 iPhone 12 mini、iOS 16.1 模拟器,以便快照测试可以通过。
从旧版本迁移
查看 MIGRATING.md