PayPal have launched their payment SDK, which is native for both Android and iOS, and was the topic of their recent talk at Mobile Monday Sydney.

The SDK provides developers like myself with a quick and native method of allowing users to login and make payments with their PayPal account, or use a scanned credit card.

Once you have logged in or scanned a credit card, that information is saved in your session, and is remembered for the rest of the day (if you wish). This means that the second time I “Pay with PayPal”, my login details or scanned credit card details are already entered, reducing the complexity between the “add to basket” and “confirm payment” button.

Interestingly, the next version of the SDK will allow the session to be shared between Apps made by different companies. This may seem like a trivial task to the layman, but to an iOS developer, this is no easy feat. There are two ways[^1] to share details directly between Apps. These are:

  1. If I own both Apps, I can share information between them using a Keychain Access Group. This is a special, private location that Apps from the same developer may use to store sensitive information.
  2. For Apps created by different developers, Apple's supported method for App communication is via URL schemes. For example, I can show a route in the iOS Google Maps Apps from my App by opening a URL that begins with “comgooglemaps://”

The issue that PayPal will have is that their SDK will be installed as a part of many different developer's Apps; so how can they share a session? Firstly, they cannot access a share keychain. Secondly, an App from one developer will not necessarily call another PayPal-enabled App by another developer. Therefore it will be interesting to see how they achieve this session sharing ability.

[^1]: Other novel methods have been demonstrated for specialised Apps, but in general, these are essentially the only two.