Welcome to PayPal's iOS SDK. This library will help you accept card, PayPal, Venmo, and alternative payments in your iOS app.
The PayPal iOS SDK supports a minimum deployment target of iOS 13+ and requires Xcode 13+. See our Client Deprecation policy to plan for updates.
Since this SDK will release in Q1 2021, requiring iOS 13+ and Xcode 13+ is in accordance with our deprecation policy. A lot of research went into creating the existing client deprecation policy, regarding OS deprecation timelines, and so far has worked out well for BT.
This SDK supports Swift 5+.
This SDK is written in Swift.
Note: Let's try to use the beta to let it dictate what merchants actually want, not what we think they want. For example, let's start without explicit Objective-C support and see what type of feedback we get in pilot / beta.
The PayPal iOS SDK is comprised of various submodules.
PaymentsCore
PayPalPayments
CardPayments
ApplePayPayments
ThreeDSecurePayments
PayoutsCore
PayPalPayouts
To accept a certain payment method in your app, you only need to include that payment-specific submodule.
Question: Should 3DS capabilities be a separate module? If we're using Cardinal, it should to shield non-3DS merchants from Cardinal issues.
Question: Rahul mentioned wanting to keep the naming extensible for Payouts & other cabailities, so that is why we tried the above names. Is this something we need to be actively considering during MVP?
// STEP 0: Fetch an ACCESS_TOKEN and ORDER_ID from your server.
// STEP 1: Create a PaymentConfiguration object
paymentConfig = PaymentConfig(token: ACCESS_TOKEN)
// STEP 2: Create payment method client objects
cardClient = CardClient(config: paymentConfig)
// STEP 3: Collect relevant payment method details
card = Card(number: 4111111111111111, cvv: 123, ...)
// STEP 4: Call checkout method
cardClient?.checkoutWithCard(orderID: ORDER_ID, card: card) { result in
switch result {
case .success(let orderId):
// Send orderID to your server to process the payment
case .error(let error):
// handle checkout error
}
}
// STEP 5: Send orderID to your server to capture/authorize
This project uses the XCTest
framework provided by Xcode. Every code path should be unit tested. Unit tests should make up most of the test coverage, with integration, and then UI tests following.
GitHub Actions CI will run all tests and build commands per package manager on each PR.
TBD until development progresses. We will use Rake, Fastlane, or some other tool for easy command-line build tasks.
This SDK follows Semantic Versioning. The release process will be automated via GitHub Actions.
Client analytics will be collected via Lighthouse/FPTI.
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing