Skip to content

Releases: processout/processout-ios

Release v2.10.4

12 May 09:18
13b5d30
Compare
Choose a tag to compare
  • Add support for customer action value without padding (matching 3DS2 specs)

Release v2.10.3

16 Apr 13:32
b8aacb7
Compare
Choose a tag to compare
  • makeAPMPayment now returns the URL string so that merchants can display the content in a webview if needed

Release v2.10.1

06 Apr 08:57
b7b64fa
Compare
Choose a tag to compare
  • HTTP: fix GET methods with empty body

Release v2.10.1

11 Feb 09:40
Compare
Choose a tag to compare
  • Remove usage of UIWebView (deprecated)

Release v2.10.0

04 Nov 10:12
c8b0c07
Compare
Choose a tag to compare

Alternative Payment Methods

Release v2.9.0

02 Oct 16:16
673f8e1
Compare
Choose a tag to compare

What's new?

  • Support for 3DS challenges in webview inside the app
  • Support for makeCardToken method with card verification
  • General improvements

Migration

SDK setup

Specifying a custom URL scheme is no longer required. Instantiate the SDK like so in your AppDelegate:

ProcessOut.Setup(projectId: "project-id")

Payment instantiation

Use the makeCardPayment or makeCardToken methods like in v2.8.2.

ProcessOut.makeCardPayment(invoiceId: "invoice-id", token: token!, handler: ProcessOut.createThreeDSTestHandler(viewController: self, completion: { (invoiceId, error) in
    // If error is nil, send the invoice to your backend to complete the charge
}), with: self)

The only change relies in the ThreeDSHandler protocol:

A new method has to be overridden (See the full protocol at the bottom of the PR):

public func doPresentWebView(webView: ProcessOutWebView) {
    // Called when a web challenge is required
    // Present the webView to your user the way you want
}

Deep-links (APM purposes)

The only case where your user might come back from the device browser is when dealing with Alternative Payment Methods.
In your AppDelegate file:

// This method handles opening custom URL schemes (e.g., "yourapp://")
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
    if let token = ProcessOut.handleURLCallback(url: url) {
        // Send the token to your backend to complete the charge
    }
    return false
}

Full ThreeDSHandler protocol:

/// Custom protocol which lets you implement a 3DS2 integration
public protocol ThreeDSHandler {
    /// method called when a device fingerprint is required
    ///
    /// - Parameters:
    ///   - directoryServerData: Contains information required by the third-party handling the device fingerprinting
    ///   - completion: Callback containing the fingerprint information
    func doFingerprint(directoryServerData: DirectoryServerData, completion: @escaping (ThreeDSFingerprintResponse) -> Void)
    
    /// Method called when a 3DS2 challenge is required
    ///
    /// - Parameters:
    ///   - authentificationData: Authentification data required to present the challenge
    ///   - completion: Callback specifying wheter or not the challenge was successful
    func doChallenge(authentificationData: AuthentificationChallengeData, completion: @escaping (Bool) -> Void)
    
    
    /// Method called when a web challenge is required
    ///
    /// - Parameter webView: The webView to present
    func doPresentWebView(webView: ProcessOutWebView)
    
    /// Called when the authorization was successful
    ///
    /// - Parameter invoiceId: Invoice id that was authorized
    func onSuccess(invoiceId: String)
    
    /// Called when the authorization process ends up in a failed state.
    ///
    /// - Parameter error: Error
    func onError(error: ProcessOutException)
}

Release v2.8.2

23 Sep 08:20
9c6964d
Compare
Choose a tag to compare
  • Add support for idempotency key
  • Set network timeout to 15s instead of 60 and implement retries

Release v2.8.1

06 Sep 13:03
2c2ba89
Compare
Choose a tag to compare

APM: fix Decodable protocol handling for apm listing

Release v2.8.0

02 Sep 12:00
b739877
Compare
Choose a tag to compare
  • Add support for 3DS1 fallback

Release v2.7.0

24 Jul 13:42
f2fa063
Compare
Choose a tag to compare
  • Add support for 3DS1 fallback