最近面试了一家公司,是做跨境电商的,刚拿到 offer。在面试的时候聊到过,因为是做跨境电商的,面向的用户群体是美国欧洲的用户,所以在支付环节不使用支付宝/微信支付等国内产品,使用的是 paypal,所以提前研究一下并且先记录下来。
这里是 paypal iOS SDK 的 github 地址:https://github.com/paypal/PayPal-iOS-SDK
其实只要好好看这里的内容,很容易就能懂。
简介
在 paypal 的世界里,他有多种支付方式:
- 直接支付(single payment):类似国内支付产品,直接对一件或多件商品使用 paypal 余额支付
- 预支付(future payment):创建一个预支付订单,可能以后进行支付
- 信用卡支付(credit card):paypal SDK 提供了一套 card.io 的库,可以扫描信用卡,并且使用信用卡直接支付
大多数情况下我们只需要使用直接支付就好。以下也只谈直接支付,其他方式请自行查看文档。
当然,在支付之前,我们都需要去它的开发者网站进行开发者申请,创建 application 并获取 CLIENT_ID_FOR_PRODUCTION
和 CLIENT_ID_FOR_SANDBOX
。
Client ID for Production & Sandbox
OK,其实 paypal 只需要一个 client id 来确认你的 App,那么为什么有 production 和 sandbox 两个呢?
- production:所谓的正式环境,用户需要输入自己的 paypal 账户名和密码来进行支付。
- sandbox:所谓的测试环境,在你注册好账户并且生成 application 之后,paypal 会给你创建一个测试环境和账户,你需要在支付的时候输入这个账户名和密码就可以进行测试了。
支付流程
在 iOS 下,paypal 的支付流程可谓是简单,比起支付宝的等,开发者不需要很多复杂的操作,比如密钥什么的,这个最讨厌。你只需要使用 paypal SDK 创建好支付的内容,然后跳转到 paypal SDK 提供的 PayPalPaymentViewController,然后用户去完成支付就 OK 了,也不需要用户安装 paypal。接着你用代理来监控用户是不是支付成功,或者失败,并且及时通知你的服务器。
添加 paypal SDK 到你的项目
如果你用 cocoapods 来管理你的三方库&#