Skip to content
This repository has been archived by the owner on May 5, 2020. It is now read-only.

Commit

Permalink
Release 2.16.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Bryant Luk committed Oct 6, 2016
1 parent 48123af commit f66c595
Show file tree
Hide file tree
Showing 29 changed files with 275 additions and 707 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
PayPal iOS SDK release notes
============================

2.16.0
------
* Add support for third-party receivers [#140](https://github.com/paypal/PayPal-iOS-SDK/issues/140). Available as an optional property, `PayPalPayment.payeeEmail`. This property is only available for PayPal payments, not Direct Credit Card (DCC) payments.
* Direct Credit Card (DCC) payments are now deprecated in this SDK. Please use [Braintree Payments](https://www.braintreepayments.com/), a PayPal Company, which is the easiest way to accept PayPal, credit cards, and many other payment methods.

2.15.1
------
* Update to card.io 5.4.1.
Expand Down
2 changes: 1 addition & 1 deletion PayPal-iOS-SDK.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |spec|
spec.name = 'PayPal-iOS-SDK'
spec.version = '2.15.1'
spec.version = '2.16.0'
spec.license = { type: 'BSD', file: 'LICENSE' }
spec.homepage = 'https://developer.paypal.com/webapps/developer/docs/integration/mobile/mobile-sdk-overview/'
spec.authors = { 'PayPal' => 'support@paypal.com' }
Expand Down
2 changes: 1 addition & 1 deletion PayPalMobile/PayPalConfiguration.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//
// PayPalConfiguration.h
//
// Version 2.15.1
// Version 2.16.0
//
// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved.
// All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion PayPalMobile/PayPalFuturePaymentViewController.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//
// PayPalFuturePaymentViewController.h
//
// Version 2.15.1
// Version 2.16.0
//
// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved.
// All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion PayPalMobile/PayPalMobile.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//
// PayPalMobile.h
//
// Version 2.15.1
// Version 2.16.0
//
// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved.
// All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion PayPalMobile/PayPalOAuthScopes.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//
// PayPalOAuthScopes.h
//
// Version 2.15.1
// Version 2.16.0
//
// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved.
// All rights reserved.
Expand Down
5 changes: 4 additions & 1 deletion PayPalMobile/PayPalPayment.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//
// PayPalPayment.h
//
// Version 2.15.1
// Version 2.16.0
//
// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved.
// All rights reserved.
Expand Down Expand Up @@ -206,6 +206,9 @@ typedef NS_ENUM(NSInteger, PayPalPaymentIntent) {
/// Optional text which will appear on the customer's credit card statement. (up to 22 characters)
@property (nullable, nonatomic, copy, readwrite) NSString *softDescriptor;

/// Optional third-party receiver for single payments. When specified, payments will be sent to this receiver, instead of the account of the provided client_id.
@property (nullable, nonatomic, copy, readwrite) NSString *payeeEmail;

/// Optional Build Notation code ("BN code"), obtained from partnerprogram@paypal.com,
/// for your tracking purposes.
@property(nullable, nonatomic, copy, readwrite) NSString *bnCode;
Expand Down
2 changes: 1 addition & 1 deletion PayPalMobile/PayPalPaymentViewController.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//
// PayPalPaymentViewController.h
//
// Version 2.15.1
// Version 2.16.0
//
// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved.
// All rights reserved.
Expand Down
2 changes: 1 addition & 1 deletion PayPalMobile/PayPalProfileSharingViewController.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//
// PayPalProfileSharingViewController.h
//
// Version 2.15.1
// Version 2.16.0
//
// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved.
// All rights reserved.
Expand Down
Binary file modified PayPalMobile/libPayPalMobile.a
Binary file not shown.
47 changes: 8 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
PayPal iOS SDK
==============

The PayPal iOS SDK makes it easy to add PayPal and credit card payments to mobile apps.
Those building new integrations should consider using [Braintree Payments](https://www.braintreepayments.com/), a PayPal Company, which is the easiest way to accept PayPal, credit cards, and many other payment methods.

The PayPal iOS SDK makes it easy to add PayPal payments to mobile apps.

![SDK screenshots](docs/sdk-screens.png)

Expand All @@ -26,7 +28,6 @@ The PayPal iOS SDK makes it easy to add PayPal and credit card payments to mobil
- [Testing](#testing)
- [Documentation](#documentation)
- [Usability](#usability)
- [Moving to PayPal iOS SDK 2.0](#moving-to-paypal-ios-sdk-20)
- [Next Steps](#next-steps)


Expand All @@ -37,12 +38,12 @@ The SDK supports two use cases for making payments - **Single Payment** and **Fu

### Single Payment

Receive a one-time payment from a customer's PayPal account or payment card (scanned with [card.io](https://www.card.io/)). This can be either (1) an **immediate** payment which your servers should subsequently **verify**, or (2) an **authorization** for a payment which your servers must subsequently **capture**, or (3) a payment for an **order** which your servers must subsequently **authorize** and **capture**:
Receive a one-time payment from a customer's PayPal account. This can be either (1) an **immediate** payment which your servers should subsequently **verify**, or (2) an **authorization** for a payment which your servers must subsequently **capture**, or (3) a payment for an **order** which your servers must subsequently **authorize** and **capture**:

1. [Accept a Single Payment](docs/single_payment.md) and receive back a proof of payment.
2. On your server, [Verify the Payment](https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/), [Capture the Payment](https://developer.paypal.com/webapps/developer/docs/integration/direct/capture-payment/#capture-the-payment), or [Process the Order](https://developer.paypal.com/webapps/developer/docs/integration/direct/create-process-order/) (PayPal Developer site) using PayPal's API.

*Note:* Direct Credit Card Payments is only available in a [select few countries](https://developer.paypal.com/webapps/developer/docs/integration/direct/rest_api_payment_country_currency_support/#direct-credit-card-payments). Also, see the [International Support](#international-support) section for details on the specific currencies supported.
*Note:* Direct Credit Card (DCC) payments are now deprecated in this SDK. Please use [Braintree Payments](https://www.braintreepayments.com/), a PayPal Company, which is the easiest way to accept PayPal, credit cards, and many other payment methods.


### Future Payments
Expand Down Expand Up @@ -89,12 +90,11 @@ pod 'PayPal-iOS-SDK'
1. Clone or download the SDK, which consists of header files, license acknowledgements, release notes, and a static library. It also includes a sample app.
* **As of version 2.12.0, the SDK requires Xcode 7 and iOS 8 SDK.**
2. Add the `PayPalMobile` directory (containing several .h files and libPayPalMobile.a) to your Xcode project. We recommend checking "Copy items..." and selecting "Create groups...".
3. (Optionally) Add the `CardIO` directory (containing several .h files, `libCardIO.a`, `libopencv_core.a`, and `libopencv_imgproc.a`) to your Xcode project. We recommend checking "Copy items..." and selecting "Create groups...". `libCardIO.a`, `libopencv_core.a`, and `libopencv_imgproc.a` adds the functionality to pay by scanning a card.
4. In your project's **Build Settings** (in the `TARGETS` section, not the `PROJECTS` section):
3. In your project's **Build Settings** (in the `TARGETS` section, not the `PROJECTS` section):
* add `-lc++ -ObjC` to `Other Linker Flags`
* enable `Enable Modules (C and Objective-C)`
* enable `Link Frameworks Automatically`
5. In your project's **Build Phases**, link your project with these libraries. Weak linking for iOS versions back to 6.0 is supported.
4. In your project's **Build Phases**, link your project with these libraries. Weak linking for iOS versions back to 6.0 is supported.
* `Accelerate.framework`
* `AudioToolbox.framework`
* `AVFoundation.framework`
Expand All @@ -112,15 +112,14 @@ pod 'PayPal-iOS-SDK'
* `com.paypal.ppclient.touch.v1`
* `com.paypal.ppclient.touch.v2`
* `org-appextension-feature-password-management`
3. If you use card.io to scan credit cards, you should add the key [`NSCameraUsageDescription`](https://developer.apple.com/library/prerelease/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW24) to your app's `Info.plist` and set the value to be a string describing why your app needs to use the camera (e.g. "To scan credit cards."). This string will be displayed when the app initially requests permission to access the camera.

## Credentials

Your mobile integration requires different `client_id` values for each environment: Live and Test (Sandbox).

Your server integrations for verifying or creating payments will also require the corresponding `client_secret` for each `client_id`.

You can obtain these PayPal API credentials by visiting the [Applications page on the PayPal Developer site](https://developer.paypal.com/developer/applications/) and logging in with your PayPal account.
You can obtain these PayPal API credentials by visiting the [Applications page on the PayPal Developer site](https://developer.paypal.com/webapps/developer/applications) and logging in with your PayPal account.

### Sandbox

Expand All @@ -145,8 +144,6 @@ The SDK has built-in translations for many languages and locales. See the header

The SDK supports multiple currencies. See [the REST API country and currency documentation](https://developer.paypal.com/webapps/developer/docs/integration/direct/rest_api_payment_country_currency_support/) for a complete, up-to-date list.

Note that currency support differs for payment card versus PayPal payments. Unless you disable payment card acceptance (via the `PayPalConfiguration.acceptCreditCards` property), **we recommend limiting transactions to currencies supported by both payment types.** Currently these are: USD, GBP, CAD, EUR, JPY.

If your app initiates a transaction with a currency that turns out to be unsupported for the user's selected payment type, then the SDK will display an error to the user and write a message to the console log.


Expand Down Expand Up @@ -185,34 +182,6 @@ User interface appearance and behavior is set within the library itself. For the
Specifically, if you are using `UIAppearance` to modify the appearance of any UI elements in your app, you should reverse those changes prior to presenting our viewcontroller, and set them again after dismissing the viewcontroller.


## Moving to PayPal iOS SDK 2.0


### Upgrade from 1.x

As a major version change, the API introduced in 2.0 is not backward compatible with 1.x integrations. However, the SDK still supports all previous single payment functionality. Upgrading is straightforward.

* Initialization of the SDK is performed via methods of a new `PayPalMobile` class.
* Most of the properties of `PayPalPaymentViewController` have been moved to `PayPalConfiguration`, and the `PayPalPaymentViewController` initializer has changed to take such a configuration object.
* The `PayPalPaymentDelegate` protocol methods have also been altered to include a `PayPalPaymentViewController` as a parameter.


### Older Libraries

PayPal is in the process of replacing the older "Mobile Payments Libraries" (MPL) with the new PayPal Android and iOS SDKs.
The new Mobile SDKs are based on the PayPal REST API, while the older MPL uses the Adaptive Payments API.

Until features such as third-party, parallel, and chained payments are available, if needed, you can use MPL:

- [MPL on GitHub](https://github.com/paypal/sdk-packages/tree/gh-pages/MPL)
- [MPL Documentation](https://developer.paypal.com/webapps/developer/docs/classic/mobile/gs_MPL/)

Issues related to MPL should be filed in the [sdk-packages repo](https://github.com/paypal/sdk-packages/).

Developers with existing Express Checkout integrations or who want additional features may wish to use [Mobile Express Checkout](https://developer.paypal.com/webapps/developer/docs/classic/mobile/gs_MEC/)
in a webview.


## Next Steps

Depending on your use case, you can now:
Expand Down
4 changes: 4 additions & 0 deletions SampleApp-Swift/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
build

xcuserdata/
xcshareddata/
Loading

0 comments on commit f66c595

Please sign in to comment.