Skip to content

[Feature Request]: Support for Apple Pay on macOS #199

@AdamVyborny

Description

@AdamVyborny

Describe the Feature

Ora is built on SwiftUI/AppKit and uses the WebKit engine, making it uniquely positioned to offer native Apple Pay support that was previously exclusive to Safari. As of macOS 15 (Sequoia) and iOS 18, Apple has expanded Apple Pay capabilities to third-party browsers through the latest Payment Request API.

Use Case

Proposed User Experience

  1. Direct Checkout: On Macs with Touch ID, the native Apple Pay sheet should appear directly within Ora when a merchant’s "Apple Pay" button is clicked.

  2. Continuity Checkout: On older Macs or those without Touch ID, Ora should trigger the Apple-standard QR code overlay, allowing the user to authorize the payment via an iPhone or Apple Watch. 2
 3. Settings Toggle: Add a "Wallet & Payments" section in Ora’s settings to enable/disable Apple Pay detection.

Implementation Complexity & User Impact

Technical Requirements
Payment Request API Integration: Implement the window.ApplePaySession and the W3C Payment Request API within the WebKit container.
 System Entitlements: The app must be configured with the com.apple.developer.in-app-payments entitlement in Xcode to communicate with the macOS PassKit framework.
Fallback for Non-TouchID Macs: Support the "Scan to Pay" feature where Ora displays a QR code for users to complete the transaction on an iPhone/iPad running iOS 18+, which Apple now allows for non-Safari browsers.

Additional Context

Benefits
Parity with Safari: Removes one of the primary "lock-in" factors keeping users on Safari.
Native Feel: Unlike Chromium-based browsers that often struggle with deep macOS integration, Ora’s Swift-based architecture can implement this as a truly native feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions