From bca4a676354066585cda2b28052f2cff720ed66e Mon Sep 17 00:00:00 2001 From: hari Date: Tue, 6 May 2025 14:42:17 +0530 Subject: [PATCH] patch(setup intent):Add support for cardFromMethodId in confirmSetupIntent --- packages/stripe_web/lib/src/web_stripe.dart | 44 ++++++++++++++------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index 0839122af..b982e0b15 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -254,21 +254,35 @@ class WebStripe extends StripePlatform { PaymentMethodParams data, PaymentMethodOptions? options, ) async { - final response = await data - .maybeWhen>(card: (params) { - final data = stripe_js.ConfirmCardSetupData( - paymentMethod: stripe_js.CardPaymentMethodDetails( - card: element!, - billingDetails: params.billingDetails?.toJs(), - ), - ); - return js.confirmCardSetup( - setupIntentClientSecret, - data: data, - ); - }, orElse: () { - throw UnimplementedError(); - }); + final response = + await data.maybeWhen>( + card: (params) { + final data = stripe_js.ConfirmCardSetupData( + paymentMethod: stripe_js.CardPaymentMethodDetails( + card: element!, + billingDetails: params.billingDetails?.toJs(), + ), + ); + return js.confirmCardSetup( + setupIntentClientSecret, + data: data, + ); + }, + cardFromMethodId: (params) { + final data = stripe_js.ConfirmCardSetupData( + paymentMethod: stripe_js.CardPaymentMethodDetails.id( + params.paymentMethodId, + ), + ); + return js.confirmCardSetup( + setupIntentClientSecret, + data: data, + ); + }, + orElse: () { + throw UnimplementedError(); + }, + ); if (response.error != null) { throw response.error!; }