diff --git a/Example/PaymentSheet Example/PaymentSheet Example/PlaygroundController.swift b/Example/PaymentSheet Example/PaymentSheet Example/PlaygroundController.swift index ae81842160..f8c8070fee 100644 --- a/Example/PaymentSheet Example/PaymentSheet Example/PlaygroundController.swift +++ b/Example/PaymentSheet Example/PaymentSheet Example/PlaygroundController.swift @@ -214,6 +214,7 @@ class PlaygroundController: ObservableObject { init(settings: PaymentSheetTestPlaygroundSettings) { // Enable experimental payment methods. // PaymentSheet.supportedPaymentMethods += [.link] + PaymentSheet.enableACHV2InDeferredFlow = true // TODO(https://jira.corp.stripe.com/browse/BANKCON-6731) Remove this. // Hack to ensure we don't force the native flow unless we're in a UI test if ProcessInfo.processInfo.environment["UITesting"] == nil { diff --git a/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/PaymentMethodType.swift b/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/PaymentMethodType.swift index 167be95192..41538bff9b 100644 --- a/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/PaymentMethodType.swift +++ b/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/PaymentMethodType.swift @@ -249,6 +249,11 @@ extension PaymentSheet { intent: Intent, supportedPaymentMethods: [STPPaymentMethodType] = PaymentSheet.supportedPaymentMethods ) -> PaymentMethodAvailabilityStatus { + if paymentMethod == .USBankAccount, case .deferredIntent = intent, !PaymentSheet.enableACHV2InDeferredFlow { + // TODO(DeferredIntent): Remove this code when https://jira.corp.stripe.com/browse/BANKCON-6731 is complete + return .notSupported + } + guard let stpPaymentMethodType = paymentMethod.stpPaymentMethodType else { // if the payment method cannot be represented as a `STPPaymentMethodType` attempt to read it // as a dynamic payment method diff --git a/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/PaymentSheet+PaymentMethodAvailability.swift b/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/PaymentSheet+PaymentMethodAvailability.swift index 7c4cd4c624..395c85cb60 100644 --- a/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/PaymentSheet+PaymentMethodAvailability.swift +++ b/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/PaymentSheet+PaymentMethodAvailability.swift @@ -27,6 +27,8 @@ extension PaymentSheet { .UPI, .cashApp, ] + /// Whether to enable ACHv2 in the deferred flow. To be deleted when https://jira.corp.stripe.com/browse/BANKCON-6731 is completed. + @_spi(STP) public static var enableACHV2InDeferredFlow: Bool = false /// An unordered list of paymentMethodtypes that can be used with Link in PaymentSheet /// - Note: This is a var because it depends on the authenticated Link user diff --git a/Tests/ReferenceImages_64/PaymentSheetUITest.PaymentSheetSnapshotTests/testPaymentSheetWithLink_deferredIntent@3x.png b/Tests/ReferenceImages_64/PaymentSheetUITest.PaymentSheetSnapshotTests/testPaymentSheetWithLink_deferredIntent@3x.png index c8f0f31e74..c8fb083f6b 100644 Binary files a/Tests/ReferenceImages_64/PaymentSheetUITest.PaymentSheetSnapshotTests/testPaymentSheetWithLink_deferredIntent@3x.png and b/Tests/ReferenceImages_64/PaymentSheetUITest.PaymentSheetSnapshotTests/testPaymentSheetWithLink_deferredIntent@3x.png differ diff --git a/Tests/ReferenceImages_64/PaymentSheetUITest.PaymentSheetSnapshotTests/testPaymentSheet_deferredIntent@3x.png b/Tests/ReferenceImages_64/PaymentSheetUITest.PaymentSheetSnapshotTests/testPaymentSheet_deferredIntent@3x.png index 4e6d433721..7428f58791 100644 Binary files a/Tests/ReferenceImages_64/PaymentSheetUITest.PaymentSheetSnapshotTests/testPaymentSheet_deferredIntent@3x.png and b/Tests/ReferenceImages_64/PaymentSheetUITest.PaymentSheetSnapshotTests/testPaymentSheet_deferredIntent@3x.png differ