PayPal iOS SDK
PayPal iOS SDK 使得在移动应用程序中添加 PayPal 和信用卡支付变得简单。
本文件日文文档可用:[日本語のドキュメント](docs/ja/README.md)。
内容
用例
SDK 支持两种支付用例 - 单次支付 和 未来支付 - 以及第三种获取客户信息的用例 - 分享资料。
单次支付
从客户的PayPal账户或支付卡(使用card.io扫描)接收一次性付款。这可能包括:(1) 立即付款,您的服务器应随后进行验证;(2) 对付款的授权,您的服务器必须随后进行抓捕;(3) 对订单的付款,您的服务器必须随后进行授权和抓捕。
未来付款
您的客户只需在PayPal中登录一次并同意未来的付款。
- 获取客户同意以接收授权码。
- 在您的服务器上,使用此授权码获取OAuth2令牌。
稍后,当该客户启动付款时
个人信息共享
您的客户登录PayPal并同意PayPal与您共享信息。
- 获取客户同意以接收授权码。
- 在您的服务器上,使用此授权码获取OAuth2令牌。
- 在您的服务器上,使用OAuth2令牌和PayPal的API检索客户信息。
要求
- Xcode 6和iOS SDK 8
- iOS 6.0+目标部署
- armv7, armv7s和arm64设备,以及模拟器(不带armv6)
- 所有尺寸和分辨率的iPhone和iPad
将SDK添加到您的项目中
如果您使用CocoaPods,请在您的Podfile中添加以下几行
platform :ios, '6.0'
pod 'PayPal-iOS-SDK'
如果您不使用CocoaPods,那么
- 克隆或下载SDK,它包括头文件、许可函、发布说明和一个静态库。它还包括一个示例应用。
- 从2.4.0版本开始,SDK需要Xcode 6和iOS 8 SDK。如果您仍然在使用Xcode 5,请使用本SDK的2.3.2版本。
- 将
PayPalMobile
目录(包含多个.h文件和libPayPalMobile.a)添加到您的Xcode项目中。我们建议勾选“复制项...”并选择“创建组...”。 - 在您项目的构建设置中(在
TARGETS
部分,而不是PROJECTS
部分)
- 将
-lc++ -ObjC
添加到其他链接器标志
- 启用
启用模块(C和Objective-C)
- 启用
自动链接框架
- 在您项目的构建阶段中,与这些库链接您的项目。从iOS 6.0开始的版本支持弱链接。
AudioToolbox.framework
AVFoundation.framework
CoreLocation.framework
CoreMedia.framework
MessageUI.framework
MobileCoreServices.framework
SystemConfiguration.framework
使用或不用CocoaPods
- 将acknowledgments.md中的开源许可函添加到您的应用许可证函中。
凭据
您的移动端集成需要在每个环境(实时和测试[沙箱])下使用不同的 client_id
值。
您的服务器集成(用于验证或创建支付)也将需要与每个 client_id
对应的 client_secret
。
您可以通过访问PayPal开发者网站上的应用页面并使用您的PayPal帐户登录来获取这些PayPal API凭证。
沙箱
登录此应用页面后,您将被分配包括测试 凭证 在内的测试参数,这将允许您测试iOS集成与PayPal沙箱。
在测试您的应用程序时,在SDK的用户界面登录PayPal时,您应该使用一个 个人 沙箱账户邮箱和密码。即不要使用您的沙箱 商业 凭证。
您可以在沙箱账户页面上创建商业和个人沙箱账户。
实时
要获取您的 实时 凭证,您需要有一个商业账户。如果您还没有商业账户,应用页面的底部有一个链接可以帮助您开始建立。
国际支持
本地化
SDK具有许多语言和区域的内置翻译。请参阅头文件以获得完整列表。
货币
SDK支持多种货币。请参阅REST API 国家和货币文档以获得完整且最新的列表。
请注意,用于支付卡和PayPal支付的货币支持情况不同。除非您禁用支付卡接受(通过PayPalConfiguration.acceptCreditCards
属性),否则我们**建议仅限支持两种支付类型货币的交易**。目前这些货币有:美元(USD)、英镑(GBP)、加拿大元(CAD)、欧元(EUR)、日元(JPY)。
如果您的应用使用不支持所选支付类型的货币初始化交易,则SDK将向用户显示错误并在控制台日志中写入一条信息。
测试
在开发和测试期间,将环境设置为沙盒模式或无网络/模拟模式,以避免涉及真实货币。更多信息请参阅头文件。
文档
- 本SDK中的这些文档,包括使用概述、分步集成说明和示例代码。
- SDK中包含的示例应用。
- 头文件经过详细文档化;如有需要,请查阅它们以了解特定属性或参数的额外详细信息。
- PayPal开发者文档,涵盖了错误代码和服务器端集成说明。
用户体验
用户界面外观和行为在库内部设置。为了用户体验一致性,应用程序不应调整外观属性或尝试修改SDK在提供头文件中记录的方法之外的行为。
具体来说,如果您正在使用UIAppearance
修改应用程序中任何UI元素的外观,您应该在显示我们的viewController之前撤消这些更改,并在销毁viewController后重新设置它们。
迁移到PayPal iOS SDK 2.0
从1.x版本升级
由于这是一个主要版本变化,2.0版本中引入的API与1.x集成不兼容。但是,SDK仍然支持所有之前的单次支付功能。升级很简单。
- SDK的初始化是通过新的
PayPalMobile
类的的方法完成的。 PayPalPaymentViewController
的大多数属性已经移动到PayPalConfiguration
,并且将初始化方法修改为接受此类配置对象。PayPalPaymentDelegate
协议方法也已经更改,包括作为一个参数的PayPalPaymentViewController
。
旧版库
PayPal正在用新的PayPal Android和iOS SDK替换旧的“Mobile Payments Libraries”(MPL)。新的移动SDK基于PayPal REST API,而旧的MPL使用Adaptive Payments API。
在提供第三方、并行和链式支付等功能之前(如果需要),可以使用MPL
有关MPL的问题应在该sdk-packages仓库中提交。
对于现有Express Checkout集成或希望使用更多功能的开发者,可以在此webview中使用Mobile Express Checkout。
下一步
根据您的用例,您现在可以