From 3c25e2d29a8b05bbe156fb8aa06dbb234a41dc56 Mon Sep 17 00:00:00 2001 From: Mark Murray <2034704+markmur@users.noreply.github.com> Date: Wed, 4 Dec 2024 11:11:01 +0000 Subject: [PATCH] [Documentation] Offsite Payments / Universal Links (#250) Add documentation for Offsite Payments / Universal Links --- README.md | 18 +- documentation/media/ios_configuration.png | Bin 0 -> 112531 bytes documentation/universal_links.md | 274 ++++++++++++++++++++++ 3 files changed, 291 insertions(+), 1 deletion(-) create mode 100644 documentation/media/ios_configuration.png create mode 100644 documentation/universal_links.md diff --git a/README.md b/README.md index b812c41f..f8d1a756 100644 --- a/README.md +++ b/README.md @@ -452,7 +452,7 @@ In addition to specifying the line items, the Cart can include buyer identity (n > [!NOTE] > Multipass errors are not "recoverable" (See [Error Handling](#error-handling)) due to their one-time nature. Failed requests containing multipass URLs -> will require re-generating new tokens. +> will require re-generating new tokens. #### Shop Pay @@ -462,6 +462,22 @@ To initialize accelerated Shop Pay checkout, the cart can set a [walletPreferenc We are working on a library to provide buyer sign-in and authentication powered by the [new Customer Account API](https://www.shopify.com/partners/blog/introducing-customer-account-api-for-headless-stores)—stay tuned. +### Offsite Payments + +Certain payment providers finalize transactions by redirecting customers to external banking apps. To enhance the user experience for your buyers, you can set up your storefront to support Universal Links on iOS, allowing customers to be redirected back to your app once the payment is completed. + +See the [Universal Links guide](https://github.com/Shopify/checkout-sheet-kit-swift/blob/main/documentation/universal_links.md) for information on how to get started with adding support for Offsite Payments in your app. + +It is crucial for your app to be configured to handle URL clicks during the checkout process effectively. By default, the kit includes the following delegate method to manage these interactions. This code ensures that external links, such as HTTPS and deep links, are opened correctly by iOS. + +```swift +public func checkoutDidClickLink(url: URL) { + if UIApplication.shared.canOpenURL(url) { + UIApplication.shared.open(url) + } +} +``` + --- ### Contributing diff --git a/documentation/media/ios_configuration.png b/documentation/media/ios_configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcc10fd93695d7a35179491553f5a56e5dafbbd GIT binary patch literal 112531 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 AQ2+n{ literal 0 HcmV?d00001 diff --git a/documentation/universal_links.md b/documentation/universal_links.md new file mode 100644 index 00000000..7b7d5cbd --- /dev/null +++ b/documentation/universal_links.md @@ -0,0 +1,274 @@ +# Universal Links + +- [Universal Links](#universal-links) + - [What are Universal Links?](#what-are-universal-links) + - [Setting Up an Entitlements File for Universal Links](#setting-up-an-entitlements-file-for-universal-links) + - [Steps to Configure the Entitlements File](#steps-to-configure-the-entitlements-file) + - [Points to Consider](#points-to-consider) + - [Configuring Universal Links for your Storefront](#configuring-universal-links-for-your-storefront) + - [Important: The catch-all route `*`](#important-the-catch-all-route-) + - [Handling Universal Links in your app](#handling-universal-links-in-your-app) + - [Security Considerations](#security-considerations) + - [Testing](#testing) + - [Troubleshooting](#troubleshooting) + - [Further Reading and Resources](#further-reading-and-resources) + +## What are Universal Links? + +Universal Links are an iOS feature which allow apps to open links directly in an app rather than sending the user to a browser. This feature provides a seamless user experience by directly engaging app users with relevant content. + +## Setting Up an Entitlements File for Universal Links + +To enable Universal Links in your iOS app, you'll need to configure an entitlements file that specifies the associated domains your app is allowed to handle. Here’s how you can set it up: + +### Steps to Configure the Entitlements File + +1. **Open Your Xcode Project**: + + - Launch Xcode and open your project or workspace file. + +2. **Navigate to Your App Target's Capabilities**: + + - Click on your project in the Project Navigator. + - Select your app target from the list of targets. + - Click on the "Capabilities" tab at the top of the editor. + +3. **Enable Associated Domains**: + + - In the Capabilities section, find "Associated Domains" and toggle the switch to enable it. + - A new section should appear to configure your associated domains. + +4. **Add Your Associated Domains**: + + - Add each domain you want to associate with your app in the format: `applinks:yourdomain.com` + - For example, `applinks:example.com` if your domain is `example.com`. + +5. **Verify the Entitlements File**: + + - Xcode will automatically add an entitlements file to your project if it doesn't exist, or update your existing one. You can verify this by checking for a file named `YourApp.entitlements` in your project. + - Open this file to ensure the associated domains are listed correctly under the `com.apple.developer.associated-domains` entry. + +6. **Build and Run Your App**: + - Make sure your app's provisioning profile includes support for the associated domains capability. + - Build and run your app on a device to test the setup. + +### Points to Consider + +- **HTTPS Requirement**: Ensure all of your associated domains are served over HTTPS. +- **Multiple Domains**: You can list multiple associated domains by adding each one on a new line in the Associated Domains section within Xcode. +- **Testing**: After setting up, test your Universal Links by opening valid URLs on a device to ensure they correctly redirect to your app. + +> [!IMPORTANT] +> +> `.well-known/apple-app-site-association` files will **not** be served from "\*.myshopify.com" domains. +> You must connect a non-myshopify domain under https://admin.shopify.com/settings/domains to serve these files. + +## Configuring Universal Links for your Storefront + +iOS Buy SDK Configuration + +- Start by navigating to your storefront's Admin panel at https://admin.shopify.com/settings/apps/development. +- If an app is already set up, select the appropriate one. If not, proceed to create a new app. +- Within your app's "Configuration" tab, click "Edit" on the "Storefront API" section. +- In the "iOS Buy SDK" section, enter your Apple App ID, activate "Use iOS Universal Links," and upload your Apple app certificate. + +> [!NOTE] +> Your Apple app certificate will ensure the integrity of your apple-app-site-association file. + +The result of configuring Universal Links for your store will be a `.well-known/apple-app-site-association` JSON file served from your public storefront domain. This file informs iOS about the routes that should open directly in your app instead of in a web browser. Apple will periodically fetch this file to configure app routing on buyer's devices. This process is essential for ensuring a seamless app experience when users navigate URLs associated with your app. + +```json +{ + "applinks": { + "apps": [], + "details": [ + { + "appID": "{APPLE_TEAM_ID}.{BUNDLE_IDENTIFIER}", + "paths": [ + "NOT /admin/*", + "NOT /*/amazon_payments/callback", + "NOT /*/checkouts/*/express/callback", + "/*" + ] + } + ] + } +} +``` + +## Important: The catch-all route `*` + +The /\* catch-all route in the configuration indicates that iOS should open any URL from your domain in your app, except for those paths specifically excluded by "NOT" rules. + +- **Exclusions**: URLs like admin paths and payment callbacks are excluded by "NOT" rules to prevent them from opening in the app. +- **Email Links**: Links in emails, such as abandoned carts, will open in your app when clicked. +- **Shared Links**: General web links from your domain will open in your app unless they're specifically excluded. +- **Webview Links**: Links opened in a webview won't trigger the app unless it's set up to support them. +- **Excluded Paths**: URLs like /admin/\* and payment callbacks will open outside the app as specified. + +--- + +## Handling Universal Links in your app + +```swift +func handleUniversalLink(url: URL) { + let storefrontUrl = StorefrontURL(from: url) + + switch true { + /// Checkout URLs + case storefrontUrl.isCheckout() && !storefrontUrl.isThankYouPage(): + presentCheckout(url) + /// Cart URLs + case storefrontUrl.isCart(): + navigateToCart() + /// Open everything else in Safari + default: + if UIApplication.shared.canOpenURL(url) { + UIApplication.shared.open(url) + } + } +} + +// This code is meant as example only. +public struct StorefrontURL { + public let url: URL + + init(from url: URL) { + self.url = url + } + + public func isThankYouPage() -> Bool { + return url.path.range(of: "/thank[-_]you", options: .regularExpression) != nil + } + + public func isCheckout() -> Bool { + return url.path.contains("/checkout") + } + + public func isCart() -> Bool { + return url.path.contains("/cart") + } +} +``` + +
+Handling Universal Links in SwiftUI + +To handle universal links in a SwiftUI application, you can use the `onOpenURL` modifier provided by SwiftUI. This will allow you to specify an action to perform when a URL is opened by your app. + +```swift +// App.swift +import SwiftUI + +@main +struct MyApp: App { + var body: some Scene { + WindowGroup { + ContentView() + .onOpenURL { url in + handleUniversalLink(url: url) + } + } + } + + private func handleUniversalLink(url: URL) { + // Handle the incoming universal link URL + print("Universal link opened: \(url)") + + // Use the URL to navigate within your app, update state, etc. + } +} +``` + +
+ +
+Handling Universal Links in a UIViewController-based App + +In an app using UIViewController, handling universal links can be done by implementing the application`(_:continue:restorationHandler:)` method in your `AppDelegate`. This method gets triggered when a universal link is opened. + +```swift +// AppDelegate.swift +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { + if userActivity.activityType == NSUserActivityTypeBrowsingWeb, + let url = userActivity.webpageURL { + handleUniversalLink(url: url) + return true + } + return false + } + + private func handleUniversalLink(url: URL) { + // Handle the incoming universal link URL + print("Universal link opened: \(url)") + + // You can use the URL to navigate within your app or perform relevant actions + let rootViewController = window?.rootViewController as? UINavigationController + + // Replace the following content with relevant actions for your app + let storyboard = UIStoryboard(name: "Main", bundle: nil) + let viewController = storyboard.instantiateViewController(withIdentifier: "DetailViewController") + rootViewController?.pushViewController(viewController, animated: true) + } +} +``` + +
+ +## Security Considerations + +- **Data Privacy**: + + - Universal Links can pass sensitive information through URLs. Ensure any personal or sensitive data is encrypted or tokenized to protect user privacy. + +- **URL Handling**: + + - Rigorously validate and sanitize any data received from Universal Links to prevent URL injection attacks. Only allow expected URL formats and handle unexpected URLs gracefully. + +- **App Update and Expiry**: + + - Keep your app updated to handle links correctly, and ensure that any links requiring special app capabilities are managed. If a link cannot be handled by the currently installed app, consider providing users with a fallback option or gracefully notifying them. + +- **Testing and Monitoring**: + + - Regularly test the functionality of Universal Links to ensure they are correctly pointing to your app and not opening other apps or browsers with potentially harmful content. + - Monitor your app for any attempts at misuse or abuse of links. + +- **Certificate Management**: + + - Maintain secure and appropriate certificate management practices for your app to prevent unauthorized access or configuration changes related to Universal Links. + +## Testing + +With Universal Links set up, you can test the implementation in the simulator by triggering URLs manually with: + +```sh +xcrun simctl openurl booted https://www.example.com/cart +``` + +## Troubleshooting + +1. Ensure Associated Domains: + +Verify that your app's entitlements file includes the correct associated domains. + +Ensure that the `.well-known/apple-app-site-association` file is accessible by going to "https://{your_storefront_domain}/.well-known/apple-app-site-association". Remember that this file will only be accesible on a custom hosted domain, and not a "*.myshopify.com" domain. + + +2. Universal Links Diagnostics + +See https://developer.apple.com/documentation/technotes/tn3155-debugging-universal-links#Test-universal-links-behavior for more information regarding testing Universal Links. + + +## Further Reading and Resources + +For more comprehensive information, consider visiting: + +- [Apple's Official Universal Links Documentation](https://developer.apple.com/documentation/xcode/supporting-universal-links-in-your-app)