From 70a50d328787d3c22a8a7bfffc077cef76e81650 Mon Sep 17 00:00:00 2001 From: Marcos Rivereto Date: Tue, 26 Aug 2025 19:08:36 -0300 Subject: [PATCH 01/30] Change view layout --- .../project.pbxproj | 16 ++++ .../globex.imageset/Contents.json | 12 +++ .../globex.imageset/globex.png | Bin 0 -> 15492 bytes .../Base.lproj/Main.storyboard | 48 +++++++++- .../in-app-browser-ios/ViewController.swift | 86 ++++++------------ 5 files changed, 103 insertions(+), 59 deletions(-) create mode 100644 ios-app/in-app-browser-ios/Assets.xcassets/globex.imageset/Contents.json create mode 100644 ios-app/in-app-browser-ios/Assets.xcassets/globex.imageset/globex.png diff --git a/ios-app/in-app-browser-ios.xcodeproj/project.pbxproj b/ios-app/in-app-browser-ios.xcodeproj/project.pbxproj index 7b63dea..51c431f 100644 --- a/ios-app/in-app-browser-ios.xcodeproj/project.pbxproj +++ b/ios-app/in-app-browser-ios.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 1584596A2E5E6191008111E9 /* JSONUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 158459692E5E618B008111E9 /* JSONUtils.swift */; }; + 1584596C2E5E636C008111E9 /* EstablishDataUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1584596B2E5E635E008111E9 /* EstablishDataUtils.swift */; }; A5C539A5296F3208008C2E69 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C539A4296F3208008C2E69 /* Extensions.swift */; }; A695061624F56AEF00C186AE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A695061524F56AEF00C186AE /* AppDelegate.swift */; }; A695061824F56AEF00C186AE /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A695061724F56AEF00C186AE /* SceneDelegate.swift */; }; @@ -18,6 +20,8 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 158459692E5E618B008111E9 /* JSONUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSONUtils.swift; sourceTree = ""; }; + 1584596B2E5E635E008111E9 /* EstablishDataUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EstablishDataUtils.swift; sourceTree = ""; }; A5C539A4296F3208008C2E69 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; A695061224F56AEF00C186AE /* in-app-browser-ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "in-app-browser-ios.app"; sourceTree = BUILT_PRODUCTS_DIR; }; A695061524F56AEF00C186AE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -42,6 +46,15 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 158459682E5E6183008111E9 /* Utils */ = { + isa = PBXGroup; + children = ( + 1584596B2E5E635E008111E9 /* EstablishDataUtils.swift */, + 158459692E5E618B008111E9 /* JSONUtils.swift */, + ); + path = Utils; + sourceTree = ""; + }; A5C539A3296F31CF008C2E69 /* Extensions */ = { isa = PBXGroup; children = ( @@ -70,6 +83,7 @@ A695061424F56AEF00C186AE /* in-app-browser-ios */ = { isa = PBXGroup; children = ( + 158459682E5E6183008111E9 /* Utils */, A5C539A3296F31CF008C2E69 /* Extensions */, A695061524F56AEF00C186AE /* AppDelegate.swift */, A695061724F56AEF00C186AE /* SceneDelegate.swift */, @@ -163,6 +177,8 @@ files = ( A695061A24F56AEF00C186AE /* ViewController.swift in Sources */, A695061624F56AEF00C186AE /* AppDelegate.swift in Sources */, + 1584596A2E5E6191008111E9 /* JSONUtils.swift in Sources */, + 1584596C2E5E636C008111E9 /* EstablishDataUtils.swift in Sources */, A695061824F56AEF00C186AE /* SceneDelegate.swift in Sources */, A5C539A5296F3208008C2E69 /* Extensions.swift in Sources */, ); diff --git a/ios-app/in-app-browser-ios/Assets.xcassets/globex.imageset/Contents.json b/ios-app/in-app-browser-ios/Assets.xcassets/globex.imageset/Contents.json new file mode 100644 index 0000000..aecd040 --- /dev/null +++ b/ios-app/in-app-browser-ios/Assets.xcassets/globex.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "globex.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios-app/in-app-browser-ios/Assets.xcassets/globex.imageset/globex.png b/ios-app/in-app-browser-ios/Assets.xcassets/globex.imageset/globex.png new file mode 100644 index 0000000000000000000000000000000000000000..ab98bbd744d183e033e811113267bf164817094d GIT binary patch literal 15492 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 G!u}6SZ=q}e literal 0 HcmV?d00001 diff --git a/ios-app/in-app-browser-ios/Base.lproj/Main.storyboard b/ios-app/in-app-browser-ios/Base.lproj/Main.storyboard index 40b37a2..c1ba463 100644 --- a/ios-app/in-app-browser-ios/Base.lproj/Main.storyboard +++ b/ios-app/in-app-browser-ios/Base.lproj/Main.storyboard @@ -1,9 +1,9 @@ - + - + @@ -12,12 +12,53 @@ - + + + + + + + + + + + + + + + + + + + + @@ -26,6 +67,7 @@ + diff --git a/ios-app/in-app-browser-ios/ViewController.swift b/ios-app/in-app-browser-ios/ViewController.swift index db1fc32..0cbbde1 100644 --- a/ios-app/in-app-browser-ios/ViewController.swift +++ b/ios-app/in-app-browser-ios/ViewController.swift @@ -14,84 +14,58 @@ import SafariServices class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate { - private let OBSERVER_NAME = "appInterface" - private var webView: WKWebView! + private var establishData: [String: String] = [:] + private let urlScheme = "in-app-browser-ios" private var webSession: ASWebAuthenticationSession! - - - private func createNotifications(){ - NotificationCenter.default.addObserver(self, selector: #selector(closeInAppBrowser), name: .trustlyCloseInAppBrowser, object: nil) - } override func viewDidLoad() { super.viewDidLoad() - - self.createNotifications() - - // the url of your web app - let url = URL(string: "http://localhost:3000?integrationContext=InAppBrowser&urlScheme=in-app-browser-ios")! - let reqApp = URLRequest(url: url); - self.webView = WKWebView( - frame: self.view.bounds, - configuration: self.getWKWebViewConfiguration() - ) - - webView.navigationDelegate = self - webView.uiDelegate = self - webView.load(reqApp) - self.view.addSubview(self.webView) + self.establishData = [ + "accessId": "A48B73F694C4C8EE6306", + "merchantId" : "110005514", + "currency" : "USD", + "amount" : "1.00", + "merchantReference" : "cac73df7-52b4-47d7-89d3-9628d4cfb65e", + "paymentType" : "Retrieval", + "returnUrl": "/returnUrl", + "cancelUrl": "/cancelUrl", + "requestSignature": "HT5mVOqBXa8ZlvgX2USmPeLns5o=", + "customer.name": "John", + "customer.address.country": "US", + "theme": "dark", + "metadata.theme": "dark", + "metadata.urlScheme": "\(urlScheme)://", + "metadata.integrationContext": "InAppBrowser", + "description": "First Data Mobile Test", + "flowType": "", + "env": "sandbox", + "envHost": "192.168.0.13" + ] } - private func getWKWebViewConfiguration() -> WKWebViewConfiguration { - let userController = WKUserContentController() - let configuration = WKWebViewConfiguration() - let wkPreferences = WKPreferences() - wkPreferences.javaScriptCanOpenWindowsAutomatically = true - configuration.preferences = wkPreferences - configuration.userContentController = userController - return configuration + // MARK: Actions + @IBAction func openWidget(_ sender: Any) { } - func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? { - - if navigationAction.targetFrame == nil, let url = navigationAction.request.url { - if url.description.lowercased().range(of: "/oauth/login") != nil { - - if #available(iOS 13, *) { - self.buildASWebAuthenticationSession(url: url, callbackURL: "in-app-browser-ios") - - } else { - // handle iOS =<12 with SFAuthenticationSession - } - } + + @IBAction func openLightbox(_ sender: Any) { } - - return nil } - + private func buildASWebAuthenticationSession(url: URL, callbackURL: String){ webSession = ASWebAuthenticationSession(url: url, callbackURLScheme: callbackURL, completionHandler: { (url, error) in self.proceedToChooseAccount() }) - + webSession.prefersEphemeralWebBrowserSession = true webSession.presentationContextProvider = self webSession.start() } - @objc func closeInAppBrowser(notification: Notification){ - if webSession != nil { - webSession.cancel() - } - self.proceedToChooseAccount() - } - - private func proceedToChooseAccount(){ - self.webView.evaluateJavaScript("window.Trustly.proceedToChooseAccount();", completionHandler: nil) } -} +} From b36607301d3576a1486c18ecf7b149e313b0454f Mon Sep 17 00:00:00 2001 From: Marcos Rivereto Date: Tue, 26 Aug 2025 19:08:55 -0300 Subject: [PATCH 02/30] Create utils functions --- .../Utils/EstablishDataUtils.swift | 90 +++++++++++++++++++ .../in-app-browser-ios/Utils/JSONUtils.swift | 37 ++++++++ 2 files changed, 127 insertions(+) create mode 100644 ios-app/in-app-browser-ios/Utils/EstablishDataUtils.swift create mode 100644 ios-app/in-app-browser-ios/Utils/JSONUtils.swift diff --git a/ios-app/in-app-browser-ios/Utils/EstablishDataUtils.swift b/ios-app/in-app-browser-ios/Utils/EstablishDataUtils.swift new file mode 100644 index 0000000..b474d69 --- /dev/null +++ b/ios-app/in-app-browser-ios/Utils/EstablishDataUtils.swift @@ -0,0 +1,90 @@ +// +// EstablishDataUtils.swift +// in-app-browser-ios +// +// Created by Marcos Rivereto on 26/08/25. +// Copyright © 2025 Pedro Paulo Abdenor. All rights reserved. +// + +import Foundation +import os + + +struct EstablishDataUtils { + + // MARK: normalizeEstablishWithDotNotation + + /// Transform the establish removing the dot notation. Example: from ["customer.address.country": "US"] to ["customer": ["address": [country": "US"]]] + /// + /// - Parameter establish: An establish to be transformed + /// - Returns: A new [String : AnyHashable] object normalized + static func normalizeEstablishWithDotNotation(establish: [String : AnyHashable]) -> [String : AnyHashable] { + + var newEstablish = [String : AnyHashable]() + + establish.forEach { (key: String, value: AnyHashable) in + + if key.contains(".") { + parseData(origin: &newEstablish, key: key, value: value) + + } else { + newEstablish[key] = value + + } + + } + + return newEstablish + + } + + /// Responsible to parse the dot notation key, in a clean dictionary key. Example: from ["customer.address.country": "US"] to ["customer": ["address": [country": "US"]]] + /// + /// - Parameters: + /// - origin: The origin dictionary + /// - key: The key with dot notation + /// - value: The value of the key + static private func parseData(origin: inout [String : AnyHashable], key: String, value: AnyHashable ) { + + if key.contains(".") { + origin.removeValue(forKey: key) + + let splitKeys = splitDotNotationKeys(key) + + var newObject: [String : AnyHashable] + + if let object = origin[splitKeys.mainKey] { + + newObject = object as! [String : AnyHashable] + newObject[splitKeys.complementKey] = value + + } else { + newObject = [splitKeys.complementKey: value] + } + + parseData(origin: &newObject, key: splitKeys.complementKey, value: value) + origin[splitKeys.mainKey] = newObject + + } else { + origin[key] = value + + } + } + + /// Split the dot notation key in 2 parts, mainKey and complementKey. Example: from "customer.address.country" to (mainKey: customer, complementKey: address.country) + /// + /// - Parameters: + /// - key: The key with dot notation + /// - value: The value of the key + /// - Returns: (mainKey: String, complementKey: String) + static private func splitDotNotationKeys(_ key: String) -> (mainKey: String, complementKey: String) { + var keys = key.split(separator: ".") + + let firstKey = String(keys[0]) + keys.remove(at: 0) + let secondKey = keys.joined(separator: ".") + + return (mainKey: firstKey, complementKey: secondKey) + } + +} diff --git a/ios-app/in-app-browser-ios/Utils/JSONUtils.swift b/ios-app/in-app-browser-ios/Utils/JSONUtils.swift new file mode 100644 index 0000000..febb78b --- /dev/null +++ b/ios-app/in-app-browser-ios/Utils/JSONUtils.swift @@ -0,0 +1,37 @@ +// +// JsonUtils.swift +// in-app-browser-ios +// +// Created by Marcos Rivereto on 26/08/25. +// Copyright © 2025 Pedro Paulo Abdenor. All rights reserved. +// + +import Foundation +import os + +struct JSONUtils { + + static private func getJsonDataFrom(dictionary: [AnyHashable : Any]) -> Data? { + + do { + + let jsonData:Data = try JSONSerialization.data(withJSONObject: dictionary) + + return jsonData + + } catch { + print("Error when try to get json from data: \(error.localizedDescription)") + } + + return nil + } + + static func getJsonBase64From(dictionary: [AnyHashable : Any]) -> String? { + + guard let jsonData = getJsonDataFrom(dictionary: dictionary) else { return nil } + let jsonBase64 = jsonData.base64EncodedString() + + return jsonBase64 + + } +} From 2e4a809664d09b10093c1cf36bbcdbfa5a9a65fd Mon Sep 17 00:00:00 2001 From: Marcos Rivereto Date: Tue, 26 Aug 2025 19:09:27 -0300 Subject: [PATCH 03/30] Call widget and lightbox in ASWebAuthenticationSession component --- .../in-app-browser-ios/ViewController.swift | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/ios-app/in-app-browser-ios/ViewController.swift b/ios-app/in-app-browser-ios/ViewController.swift index 0cbbde1..a3482a0 100644 --- a/ios-app/in-app-browser-ios/ViewController.swift +++ b/ios-app/in-app-browser-ios/ViewController.swift @@ -46,18 +46,23 @@ class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate { // MARK: Actions @IBAction func openWidget(_ sender: Any) { + + if let url = buildUrl(showWidget: true) { + buildASWebAuthenticationSession(url: url, callbackURL: urlScheme) + } } @IBAction func openLightbox(_ sender: Any) { + if let url = buildUrl() { + buildASWebAuthenticationSession(url: url, callbackURL: urlScheme) } } + // MARK: oAUTH private func buildASWebAuthenticationSession(url: URL, callbackURL: String){ webSession = ASWebAuthenticationSession(url: url, callbackURLScheme: callbackURL, completionHandler: { (url, error) in - - self.proceedToChooseAccount() - + // TODO: CLOSE ASWebAuthenticationSession }) webSession.prefersEphemeralWebBrowserSession = true @@ -65,6 +70,14 @@ class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate { webSession.start() } + // MARK: Helper functions + private func buildUrl(showWidget: Bool = false) -> URL? { + let establishDotNotation = EstablishDataUtils.normalizeEstablishWithDotNotation(establish: self.establishData) + let establishBase64 = JSONUtils.getJsonBase64From(dictionary: establishDotNotation) ?? "" + + let baseUrl = "https://sandbox.paywithmybank.com/frontend/mobile/establish?widget=\(showWidget)&token=\(establishBase64)" + + return URL(string: baseUrl) } From e9aba0df648b655ba250a6049ef4b65dc2909320 Mon Sep 17 00:00:00 2001 From: Marcos Rivereto Date: Wed, 27 Aug 2025 14:05:22 -0300 Subject: [PATCH 04/30] Remove unused code --- ios-app/in-app-browser-ios/ViewController.swift | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ios-app/in-app-browser-ios/ViewController.swift b/ios-app/in-app-browser-ios/ViewController.swift index a3482a0..bbcd35d 100644 --- a/ios-app/in-app-browser-ios/ViewController.swift +++ b/ios-app/in-app-browser-ios/ViewController.swift @@ -6,13 +6,9 @@ import Foundation import UIKit -import WebKit import AuthenticationServices -// necessary for compatibility with iOS 12 and under -import SafariServices - -class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate { +class ViewController: UIViewController { private var establishData: [String: String] = [:] private let urlScheme = "in-app-browser-ios" From f2a303f332558e91739c7cdca2d9bf84f593e7f3 Mon Sep 17 00:00:00 2001 From: Marcos Rivereto Date: Wed, 27 Aug 2025 14:05:59 -0300 Subject: [PATCH 05/30] Add urlScheme in return and cancel url --- .../in-app-browser-ios/ViewController.swift | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/ios-app/in-app-browser-ios/ViewController.swift b/ios-app/in-app-browser-ios/ViewController.swift index bbcd35d..c41990f 100644 --- a/ios-app/in-app-browser-ios/ViewController.swift +++ b/ios-app/in-app-browser-ios/ViewController.swift @@ -24,8 +24,8 @@ class ViewController: UIViewController { "amount" : "1.00", "merchantReference" : "cac73df7-52b4-47d7-89d3-9628d4cfb65e", "paymentType" : "Retrieval", - "returnUrl": "/returnUrl", - "cancelUrl": "/cancelUrl", + "returnUrl": "\(urlScheme)://", + "cancelUrl": "\(urlScheme)://", "requestSignature": "HT5mVOqBXa8ZlvgX2USmPeLns5o=", "customer.name": "John", "customer.address.country": "US", @@ -58,7 +58,14 @@ class ViewController: UIViewController { // MARK: oAUTH private func buildASWebAuthenticationSession(url: URL, callbackURL: String){ webSession = ASWebAuthenticationSession(url: url, callbackURLScheme: callbackURL, completionHandler: { (url, error) in - // TODO: CLOSE ASWebAuthenticationSession + + if url == nil { + self.showAlertWith(success: false) + + } else { + self.showAlertWith(success: true) + + } }) webSession.prefersEphemeralWebBrowserSession = true @@ -76,5 +83,25 @@ class ViewController: UIViewController { return URL(string: baseUrl) } + + private func showAlertWith(success: Bool) { + + var message = "" + + if success { + message = "Authorization successful!" + + } else { + message = "Autorization failed!" + + } + + let alertMessagePopUpBox = UIAlertController(title: "Authorization", message: message, preferredStyle: .alert) + let okButton = UIAlertAction(title: "OK", style: .default) + + alertMessagePopUpBox.addAction(okButton) + + self.present(alertMessagePopUpBox, animated: true) + } } From 65888b4870bc3b9153203aee77c5ea4f54645c94 Mon Sep 17 00:00:00 2001 From: Marcos Rivereto Date: Wed, 27 Aug 2025 14:25:53 -0300 Subject: [PATCH 06/30] Remove metadata.integrationContext to handle with oAuth flow --- ios-app/in-app-browser-ios/ViewController.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/ios-app/in-app-browser-ios/ViewController.swift b/ios-app/in-app-browser-ios/ViewController.swift index c41990f..1754339 100644 --- a/ios-app/in-app-browser-ios/ViewController.swift +++ b/ios-app/in-app-browser-ios/ViewController.swift @@ -32,7 +32,6 @@ class ViewController: UIViewController { "theme": "dark", "metadata.theme": "dark", "metadata.urlScheme": "\(urlScheme)://", - "metadata.integrationContext": "InAppBrowser", "description": "First Data Mobile Test", "flowType": "", "env": "sandbox", From 30343486a616dae983453cc23137a7834be739b8 Mon Sep 17 00:00:00 2001 From: Marcos Rivereto Date: Wed, 27 Aug 2025 14:54:22 -0300 Subject: [PATCH 07/30] Remove sensitive data --- ios-app/in-app-browser-ios/ViewController.swift | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ios-app/in-app-browser-ios/ViewController.swift b/ios-app/in-app-browser-ios/ViewController.swift index 1754339..ccb4950 100644 --- a/ios-app/in-app-browser-ios/ViewController.swift +++ b/ios-app/in-app-browser-ios/ViewController.swift @@ -11,22 +11,22 @@ import AuthenticationServices class ViewController: UIViewController { private var establishData: [String: String] = [:] - private let urlScheme = "in-app-browser-ios" + private let urlScheme = "in-app-browser-ios" // YOUR APP URL SCHEME private var webSession: ASWebAuthenticationSession! override func viewDidLoad() { super.viewDidLoad() self.establishData = [ - "accessId": "A48B73F694C4C8EE6306", - "merchantId" : "110005514", + "accessId": "", + "merchantId" : "", "currency" : "USD", "amount" : "1.00", - "merchantReference" : "cac73df7-52b4-47d7-89d3-9628d4cfb65e", + "merchantReference" : "", "paymentType" : "Retrieval", "returnUrl": "\(urlScheme)://", "cancelUrl": "\(urlScheme)://", - "requestSignature": "HT5mVOqBXa8ZlvgX2USmPeLns5o=", + "requestSignature": "", "customer.name": "John", "customer.address.country": "US", "theme": "dark", @@ -34,8 +34,8 @@ class ViewController: UIViewController { "metadata.urlScheme": "\(urlScheme)://", "description": "First Data Mobile Test", "flowType": "", - "env": "sandbox", - "envHost": "192.168.0.13" + "env": "<[int, sandbox, local]>", + "localUrl": "" ] } From bdd89061ca75e89522ae63ad6e2a6a45810cd154 Mon Sep 17 00:00:00 2001 From: Marcos Rivereto Date: Thu, 28 Aug 2025 15:37:03 -0300 Subject: [PATCH 08/30] Update README files --- README.md | 12 ++++-------- ios-app/README.md | 24 ++++++++++++++++++++++++ resources/in-app-browser-ios-home.png | Bin 0 -> 179745 bytes 3 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 resources/in-app-browser-ios-home.png diff --git a/README.md b/README.md index 5c7b7cb..91ca243 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,12 @@ # Trustly Mobile Webview Example App -screenshot of example app - -This project is provided as an example of integration between a web app serving the Trustly UI and mobile apps that render that web app from a webview. Specifically, this example focuses on successfully handling OAuth and App-to-App bank authorization user flows. The repository can be used alongside Trustly's [Mobile App Webview tutorial](https://amer.developers.trustly.com/payments/docs/oauth-for-mobile-apps). - -## The Web App - -The `react-web-app` directory contains a simple React app that displays a "Pay with Trustly" button which launches the Lightbox. Instructions for running this app can be found in that directory's [ReadMe](./react-web-app/README.md). +This project is provided as an example of integration without Trustly mobile SDK. Specifically, this example focuses on successfully handling OAuth and App-to-App bank authorization user flows. The repository can be used alongside Trustly's [Mobile App Webview tutorial](https://amer.developers.trustly.com/payments/docs/oauth-for-mobile-apps). ## The iOS App -The `ios-app` directory contains a simple Swift app that renders a Webview of a given URL. With the above React app running, the iOS app can be pointed to the resulting URL to demonstrate the webview and secure-in-app-browser functionality required to successfully integrate the two applications. Additional instructions can be found in that directory's [ReadMe](./ios-app/README.md). +The `ios-app` directory contains a simple Swift app that renders a oAuth web authentication session component. Additional instructions can be found in that directory's [ReadMe](./ios-app/README.md). + +![iOS app](resources/in-app-browser-ios-home.png "iOS App") ## The Android App diff --git a/ios-app/README.md b/ios-app/README.md index 38dc6d4..c7c7007 100644 --- a/ios-app/README.md +++ b/ios-app/README.md @@ -15,6 +15,7 @@ One of the parameters that we need in establish data is the `urlScheme`, this pa The `urlScheme` is a required parameter of the `ASWebAuthenticationSession` method. When the authentication process is completed, the `ASWebAuthenticationSession` component will utilize the `urlScheme` to manage the InAppBrowser screen. In the `App-to-App` user flow where the user is redirected to a bank's mobile app for authentication, the `urlScheme` will be used as the target upon redirect back to your application. In this case, the `AppDelegate` or `SceneDelegate` files in your iOS application will handle the behavior upon redirect. +The same value in the `urlScheme` we need to use in `cancel ## AppDelegate vs SceneDelegate @@ -25,6 +26,29 @@ If your application was created before iOS 13 and was not updated to use the Sce ## Introduction +To open Trustly widget or lightbox we need to build an url with a `token`. This `token` is the `establish data` in `base 64` format. + +### Building url +The base url is `https://sandbox.paywithmybank.com/frontend/mobile/establish`. + +`Establish data` is a dictionary with all parameters to create a transaction, to transform `establish data` to `base 64` format we should convert the dicitionary in a `json string` and after that create the `base 64` value. + +```swift +let establishBase64 = JSONUtils.getJsonBase64From(dictionary: establishDotNotation) ?? "" +``` + +The `JSONUtils` class, is a custom class created by Trustly, you can check the content in the file `in-app-browser-ios/Utils/JSONUtils.swift`. + +In the url, you can send the `widget` parameter, to ask to open the `widget` if the `true`, or the lightbox, if `false`. + +The complete url with `base 64` `token` and `widget` parameter as `true`. + +```swift +https://sandbox.paywithmybank.com/frontend/mobile/establish?widget=true&token=eyJhY2Nlc3NJZCI6IkE0OEI3M0Y2OTRDNEM4RUU2MzA2IiwicGF5bWVudFR5cGUiOiJSZXRyaWV2YWwiLCJmbG93VHlwZSI6IiIsIm1ldGFkYXRhIjp7InNka0lPU1ZlcnNpb24iOiIzLjMuMCIsInVybFNjaGVtZSI6ImRlbW9hcHA6XC9cLyIsImNpZCI6IjEwRjYtNENFQy1NRVQwWERIUSIsInRoZW1lIjoiZGFyayJ9LCJzZXNzaW9uQ2lkIjoiMTBGNi00NDFBLU1FVDBCV0c0IiwicmV0dXJuVXJsIjoiZGVtb2FwcDpcL1wvIiwicmVxdWVzdFNpZ25hdHVyZSI6IkhUNW1WT3FCWGE4Wmx2Z1gyVVNtUGVMbnM1bz0iLCJ0aGVtZSI6ImRhcmsiLCJ2ZXJzaW9uIjoiMiIsImVudiI6InNhbmRib3giLCJjdXJyZW5jeSI6IlVTRCIsIm1lcmNoYW50SWQiOiIxMTAwMDU1MTQiLCJjYW5jZWxVcmwiOiJkZW1vYXBwOlwvXC8iLCJtZXJjaGFudFJlZmVyZW5jZSI6ImNhYzczZGY3LTUyYjQtNDdkNy04OWQzLTk2MjhkNGNmYjY1ZSIsImVudkhvc3QiOiIxOTIuMTY4LjAuMTMiLCJwYXltZW50UHJvdmlkZXJJZCI6IjIwMDAwNTUwMSIsImdycCI6IjE4Iiwid2lkZ2V0TG9hZGVkIjoidHJ1ZSIsImN1c3RvbWVyIjp7ImFkZHJlc3MiOnsiY291bnRyeSI6IlVTIn0sIm5hbWUiOiJKb2huIn0sImRldmljZVR5cGUiOiJtb2JpbGU6aW9zOm5hdGl2ZSIsImFtb3VudCI6IjEwLjAwIiwiZGVzY3JpcHRpb24iOiJGaXJzdCBEYXRhIE1vYmlsZSBUZXN0In0= +``` + +After built Trustly url, now, you can open widget or lightbox with oAuth component. + We have two solutions to implement a better experience when the app needs to open a new browser window to complete the OAuth login flow. - SFAuthenticationSession for **iOS 9 until 12** diff --git a/resources/in-app-browser-ios-home.png b/resources/in-app-browser-ios-home.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0d89fb675a0475ae7381ea0cb8c6b00134982a GIT binary patch literal 179745 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%0D9cmz5Z}r)U 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 z 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%0A>v=VmNyMU!nEp45a%`Q|R3#=x4 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 literal 0 HcmV?d00001 From 01a7e978d6b6e9fbf2c03ef959d52574882879d4 Mon Sep 17 00:00:00 2001 From: Marcos Rivereto Date: Fri, 29 Aug 2025 15:24:30 -0300 Subject: [PATCH 09/30] Fix typo --- ios-app/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios-app/README.md b/ios-app/README.md index c7c7007..951d1c5 100644 --- a/ios-app/README.md +++ b/ios-app/README.md @@ -91,7 +91,7 @@ After that will be necessary extends the `ASWebAuthenticationPresentationContext And finally, you can implement the method to create the OAuth behavior. ```swift - let webSession = ASWebAuthenticationSession(url: url, callbackURLScheme: calbackURL, completionHandler: { (url, error) in + let webSession = ASWebAuthenticationSession(url: url, callbackURLScheme: callbackURL, completionHandler: { (url, error) in //TODO: add your custom behavior here }) From 695e44fcf38ab4046ca6f6f27ed76604227ebc96 Mon Sep 17 00:00:00 2001 From: Andre Guedes Date: Thu, 4 Sep 2025 14:35:11 -0300 Subject: [PATCH 10/30] Updating dependencies --- android-app/app/build.gradle | 14 +++++++------- android-app/build.gradle | 6 +++--- android-app/gradle.properties | 5 ++++- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/android-app/app/build.gradle b/android-app/app/build.gradle index 6b21ddc..d07abe8 100644 --- a/android-app/app/build.gradle +++ b/android-app/app/build.gradle @@ -5,7 +5,7 @@ plugins { android { namespace 'net.trustly.inappbrowserandroid' - compileSdk 33 + compileSdk 36 defaultConfig { applicationId "net.trustly.inappbrowserandroid" @@ -33,11 +33,11 @@ android { } dependencies { - implementation 'androidx.core:core-ktx:1.10.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.browser:browser:1.5.0' - implementation 'com.google.android.material:material:1.8.0' + implementation 'androidx.core:core-ktx:1.17.0' + implementation 'androidx.appcompat:appcompat:1.7.1' + implementation 'androidx.browser:browser:1.9.0' + implementation 'com.google.android.material:material:1.13.0' testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.1.5' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation 'androidx.test.ext:junit:1.3.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0' } \ No newline at end of file diff --git a/android-app/build.gradle b/android-app/build.gradle index 443cab9..c6995ea 100644 --- a/android-app/build.gradle +++ b/android-app/build.gradle @@ -1,6 +1,6 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id 'com.android.application' version '7.4.1' apply false - id 'com.android.library' version '7.4.1' apply false - id 'org.jetbrains.kotlin.android' version '1.8.0' apply false + id 'com.android.application' version '8.13.0' apply false + id 'com.android.library' version '8.13.0' apply false + id 'org.jetbrains.kotlin.android' version '2.2.10' apply false } \ No newline at end of file diff --git a/android-app/gradle.properties b/android-app/gradle.properties index 3c5031e..e9b648e 100644 --- a/android-app/gradle.properties +++ b/android-app/gradle.properties @@ -20,4 +20,7 @@ kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true \ No newline at end of file +android.nonTransitiveRClass=true +android.nonTransitiveRClass=false +android.defaults.buildfeatures.buildconfig=true +android.nonFinalResIds=false \ No newline at end of file diff --git a/android-app/gradle/wrapper/gradle-wrapper.properties b/android-app/gradle/wrapper/gradle-wrapper.properties index 325907a..3e2dbbc 100644 --- a/android-app/gradle/wrapper/gradle-wrapper.properties +++ b/android-app/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Thu Feb 09 15:08:30 BRT 2023 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME From 5353802e6f5ccf9d505f9d754dfa242e7b5eb9b0 Mon Sep 17 00:00:00 2001 From: Andre Guedes Date: Thu, 4 Sep 2025 14:37:08 -0300 Subject: [PATCH 11/30] Some refactoring --- .../webchromeclient/TrustlyWebView.kt | 9 ++++----- .../webviewclient/WebViewClientActivity.kt | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/android-app/app/src/main/java/net/trustly/inappbrowserandroid/webchromeclient/TrustlyWebView.kt b/android-app/app/src/main/java/net/trustly/inappbrowserandroid/webchromeclient/TrustlyWebView.kt index bff2a82..8a1b4a5 100644 --- a/android-app/app/src/main/java/net/trustly/inappbrowserandroid/webchromeclient/TrustlyWebView.kt +++ b/android-app/app/src/main/java/net/trustly/inappbrowserandroid/webchromeclient/TrustlyWebView.kt @@ -2,15 +2,14 @@ package net.trustly.inappbrowserandroid.webchromeclient import android.annotation.SuppressLint import android.content.Context -import android.net.Uri import android.util.AttributeSet -import android.view.ViewGroup import android.webkit.WebResourceRequest import android.webkit.WebView import android.webkit.WebViewClient import android.widget.LinearLayout import android.widget.RelativeLayout import androidx.browser.customtabs.CustomTabsIntent +import androidx.core.net.toUri import net.trustly.inappbrowserandroid.TrustlyConstants @SuppressLint("SetJavaScriptEnabled") @@ -37,8 +36,8 @@ class TrustlyWebView : LinearLayout { this.layoutParams = RelativeLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT + LayoutParams.MATCH_PARENT, + LayoutParams.MATCH_PARENT ) this.webViewClient = object : WebViewClient() { @@ -65,7 +64,7 @@ class TrustlyWebView : LinearLayout { private fun launchUrl(context: Context, url: String) { val customTabsIntent = CustomTabsIntent.Builder().build() customTabsIntent.intent.setPackage("com.android.chrome") - customTabsIntent.launchUrl(context, Uri.parse(url)) + customTabsIntent.launchUrl(context, url.toUri()) } } \ No newline at end of file diff --git a/android-app/app/src/main/java/net/trustly/inappbrowserandroid/webviewclient/WebViewClientActivity.kt b/android-app/app/src/main/java/net/trustly/inappbrowserandroid/webviewclient/WebViewClientActivity.kt index 730687f..268c5f8 100644 --- a/android-app/app/src/main/java/net/trustly/inappbrowserandroid/webviewclient/WebViewClientActivity.kt +++ b/android-app/app/src/main/java/net/trustly/inappbrowserandroid/webviewclient/WebViewClientActivity.kt @@ -2,12 +2,12 @@ package net.trustly.inappbrowserandroid.webviewclient import android.annotation.SuppressLint import android.content.Context -import android.net.Uri import android.os.Bundle import android.webkit.WebResourceRequest import android.webkit.WebView import android.webkit.WebViewClient import androidx.browser.customtabs.CustomTabsIntent +import androidx.core.net.toUri import net.trustly.inappbrowserandroid.TrustlyConstants import net.trustly.inappbrowserandroid.WebViewBaseActivity @@ -49,7 +49,7 @@ class WebViewClientActivity : WebViewBaseActivity() { private fun launchUrl(context: Context, url: String) { val customTabsIntent = CustomTabsIntent.Builder().build() customTabsIntent.intent.setPackage("com.android.chrome") - customTabsIntent.launchUrl(context, Uri.parse(url)) + customTabsIntent.launchUrl(context, url.toUri()) } } \ No newline at end of file From cf27cf47a326e8a90e4e67dc3bf30373900ac303 Mon Sep 17 00:00:00 2001 From: Andre Guedes Date: Thu, 4 Sep 2025 14:40:22 -0300 Subject: [PATCH 12/30] Changing main screen --- android-app/app/src/main/AndroidManifest.xml | 6 ++---- .../inappbrowserandroid/MainActivity.kt | 11 ++++------ .../app/src/main/res/drawable/globex.png | Bin 0 -> 15492 bytes .../app/src/main/res/layout/activity_main.xml | 19 +++++++++++++----- .../app/src/main/res/values/strings.xml | 4 ++-- 5 files changed, 22 insertions(+), 18 deletions(-) create mode 100644 android-app/app/src/main/res/drawable/globex.png diff --git a/android-app/app/src/main/AndroidManifest.xml b/android-app/app/src/main/AndroidManifest.xml index 9be17b0..9982c1f 100644 --- a/android-app/app/src/main/AndroidManifest.xml +++ b/android-app/app/src/main/AndroidManifest.xml @@ -28,8 +28,7 @@ + android:exported="true" /> @@ -45,8 +44,7 @@ + android:exported="true" /> diff --git a/android-app/app/src/main/java/net/trustly/inappbrowserandroid/MainActivity.kt b/android-app/app/src/main/java/net/trustly/inappbrowserandroid/MainActivity.kt index f178b70..2795e91 100644 --- a/android-app/app/src/main/java/net/trustly/inappbrowserandroid/MainActivity.kt +++ b/android-app/app/src/main/java/net/trustly/inappbrowserandroid/MainActivity.kt @@ -1,11 +1,8 @@ package net.trustly.inappbrowserandroid -import android.content.Intent import android.os.Bundle import android.widget.Button import androidx.appcompat.app.AppCompatActivity -import net.trustly.inappbrowserandroid.webchromeclient.WebChromeClientActivity -import net.trustly.inappbrowserandroid.webviewclient.WebViewClientActivity class MainActivity : AppCompatActivity() { @@ -13,14 +10,14 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - val webViewClientButton = findViewById