From 892f9755775a85a1cef6f83a0e414def771e9e02 Mon Sep 17 00:00:00 2001 From: Andrii Vysotskyi Date: Fri, 17 Apr 2026 17:11:55 +0200 Subject: [PATCH 1/2] Allow automatic return url types --- ...ativeAlternativePaymentConfiguration.swift | 22 +++++++++++++++++-- ...tiveAlternativePaymentServiceAdapter.swift | 4 ++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Configuration/PONativeAlternativePaymentConfiguration.swift b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Configuration/PONativeAlternativePaymentConfiguration.swift index e53e3ecf7..b6484d087 100644 --- a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Configuration/PONativeAlternativePaymentConfiguration.swift +++ b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Configuration/PONativeAlternativePaymentConfiguration.swift @@ -20,10 +20,16 @@ public struct PONativeAlternativePaymentConfiguration { public struct Authorization: Sendable { - public init(invoiceId: String, gatewayConfigurationId: String, customerTokenId: String? = nil) { + public init( + invoiceId: String, + gatewayConfigurationId: String, + customerTokenId: String? = nil, + configuration: PONativeAlternativePaymentConfigurationV2 = .init() + ) { self.invoiceId = invoiceId self.gatewayConfigurationId = gatewayConfigurationId self.customerTokenId = customerTokenId + self.configuration = configuration } /// Unique identifier for the invoice associated with this payment request. @@ -34,14 +40,23 @@ public struct PONativeAlternativePaymentConfiguration { /// Customer token ID to use as a payment source. public let customerTokenId: String? + + /// Authorization configuration. + public let configuration: PONativeAlternativePaymentConfigurationV2 } public struct Tokenization: Sendable { - public init(customerId: String, customerTokenId: String, gatewayConfigurationId: String) { + public init( + customerId: String, + customerTokenId: String, + gatewayConfigurationId: String, + configuration: PONativeAlternativePaymentConfigurationV2 = .init() + ) { self.customerId = customerId self.customerTokenId = customerTokenId self.gatewayConfigurationId = gatewayConfigurationId + self.configuration = configuration } /// Customer ID. @@ -52,6 +67,9 @@ public struct PONativeAlternativePaymentConfiguration { /// Gateway configuration identifier. public let gatewayConfigurationId: String + + /// Authorization configuration. + public let configuration: PONativeAlternativePaymentConfigurationV2 } /// Payment authorization flow. diff --git a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/Adapter/DefaultNativeAlternativePaymentServiceAdapter.swift b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/Adapter/DefaultNativeAlternativePaymentServiceAdapter.swift index ca3918a1b..03d74de1d 100644 --- a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/Adapter/DefaultNativeAlternativePaymentServiceAdapter.swift +++ b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/Adapter/DefaultNativeAlternativePaymentServiceAdapter.swift @@ -30,7 +30,7 @@ final class DefaultNativeAlternativePaymentServiceAdapter: NativeAlternativePaym let authorizationRequest = PONativeAlternativePaymentAuthorizationRequestV2( invoiceId: flow.invoiceId, gatewayConfigurationId: flow.gatewayConfigurationId, - configuration: .init(returnRedirectType: .manual), + configuration: flow.configuration, source: flow.customerTokenId, submitData: request.submitData, redirect: request.redirect, @@ -43,7 +43,7 @@ final class DefaultNativeAlternativePaymentServiceAdapter: NativeAlternativePaym customerId: flow.customerId, customerTokenId: flow.customerTokenId, gatewayConfigurationId: flow.gatewayConfigurationId, - configuration: .init(returnRedirectType: .manual), + configuration: flow.configuration, submitData: request.submitData, redirect: request.redirect, localeIdentifier: request.localeIdentifier From e44586ac1ca487cd874e448742f8f65a3f8afa6a Mon Sep 17 00:00:00 2001 From: Andrii Vysotskyi Date: Fri, 17 Apr 2026 17:13:01 +0200 Subject: [PATCH 2/2] Support manual flow as an opt-in --- .../PONativeAlternativePaymentConfigurationV2.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/Sources/ProcessOut/Sources/Repositories/Shared/Requests/AlternativePaymentV2/PONativeAlternativePaymentConfigurationV2.swift b/Sources/ProcessOut/Sources/Repositories/Shared/Requests/AlternativePaymentV2/PONativeAlternativePaymentConfigurationV2.swift index 925feacbe..058eaa196 100644 --- a/Sources/ProcessOut/Sources/Repositories/Shared/Requests/AlternativePaymentV2/PONativeAlternativePaymentConfigurationV2.swift +++ b/Sources/ProcessOut/Sources/Repositories/Shared/Requests/AlternativePaymentV2/PONativeAlternativePaymentConfigurationV2.swift @@ -28,7 +28,6 @@ extension PONativeAlternativePaymentConfigurationV2.ReturnRedirectType { public static let automatic = Self(rawValue: "automatic") /// Redirect result is not processed automatically and should be resolved explicitly. - @_spi(PO) public static let manual = Self(rawValue: "manual") }