Skip to content

[BUG] PaymentSheet.FlowController is not saving payment methods without making the payment #5196

@ppluskotaBrival

Description

@ppluskotaBrival

Summary

I'm migrating from Stripe 23.x to 24.x. In the app, we had the option to modify user payment methods using STPPaymentOptionsViewController without making a payment. I have updated it to PaymentSheet.FlowController. The user can add new payment methods or modify existing ones there; however, the results are not being saved. Am I doing it correctly, or is there a better way to handle it without making a payment?

Code to reproduce

        var config = PaymentSheet.Configuration()
        config.merchantDisplayName = "company_name"
        config.customer = .init(id: intentData.userId, ephemeralKeySecret: intentData.secret)
        config.returnURL = "return_url"
        config.allowsPaymentMethodsRequiringShippingAddress = true
        
        let intent = PaymentSheet.IntentConfiguration(mode: .setup(currency: "USD", setupFutureUsage: .offSession), confirmHandler: { _, _, intentCreationCallback in
            handleConfirm(intentCreationCallback)
        })
        
        PaymentSheet.FlowController.create(intentConfiguration: intent, configuration: config) { result in
            switch result {
            case .failure(let error):
                controller.showAlert(title: "Sorry", message: error.localizedDescription)
            case .success(let paymentSheetFlowController):
                paymentSheetFlowController.presentPaymentOptions(from: controller)
            }
        }

iOS version

16, 17, 18

Installation method

SPM

SDK version

24.16.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:bugkind:improvementtriagedIssue has been reviewed by Stripe and is being tracked internally

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions