From 07af94b1602aa58c2d62cb639eca2afdeb50f641 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Mon, 10 Jun 2024 11:14:41 +0300 Subject: [PATCH 01/40] add jsonarray case --- .../src/main/kotlin/com/facebook/react/bridge/ReadableMap.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stripe_android/android/src/main/kotlin/com/facebook/react/bridge/ReadableMap.java b/packages/stripe_android/android/src/main/kotlin/com/facebook/react/bridge/ReadableMap.java index 9e76d1a9d..2b882218d 100644 --- a/packages/stripe_android/android/src/main/kotlin/com/facebook/react/bridge/ReadableMap.java +++ b/packages/stripe_android/android/src/main/kotlin/com/facebook/react/bridge/ReadableMap.java @@ -83,7 +83,7 @@ public ReadableType getType(String key) { final Object value = map.get(key); if (value instanceof Boolean) { return ReadableType.Boolean; - } else if (value instanceof Iterable) { + } else if (value instanceof Iterable || (value instanceof JSONArray)) { return ReadableType.Array; } else if (value instanceof Number) { return ReadableType.Number; From 265bc9a9968b339977525fa64677576ec0f0f5f0 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Mon, 10 Jun 2024 11:15:15 +0300 Subject: [PATCH 02/40] update pubspec name --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 874a406f9..87f230af9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,4 +1,4 @@ -name: stripe_workspace +name: flutter_stripe environment: sdk: '>=2.18.0 <4.0.0' From 787fe3fc43c14f4216b466bb96bff0cc414f848b Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Mon, 10 Jun 2024 11:19:46 +0300 Subject: [PATCH 03/40] revert pubspec name --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 87f230af9..874a406f9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,4 +1,4 @@ -name: flutter_stripe +name: stripe_workspace environment: sdk: '>=2.18.0 <4.0.0' From 75eb561733fe7ed3ca90569c44bbf578f0bf61b2 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Mon, 10 Jun 2024 12:02:30 +0300 Subject: [PATCH 04/40] bump version --- packages/stripe_android/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stripe_android/pubspec.yaml b/packages/stripe_android/pubspec.yaml index aa316d5e8..eee5b28b4 100644 --- a/packages/stripe_android/pubspec.yaml +++ b/packages/stripe_android/pubspec.yaml @@ -1,6 +1,6 @@ name: stripe_android description: Stripe platform implementation for Android -version: 10.1.1 +version: 10.1.2 repository: https://github.com/flutter-stripe/flutter_stripe homepage: https://pub.dev/packages/flutter_stripe From 444e7fc91891799ab5fa269dc153b9cecc35968f Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Mon, 10 Jun 2024 12:13:01 +0300 Subject: [PATCH 05/40] update used android version --- packages/stripe/pubspec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/stripe/pubspec.yaml b/packages/stripe/pubspec.yaml index eb3d0756e..d3c26a0ae 100644 --- a/packages/stripe/pubspec.yaml +++ b/packages/stripe/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_stripe description: Flutter library for Stripe. Supports PaymentSheets, Apple & Google Pay, SCA, PSD2 and much more. -version: 10.1.1 +version: 10.1.2 homepage: https://github.com/flutter-stripe/flutter_stripe repository: https://github.com/flutter-stripe/flutter_stripe @@ -22,7 +22,7 @@ dependencies: flutter: sdk: flutter meta: ^1.8.0 - stripe_android: ^10.1.1 + stripe_android: ^10.1.2 stripe_ios: ^10.1.0 stripe_platform_interface: ^10.1.1 dev_dependencies: From dfd9eff3bdff32d50ddc91972c7ff1e4b3c6685b Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Mon, 10 Jun 2024 12:29:30 +0300 Subject: [PATCH 06/40] update changelog --- packages/stripe/CHANGELOG.md | 2 +- packages/stripe_android/CHANGELOG.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/stripe/CHANGELOG.md b/packages/stripe/CHANGELOG.md index efd01267f..94db1b0e6 100644 --- a/packages/stripe/CHANGELOG.md +++ b/packages/stripe/CHANGELOG.md @@ -1,4 +1,4 @@ -## 10.1.1 +## 10.1.2 **Fixes** - #1670 Fix issue when not providing preferredNetworks on `CardField` or `CardForm` diff --git a/packages/stripe_android/CHANGELOG.md b/packages/stripe_android/CHANGELOG.md index 24eeb1c12..92b413412 100644 --- a/packages/stripe_android/CHANGELOG.md +++ b/packages/stripe_android/CHANGELOG.md @@ -1,5 +1,5 @@ -## 10.1.1 -- Fix build error on SDK 34 +## 10.1.2 +- fix Readeable map array type ## 10.1.0 From cfa369e9d4fe853321695efe7ceab7033a74d88f Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Tue, 11 Jun 2024 09:24:41 +0300 Subject: [PATCH 07/40] add temporary run on ui --- .../kotlin/com/reactnativestripesdk/PaymentSheetFragment.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/PaymentSheetFragment.kt b/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/PaymentSheetFragment.kt index 75fabe128..fc332edbf 100644 --- a/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/PaymentSheetFragment.kt +++ b/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/PaymentSheetFragment.kt @@ -141,7 +141,9 @@ class PaymentSheetFragment( putBoolean("shouldSavePaymentMethod", shouldSavePaymentMethod) } - stripeSdkModule.sendEvent(context, "onConfirmHandlerCallback", params) + context.currentActivity?.runOnUiThread { + stripeSdkModule.sendEvent(context, "onConfirmHandlerCallback", params) + } val resultFromJavascript = paymentSheetIntentCreationCallback.await() From 0a9fc5ec59d9c8fe92cac0dcded66e9bfb13e750 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Fri, 14 Jun 2024 09:17:53 +0300 Subject: [PATCH 08/40] set include if null to false --- packages/stripe/pubspec.yaml | 2 +- .../lib/src/models/payment_sheet.dart | 2 +- .../lib/src/models/payment_sheet.freezed.dart | 2 +- .../lib/src/models/payment_sheet.g.dart | 28 +++++++++++++------ .../stripe_platform_interface/pubspec.yaml | 2 +- 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/packages/stripe/pubspec.yaml b/packages/stripe/pubspec.yaml index d3c26a0ae..9f06f33e8 100644 --- a/packages/stripe/pubspec.yaml +++ b/packages/stripe/pubspec.yaml @@ -24,7 +24,7 @@ dependencies: meta: ^1.8.0 stripe_android: ^10.1.2 stripe_ios: ^10.1.0 - stripe_platform_interface: ^10.1.1 + stripe_platform_interface: ^10.1.2 dev_dependencies: flutter_test: sdk: flutter diff --git a/packages/stripe_platform_interface/lib/src/models/payment_sheet.dart b/packages/stripe_platform_interface/lib/src/models/payment_sheet.dart index 61c17b258..2a940c1ab 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_sheet.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_sheet.dart @@ -126,7 +126,7 @@ class IntentConfiguration with _$IntentConfiguration { @freezed class IntentMode with _$IntentMode { - @JsonSerializable(explicitToJson: true) + @JsonSerializable(explicitToJson: true, includeIfNull: false) const factory IntentMode({ required String currencyCode, required int amount, diff --git a/packages/stripe_platform_interface/lib/src/models/payment_sheet.freezed.dart b/packages/stripe_platform_interface/lib/src/models/payment_sheet.freezed.dart index fccd32862..fd9a6550d 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_sheet.freezed.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_sheet.freezed.dart @@ -1228,7 +1228,7 @@ class __$$IntentModeImplCopyWithImpl<$Res> /// @nodoc -@JsonSerializable(explicitToJson: true) +@JsonSerializable(explicitToJson: true, includeIfNull: false) class _$IntentModeImpl implements _IntentMode { const _$IntentModeImpl( {required this.currencyCode, diff --git a/packages/stripe_platform_interface/lib/src/models/payment_sheet.g.dart b/packages/stripe_platform_interface/lib/src/models/payment_sheet.g.dart index ffaadbf5c..20737ed22 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_sheet.g.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_sheet.g.dart @@ -115,20 +115,30 @@ Map _$$IntentConfigurationImplToJson( _$IntentModeImpl _$$IntentModeImplFromJson(Map json) => _$IntentModeImpl( currencyCode: json['currencyCode'] as String, - amount: json['amount'] as int, + amount: (json['amount'] as num).toInt(), setupFutureUsage: $enumDecodeNullable( _$IntentFutureUsageEnumMap, json['setupFutureUsage']), captureMethod: $enumDecodeNullable(_$CaptureMethodEnumMap, json['captureMethod']), ); -Map _$$IntentModeImplToJson(_$IntentModeImpl instance) => - { - 'currencyCode': instance.currencyCode, - 'amount': instance.amount, - 'setupFutureUsage': _$IntentFutureUsageEnumMap[instance.setupFutureUsage], - 'captureMethod': _$CaptureMethodEnumMap[instance.captureMethod], - }; +Map _$$IntentModeImplToJson(_$IntentModeImpl instance) { + final val = { + 'currencyCode': instance.currencyCode, + 'amount': instance.amount, + }; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('setupFutureUsage', + _$IntentFutureUsageEnumMap[instance.setupFutureUsage]); + writeNotNull('captureMethod', _$CaptureMethodEnumMap[instance.captureMethod]); + return val; +} const _$IntentFutureUsageEnumMap = { IntentFutureUsage.OffSession: 'OffSession', @@ -414,7 +424,7 @@ Map _$$PresentParametersImplToJson( _$PaymentSheetPresentOptionsImpl _$$PaymentSheetPresentOptionsImplFromJson( Map json) => _$PaymentSheetPresentOptionsImpl( - timeout: json['timeout'] as int?, + timeout: (json['timeout'] as num?)?.toInt(), ); Map _$$PaymentSheetPresentOptionsImplToJson( diff --git a/packages/stripe_platform_interface/pubspec.yaml b/packages/stripe_platform_interface/pubspec.yaml index 14a23cd76..f10db2148 100644 --- a/packages/stripe_platform_interface/pubspec.yaml +++ b/packages/stripe_platform_interface/pubspec.yaml @@ -1,6 +1,6 @@ name: stripe_platform_interface description: Platform interface for stripe sdk -version: 10.1.1 +version: 10.1.2 repository: https://github.com/flutter-stripe/flutter_stripe homepage: https://pub.dev/packages/flutter_stripe From da0e10cf43a3857455ed64d4947a6d17284e20f7 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Wed, 19 Jun 2024 17:55:14 +0300 Subject: [PATCH 09/40] add creation options --- .../js/elements/element_creation_options.dart | 11 ++++++++ .../lib/src/js/elements/elements.dart | 3 ++- .../lib/src/js/elements/elements_submit.dart | 14 ++++++++++ packages/stripe_js/pubspec.yaml | 2 +- .../lib/src/widgets/payment_element.dart | 26 ++++++++++++++++--- packages/stripe_web/pubspec.yaml | 4 +-- 6 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 packages/stripe_js/lib/src/js/elements/elements_submit.dart diff --git a/packages/stripe_js/lib/src/js/elements/element_creation_options.dart b/packages/stripe_js/lib/src/js/elements/element_creation_options.dart index 1a3a2051e..4d57440ec 100644 --- a/packages/stripe_js/lib/src/js/elements/element_creation_options.dart +++ b/packages/stripe_js/lib/src/js/elements/element_creation_options.dart @@ -12,6 +12,11 @@ abstract class JsElementsCreateOptions { JsArray? fonts, String? locale, String? clientSecret, + int? amount, + String? mode, + String? currency, + List? paymentMethodTypes, + String? paymentMethodCreation, JsElementAppearance? appearance, String loader = "auto", }); @@ -19,6 +24,11 @@ abstract class JsElementsCreateOptions { external JsArray fonts; external String locale; external String clientSecret; + external int amount; + external String mode; + external String currency; + external List paymentMethodTypes; + external String paymentMethodCreation; external JsElementAppearance appearance; } @@ -29,6 +39,7 @@ class JsElementAppearance { external Map? variables; external Map>? rules; external String? labels; + @JS("ElementAppearance") external factory JsElementAppearance({ String? theme, diff --git a/packages/stripe_js/lib/src/js/elements/elements.dart b/packages/stripe_js/lib/src/js/elements/elements.dart index fcb1201f0..926d670d7 100644 --- a/packages/stripe_js/lib/src/js/elements/elements.dart +++ b/packages/stripe_js/lib/src/js/elements/elements.dart @@ -2,6 +2,7 @@ export 'element_base.dart'; export 'element_card.dart'; export 'element_creation_options.dart'; export 'element_payment.dart'; -export 'elements_base.dart'; export 'element_payment_request_button.dart'; +export 'elements_base.dart'; +export 'elements_submit.dart'; export 'styles.dart'; diff --git a/packages/stripe_js/lib/src/js/elements/elements_submit.dart b/packages/stripe_js/lib/src/js/elements/elements_submit.dart new file mode 100644 index 000000000..e6d8a1d56 --- /dev/null +++ b/packages/stripe_js/lib/src/js/elements/elements_submit.dart @@ -0,0 +1,14 @@ +import 'package:js/js.dart'; +import 'package:stripe_js/stripe_js.dart'; + +extension ExtensionElementsSubmit on StripeElements { + _JS get js => this as _JS; + + Future submit() => promiseToFuture(js.submit()); +} + +@anonymous +@JS() +abstract class _JS { + external Promise submit(); +} diff --git a/packages/stripe_js/pubspec.yaml b/packages/stripe_js/pubspec.yaml index 3d9cd3462..5ca430a3c 100644 --- a/packages/stripe_js/pubspec.yaml +++ b/packages/stripe_js/pubspec.yaml @@ -1,6 +1,6 @@ name: stripe_js description: Stripe.js bindings for dart. This package is used by Stripe web so that the Stripe js sdk can be invoked directly. -version: 3.4.0 +version: 3.4.1 homepage: https://github.com/flutter-stripe/flutter_stripe environment: diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index 4d9eb4c4d..4bb1997d3 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -1,18 +1,26 @@ import 'dart:html'; import 'dart:ui_web' as ui; + import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; - -import '../../flutter_stripe_web.dart'; import 'package:stripe_js/stripe_api.dart' as js; import 'package:stripe_js/stripe_js.dart' as js; +import '../../flutter_stripe_web.dart'; + export 'package:stripe_js/stripe_api.dart' show PaymentElementLayout; typedef PaymentElementTheme = js.ElementTheme; class PaymentElement extends StatefulWidget { - final String clientSecret; + final String? clientSecret; + + final int? amount; + final String? currency; + final String? mode; + final String? paymentMethodCreation; + final List? paymentMethodTypes; + final double? width; final double? height; final CardStyle? style; @@ -27,7 +35,12 @@ class PaymentElement extends StatefulWidget { PaymentElement({ super.key, - required this.clientSecret, + this.clientSecret, + this.amount, + this.currency, + this.mode, + this.paymentMethodTypes, + this.paymentMethodCreation, this.width, this.height, this.style, @@ -158,6 +171,11 @@ class PaymentElementState extends State { final appearance = widget.appearance ?? js.ElementAppearance(); return js.JsElementsCreateOptions( clientSecret: widget.clientSecret, + amount: widget.amount, + currency: widget.currency, + mode: widget.mode, + paymentMethodTypes: widget.paymentMethodTypes, + paymentMethodCreation: widget.paymentMethodCreation, appearance: js.jsify(appearance.toJson()) as js.JsElementAppearance, ); } diff --git a/packages/stripe_web/pubspec.yaml b/packages/stripe_web/pubspec.yaml index ba954bba0..e29f412b4 100644 --- a/packages/stripe_web/pubspec.yaml +++ b/packages/stripe_web/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_stripe_web description: Stripe sdk bindings for the Flutter web platform. This package contains the implementation of the platform interface for web. -version: 5.1.0 +version: 5.1.1 homepage: https://github.com/flutter-stripe/flutter_stripe environment: @@ -15,7 +15,7 @@ dependencies: freezed_annotation: ^2.0.3 stripe_platform_interface: ^10.1.1 js: ^0.6.3 - stripe_js: ^3.4.0 + stripe_js: ^3.4.1 dev_dependencies: flutter_test: From d2a5ec7353f2764c6a63de06a1c86892c8678b95 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Thu, 20 Jun 2024 09:58:21 +0300 Subject: [PATCH 10/40] add confirm payment method --- ...ate_payment_method_with_elements_data.dart | 18 ++ ...ent_method_with_elements_data.freezed.dart | 173 ++++++++++++++++++ ...e_payment_method_with_elements_data.g.dart | 36 ++++ .../api/payment_methods/payment_methods.dart | 1 + .../create_payment_method.dart | 1 + .../create_payment_method_with_elements.dart | 35 ++++ .../js/payment_methods/payment_methods.dart | 1 + packages/stripe_web/lib/src/web_stripe.dart | 7 + 8 files changed, 272 insertions(+) create mode 100644 packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart create mode 100644 packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart create mode 100644 packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart create mode 100644 packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart new file mode 100644 index 000000000..5c6d7fab9 --- /dev/null +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart @@ -0,0 +1,18 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; +import 'package:stripe_js/src/api/converters/js_converter.dart'; +import 'package:stripe_js/src/api/elements/elements.dart'; + +part 'create_payment_method_with_elements_data.freezed.dart'; +part 'create_payment_method_with_elements_data.g.dart'; + +@freezed +class CreatePaymentMethodWithElementsData + with _$CreatePaymentMethodWithElementsData { + const factory CreatePaymentMethodWithElementsData({ + @ElementsConverter() Elements elements, + }) = _CreatePaymentMethodWithElementsData; + + factory CreatePaymentMethodWithElementsData.fromJson( + Map json) => + _$CreatePaymentMethodWithElementsDataFromJson(json); +} diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart new file mode 100644 index 000000000..ef1daa43f --- /dev/null +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart @@ -0,0 +1,173 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'create_payment_method_with_elements_data.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models'); + +CreatePaymentMethodWithElementsData + _$CreatePaymentMethodWithElementsDataFromJson(Map json) { + return _CreatePaymentMethodWithElementsData.fromJson(json); +} + +/// @nodoc +mixin _$CreatePaymentMethodWithElementsData { + @ElementsConverter() + Elements? get elements => throw _privateConstructorUsedError; + + Map toJson() => throw _privateConstructorUsedError; + @JsonKey(ignore: true) + $CreatePaymentMethodWithElementsDataCopyWith< + CreatePaymentMethodWithElementsData> + get copyWith => throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $CreatePaymentMethodWithElementsDataCopyWith<$Res> { + factory $CreatePaymentMethodWithElementsDataCopyWith( + CreatePaymentMethodWithElementsData value, + $Res Function(CreatePaymentMethodWithElementsData) then) = + _$CreatePaymentMethodWithElementsDataCopyWithImpl<$Res, + CreatePaymentMethodWithElementsData>; + @useResult + $Res call({@ElementsConverter() Elements? elements}); +} + +/// @nodoc +class _$CreatePaymentMethodWithElementsDataCopyWithImpl<$Res, + $Val extends CreatePaymentMethodWithElementsData> + implements $CreatePaymentMethodWithElementsDataCopyWith<$Res> { + _$CreatePaymentMethodWithElementsDataCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? elements = freezed, + }) { + return _then(_value.copyWith( + elements: freezed == elements + ? _value.elements + : elements // ignore: cast_nullable_to_non_nullable + as Elements?, + ) as $Val); + } +} + +/// @nodoc +abstract class _$$CreatePaymentMethodWithElementsDataImplCopyWith<$Res> + implements $CreatePaymentMethodWithElementsDataCopyWith<$Res> { + factory _$$CreatePaymentMethodWithElementsDataImplCopyWith( + _$CreatePaymentMethodWithElementsDataImpl value, + $Res Function(_$CreatePaymentMethodWithElementsDataImpl) then) = + __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl<$Res>; + @override + @useResult + $Res call({@ElementsConverter() Elements? elements}); +} + +/// @nodoc +class __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl<$Res> + extends _$CreatePaymentMethodWithElementsDataCopyWithImpl<$Res, + _$CreatePaymentMethodWithElementsDataImpl> + implements _$$CreatePaymentMethodWithElementsDataImplCopyWith<$Res> { + __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl( + _$CreatePaymentMethodWithElementsDataImpl _value, + $Res Function(_$CreatePaymentMethodWithElementsDataImpl) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? elements = freezed, + }) { + return _then(_$CreatePaymentMethodWithElementsDataImpl( + elements: freezed == elements + ? _value.elements + : elements // ignore: cast_nullable_to_non_nullable + as Elements?, + )); + } +} + +/// @nodoc +@JsonSerializable() +class _$CreatePaymentMethodWithElementsDataImpl + implements _CreatePaymentMethodWithElementsData { + const _$CreatePaymentMethodWithElementsDataImpl( + {@ElementsConverter() this.elements}); + + factory _$CreatePaymentMethodWithElementsDataImpl.fromJson( + Map json) => + _$$CreatePaymentMethodWithElementsDataImplFromJson(json); + + @override + @ElementsConverter() + final Elements? elements; + + @override + String toString() { + return 'CreatePaymentMethodWithElementsData(elements: $elements)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$CreatePaymentMethodWithElementsDataImpl && + (identical(other.elements, elements) || + other.elements == elements)); + } + + @JsonKey(ignore: true) + @override + int get hashCode => Object.hash(runtimeType, elements); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$CreatePaymentMethodWithElementsDataImplCopyWith< + _$CreatePaymentMethodWithElementsDataImpl> + get copyWith => __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl< + _$CreatePaymentMethodWithElementsDataImpl>(this, _$identity); + + @override + Map toJson() { + return _$$CreatePaymentMethodWithElementsDataImplToJson( + this, + ); + } +} + +abstract class _CreatePaymentMethodWithElementsData + implements CreatePaymentMethodWithElementsData { + const factory _CreatePaymentMethodWithElementsData( + {@ElementsConverter() final Elements? elements}) = + _$CreatePaymentMethodWithElementsDataImpl; + + factory _CreatePaymentMethodWithElementsData.fromJson( + Map json) = + _$CreatePaymentMethodWithElementsDataImpl.fromJson; + + @override + @ElementsConverter() + Elements? get elements; + @override + @JsonKey(ignore: true) + _$$CreatePaymentMethodWithElementsDataImplCopyWith< + _$CreatePaymentMethodWithElementsDataImpl> + get copyWith => throw _privateConstructorUsedError; +} diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart new file mode 100644 index 000000000..5a1aadc23 --- /dev/null +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart @@ -0,0 +1,36 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'create_payment_method_with_elements_data.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +_$CreatePaymentMethodWithElementsDataImpl + _$$CreatePaymentMethodWithElementsDataImplFromJson(Map json) => + _$CreatePaymentMethodWithElementsDataImpl( + elements: const ElementsConverter().fromJson(json['elements']), + ); + +Map _$$CreatePaymentMethodWithElementsDataImplToJson( + _$CreatePaymentMethodWithElementsDataImpl instance) { + final val = {}; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull( + 'elements', + _$JsonConverterToJson( + instance.elements, const ElementsConverter().toJson)); + return val; +} + +Json? _$JsonConverterToJson( + Value? value, + Json? Function(Value value) toJson, +) => + value == null ? null : toJson(value); diff --git a/packages/stripe_js/lib/src/api/payment_methods/payment_methods.dart b/packages/stripe_js/lib/src/api/payment_methods/payment_methods.dart index 7ef80bfd3..38af1932f 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/payment_methods.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/payment_methods.dart @@ -1,4 +1,5 @@ export 'create_payment_method_data.dart'; +export 'create_payment_method_with_elements_data.dart'; export 'payment_method.dart'; export 'payment_method_details.dart'; export 'payment_method_params.dart'; diff --git a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method.dart b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method.dart index eacf0826b..6aff80357 100644 --- a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method.dart +++ b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method.dart @@ -1,6 +1,7 @@ import 'package:js/js.dart'; import 'package:stripe_js/stripe_api.dart'; import 'package:stripe_js/stripe_js.dart'; + import '../utils/utils.dart'; extension ExtensionCreatePaymentMethod on Stripe { diff --git a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart new file mode 100644 index 000000000..1d7d7640d --- /dev/null +++ b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart @@ -0,0 +1,35 @@ +import 'package:js/js.dart'; +import 'package:stripe_js/src/api/payment_methods/create_payment_method_with_elements_data.dart'; +import 'package:stripe_js/stripe_api.dart'; +import 'package:stripe_js/stripe_js.dart'; + +import '../utils/utils.dart'; + +extension ExtensionCreatePaymentMethodWithElements on Stripe { + _JS get js => this as _JS; + + /// Use stripe.createPaymentMethod to convert payment information collected by + /// elements into a PaymentMethod object that you safely pass to your server + /// to use in an API call. + + /// NOTE: In most integrations, you will not need to use this method. Instead, + ///use methods like stripe.confirmPayment, which will automatically create a + /// PaymentMethod when you confirm a PaymentIntent. + /// + /// https://docs.stripe.com/js/payment_methods/create_payment_method_elements + Future createPaymentMethodWithElements( + CreatePaymentMethodWithElementsData data, + ) { + final jsData = jsify(data.toJson()); + + return parsePaymentMethodResponse( + js.createPaymentMethod(jsData), + ); + } +} + +@anonymous +@JS() +abstract class _JS { + external Promise createPaymentMethod(dynamic data); +} diff --git a/packages/stripe_js/lib/src/js/payment_methods/payment_methods.dart b/packages/stripe_js/lib/src/js/payment_methods/payment_methods.dart index 2c942e205..41526a312 100644 --- a/packages/stripe_js/lib/src/js/payment_methods/payment_methods.dart +++ b/packages/stripe_js/lib/src/js/payment_methods/payment_methods.dart @@ -1 +1,2 @@ export 'create_payment_method.dart'; +export 'create_payment_method_with_elements.dart'; diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index 39c1e01df..e0fafbb8f 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -401,6 +401,13 @@ class WebStripe extends StripePlatform { } } + Future elementsSubmit() => elements!.submit(); + + Future createPaymentMethodWithElements() => + js.createPaymentMethodWithElements( + stripe_js.CreatePaymentMethodWithElementsData(elements: elements!), + ); + @override Widget buildCard({ Key? key, From bfcc58c04a9fed45a4af58ac62818ee6c36e5caa Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Thu, 20 Jun 2024 10:03:26 +0300 Subject: [PATCH 11/40] add client secret to confirm payment options --- .../confirm_payment_options.dart | 4 +-- .../confirm_payment_options.freezed.dart | 31 ++++++++++++++++--- .../confirm_payment_options.g.dart | 2 ++ ...ate_payment_method_with_elements_data.dart | 2 +- ...ent_method_with_elements_data.freezed.dart | 26 ++++++++-------- ...e_payment_method_with_elements_data.g.dart | 11 +------ packages/stripe_web/lib/src/web_stripe.dart | 2 ++ 7 files changed, 47 insertions(+), 31 deletions(-) diff --git a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.dart b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.dart index ebb7132ba..ba593a203 100644 --- a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.dart +++ b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.dart @@ -1,8 +1,7 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:stripe_js/src/api/converters/js_converter.dart'; import 'package:stripe_js/stripe_api.dart'; -import 'package:freezed_annotation/freezed_annotation.dart'; - part 'confirm_payment_options.freezed.dart'; part 'confirm_payment_options.g.dart'; @@ -11,6 +10,7 @@ class ConfirmPaymentOptions with _$ConfirmPaymentOptions { const factory ConfirmPaymentOptions({ /// The Elements instance that was used to create the Payment Element. @ElementsConverter() required Elements elements, + String? clientSecret, /// Parameters that will be passed on to the Stripe API. /// Refer to the Payment Intents API for a full list of parameters. diff --git a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.freezed.dart b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.freezed.dart index 6f11f938b..9a20bcc04 100644 --- a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.freezed.dart +++ b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.freezed.dart @@ -12,7 +12,7 @@ part of 'confirm_payment_options.dart'; T _$identity(T value) => value; final _privateConstructorUsedError = UnsupportedError( - 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods'); + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models'); ConfirmPaymentOptions _$ConfirmPaymentOptionsFromJson( Map json) { @@ -24,6 +24,7 @@ mixin _$ConfirmPaymentOptions { /// The Elements instance that was used to create the Payment Element. @ElementsConverter() Elements get elements => throw _privateConstructorUsedError; + String? get clientSecret => throw _privateConstructorUsedError; /// Parameters that will be passed on to the Stripe API. /// Refer to the Payment Intents API for a full list of parameters. @@ -56,6 +57,7 @@ abstract class $ConfirmPaymentOptionsCopyWith<$Res> { @useResult $Res call( {@ElementsConverter() Elements elements, + String? clientSecret, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect}); @@ -77,6 +79,7 @@ class _$ConfirmPaymentOptionsCopyWithImpl<$Res, @override $Res call({ Object? elements = null, + Object? clientSecret = freezed, Object? confirmParams = null, Object? redirect = freezed, }) { @@ -85,6 +88,10 @@ class _$ConfirmPaymentOptionsCopyWithImpl<$Res, ? _value.elements : elements // ignore: cast_nullable_to_non_nullable as Elements, + clientSecret: freezed == clientSecret + ? _value.clientSecret + : clientSecret // ignore: cast_nullable_to_non_nullable + as String?, confirmParams: null == confirmParams ? _value.confirmParams : confirmParams // ignore: cast_nullable_to_non_nullable @@ -116,6 +123,7 @@ abstract class _$$ConfirmPaymentOptionsImplCopyWith<$Res> @useResult $Res call( {@ElementsConverter() Elements elements, + String? clientSecret, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect}); @@ -136,6 +144,7 @@ class __$$ConfirmPaymentOptionsImplCopyWithImpl<$Res> @override $Res call({ Object? elements = null, + Object? clientSecret = freezed, Object? confirmParams = null, Object? redirect = freezed, }) { @@ -144,6 +153,10 @@ class __$$ConfirmPaymentOptionsImplCopyWithImpl<$Res> ? _value.elements : elements // ignore: cast_nullable_to_non_nullable as Elements, + clientSecret: freezed == clientSecret + ? _value.clientSecret + : clientSecret // ignore: cast_nullable_to_non_nullable + as String?, confirmParams: null == confirmParams ? _value.confirmParams : confirmParams // ignore: cast_nullable_to_non_nullable @@ -161,6 +174,7 @@ class __$$ConfirmPaymentOptionsImplCopyWithImpl<$Res> class _$ConfirmPaymentOptionsImpl implements _ConfirmPaymentOptions { const _$ConfirmPaymentOptionsImpl( {@ElementsConverter() required this.elements, + this.clientSecret, required this.confirmParams, this.redirect}); @@ -171,6 +185,8 @@ class _$ConfirmPaymentOptionsImpl implements _ConfirmPaymentOptions { @override @ElementsConverter() final Elements elements; + @override + final String? clientSecret; /// Parameters that will be passed on to the Stripe API. /// Refer to the Payment Intents API for a full list of parameters. @@ -192,16 +208,18 @@ class _$ConfirmPaymentOptionsImpl implements _ConfirmPaymentOptions { @override String toString() { - return 'ConfirmPaymentOptions(elements: $elements, confirmParams: $confirmParams, redirect: $redirect)'; + return 'ConfirmPaymentOptions(elements: $elements, clientSecret: $clientSecret, confirmParams: $confirmParams, redirect: $redirect)'; } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$ConfirmPaymentOptionsImpl && (identical(other.elements, elements) || other.elements == elements) && + (identical(other.clientSecret, clientSecret) || + other.clientSecret == clientSecret) && (identical(other.confirmParams, confirmParams) || other.confirmParams == confirmParams) && (identical(other.redirect, redirect) || @@ -211,7 +229,7 @@ class _$ConfirmPaymentOptionsImpl implements _ConfirmPaymentOptions { @JsonKey(ignore: true) @override int get hashCode => - Object.hash(runtimeType, elements, confirmParams, redirect); + Object.hash(runtimeType, elements, clientSecret, confirmParams, redirect); @JsonKey(ignore: true) @override @@ -231,6 +249,7 @@ class _$ConfirmPaymentOptionsImpl implements _ConfirmPaymentOptions { abstract class _ConfirmPaymentOptions implements ConfirmPaymentOptions { const factory _ConfirmPaymentOptions( {@ElementsConverter() required final Elements elements, + final String? clientSecret, required final ConfirmPaymentParams confirmParams, final PaymentConfirmationRedirect? redirect}) = _$ConfirmPaymentOptionsImpl; @@ -244,6 +263,8 @@ abstract class _ConfirmPaymentOptions implements ConfirmPaymentOptions { @ElementsConverter() Elements get elements; @override + String? get clientSecret; + @override /// Parameters that will be passed on to the Stripe API. /// Refer to the Payment Intents API for a full list of parameters. @@ -367,7 +388,7 @@ class _$ConfirmPaymentParamsImpl implements _ConfirmPaymentParams { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$ConfirmPaymentParamsImpl && diff --git a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.g.dart b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.g.dart index a1718bdd0..77ce119b2 100644 --- a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.g.dart +++ b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.g.dart @@ -9,6 +9,7 @@ part of 'confirm_payment_options.dart'; _$ConfirmPaymentOptionsImpl _$$ConfirmPaymentOptionsImplFromJson(Map json) => _$ConfirmPaymentOptionsImpl( elements: const ElementsConverter().fromJson(json['elements']), + clientSecret: json['clientSecret'] as String?, confirmParams: ConfirmPaymentParams.fromJson( Map.from(json['confirmParams'] as Map)), redirect: $enumDecodeNullable( @@ -26,6 +27,7 @@ Map _$$ConfirmPaymentOptionsImplToJson( } writeNotNull('elements', const ElementsConverter().toJson(instance.elements)); + writeNotNull('clientSecret', instance.clientSecret); val['confirmParams'] = instance.confirmParams.toJson(); writeNotNull( 'redirect', _$PaymentConfirmationRedirectEnumMap[instance.redirect]); diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart index 5c6d7fab9..ac47435b8 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart @@ -9,7 +9,7 @@ part 'create_payment_method_with_elements_data.g.dart'; class CreatePaymentMethodWithElementsData with _$CreatePaymentMethodWithElementsData { const factory CreatePaymentMethodWithElementsData({ - @ElementsConverter() Elements elements, + @ElementsConverter() required Elements elements, }) = _CreatePaymentMethodWithElementsData; factory CreatePaymentMethodWithElementsData.fromJson( diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart index ef1daa43f..e47af5695 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart @@ -22,7 +22,7 @@ CreatePaymentMethodWithElementsData /// @nodoc mixin _$CreatePaymentMethodWithElementsData { @ElementsConverter() - Elements? get elements => throw _privateConstructorUsedError; + Elements get elements => throw _privateConstructorUsedError; Map toJson() => throw _privateConstructorUsedError; @JsonKey(ignore: true) @@ -39,7 +39,7 @@ abstract class $CreatePaymentMethodWithElementsDataCopyWith<$Res> { _$CreatePaymentMethodWithElementsDataCopyWithImpl<$Res, CreatePaymentMethodWithElementsData>; @useResult - $Res call({@ElementsConverter() Elements? elements}); + $Res call({@ElementsConverter() Elements elements}); } /// @nodoc @@ -56,13 +56,13 @@ class _$CreatePaymentMethodWithElementsDataCopyWithImpl<$Res, @pragma('vm:prefer-inline') @override $Res call({ - Object? elements = freezed, + Object? elements = null, }) { return _then(_value.copyWith( - elements: freezed == elements + elements: null == elements ? _value.elements : elements // ignore: cast_nullable_to_non_nullable - as Elements?, + as Elements, ) as $Val); } } @@ -76,7 +76,7 @@ abstract class _$$CreatePaymentMethodWithElementsDataImplCopyWith<$Res> __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl<$Res>; @override @useResult - $Res call({@ElementsConverter() Elements? elements}); + $Res call({@ElementsConverter() Elements elements}); } /// @nodoc @@ -92,13 +92,13 @@ class __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl<$Res> @pragma('vm:prefer-inline') @override $Res call({ - Object? elements = freezed, + Object? elements = null, }) { return _then(_$CreatePaymentMethodWithElementsDataImpl( - elements: freezed == elements + elements: null == elements ? _value.elements : elements // ignore: cast_nullable_to_non_nullable - as Elements?, + as Elements, )); } } @@ -108,7 +108,7 @@ class __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl<$Res> class _$CreatePaymentMethodWithElementsDataImpl implements _CreatePaymentMethodWithElementsData { const _$CreatePaymentMethodWithElementsDataImpl( - {@ElementsConverter() this.elements}); + {@ElementsConverter() required this.elements}); factory _$CreatePaymentMethodWithElementsDataImpl.fromJson( Map json) => @@ -116,7 +116,7 @@ class _$CreatePaymentMethodWithElementsDataImpl @override @ElementsConverter() - final Elements? elements; + final Elements elements; @override String toString() { @@ -155,7 +155,7 @@ class _$CreatePaymentMethodWithElementsDataImpl abstract class _CreatePaymentMethodWithElementsData implements CreatePaymentMethodWithElementsData { const factory _CreatePaymentMethodWithElementsData( - {@ElementsConverter() final Elements? elements}) = + {@ElementsConverter() required final Elements elements}) = _$CreatePaymentMethodWithElementsDataImpl; factory _CreatePaymentMethodWithElementsData.fromJson( @@ -164,7 +164,7 @@ abstract class _CreatePaymentMethodWithElementsData @override @ElementsConverter() - Elements? get elements; + Elements get elements; @override @JsonKey(ignore: true) _$$CreatePaymentMethodWithElementsDataImplCopyWith< diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart index 5a1aadc23..d560d807a 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart @@ -22,15 +22,6 @@ Map _$$CreatePaymentMethodWithElementsDataImplToJson( } } - writeNotNull( - 'elements', - _$JsonConverterToJson( - instance.elements, const ElementsConverter().toJson)); + writeNotNull('elements', const ElementsConverter().toJson(instance.elements)); return val; } - -Json? _$JsonConverterToJson( - Value? value, - Json? Function(Value value) toJson, -) => - value == null ? null : toJson(value); diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index e0fafbb8f..28dc87e63 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -386,10 +386,12 @@ class WebStripe extends StripePlatform { Future confirmPaymentElement( ConfirmPaymentElementOptions options, + String? clientSecret, ) async { final response = await js.confirmPayment( stripe_js.ConfirmPaymentOptions( elements: elements!, + clientSecret: clientSecret, confirmParams: options.confirmParams, redirect: options.redirect, ), From 8457ab5e58f68b37f52cf8628056ec705457be97 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Thu, 20 Jun 2024 10:05:20 +0300 Subject: [PATCH 12/40] make client secret optional --- packages/stripe_web/lib/src/web_stripe.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index 28dc87e63..11ccefdef 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -385,9 +385,9 @@ class WebStripe extends StripePlatform { } Future confirmPaymentElement( - ConfirmPaymentElementOptions options, + ConfirmPaymentElementOptions options, [ String? clientSecret, - ) async { + ]) async { final response = await js.confirmPayment( stripe_js.ConfirmPaymentOptions( elements: elements!, From 2f4a9b21e3fd47536f38a93ea3876e083fc17abf Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Thu, 20 Jun 2024 12:31:26 +0300 Subject: [PATCH 13/40] fix payment element client secret error --- packages/stripe_web/lib/src/widgets/payment_element.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index 4bb1997d3..f8d8dd469 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -169,8 +169,15 @@ class PaymentElementState extends State { js.JsElementsCreateOptions createOptions() { final appearance = widget.appearance ?? js.ElementAppearance(); + + if (widget.clientSecret?.isNotEmpty == true) { + return js.JsElementsCreateOptions( + clientSecret: widget.clientSecret, + appearance: js.jsify(appearance.toJson()) as js.JsElementAppearance, + ); + } + return js.JsElementsCreateOptions( - clientSecret: widget.clientSecret, amount: widget.amount, currency: widget.currency, mode: widget.mode, From 674ef1e3c45d28f6a8486300280e9a84b3af6fe9 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Thu, 20 Jun 2024 15:00:55 +0300 Subject: [PATCH 14/40] add handle next action --- .../payment_intents/handle_next_action.dart | 26 +++++++++++++++++++ .../js/payment_intents/payment_intents.dart | 1 + packages/stripe_web/lib/src/web_stripe.dart | 10 +++++++ 3 files changed, 37 insertions(+) create mode 100644 packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart diff --git a/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart b/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart new file mode 100644 index 000000000..a49e41352 --- /dev/null +++ b/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart @@ -0,0 +1,26 @@ +import 'package:js/js.dart'; +import 'package:stripe_js/stripe_api.dart'; +import 'package:stripe_js/stripe_js.dart'; + +import '../utils/utils.dart'; + +extension ExtensionHandleNextAction on Stripe { + _JS get js => this as _JS; + + /// Use stripe.handleNextAction in the finalizing payments on the server flow + /// to finish confirmation of a PaymentIntent with the requires_action status. + /// It will throw an error if the PaymentIntent has a different status. + + /// Depending on the payment method and required action, the customer may be + /// temporarily redirected from your site and brought back to the return_url + /// parameter provided when the PaymentIntent is confirmed. + Future handleNextAction(String clientSecret) { + return parseIntentResponse(js.handleNextAction(clientSecret)); + } +} + +@anonymous +@JS() +abstract class _JS { + external Promise handleNextAction(dynamic clientSecret); +} diff --git a/packages/stripe_js/lib/src/js/payment_intents/payment_intents.dart b/packages/stripe_js/lib/src/js/payment_intents/payment_intents.dart index 7a2a6e8ee..a85f370ad 100644 --- a/packages/stripe_js/lib/src/js/payment_intents/payment_intents.dart +++ b/packages/stripe_js/lib/src/js/payment_intents/payment_intents.dart @@ -5,4 +5,5 @@ export 'confirm_ideal_payment.dart'; export 'confirm_payment.dart'; export 'confirm_sepa_debit_payment.dart'; export 'handle_card_action.dart'; +export 'handle_next_action.dart'; export 'retrieve_payment_intent.dart'; diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index 11ccefdef..b1ceb2284 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -264,6 +264,16 @@ class WebStripe extends StripePlatform { {String? returnURL}) async { final stripe_js.PaymentIntentResponse response = await _stripe.handleCardAction(paymentIntentClientSecret); + + return response.paymentIntent!.parse(); + } + + Future handleNextActionWithClientSecret( + String paymentIntentClientSecret, + ) async { + final stripe_js.PaymentIntentResponse response = + await _stripe.handleNextAction(paymentIntentClientSecret); + return response.paymentIntent!.parse(); } From 4fc31ddc96056b7c549cc02f85e2d7441fcd2112 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Thu, 20 Jun 2024 15:27:54 +0300 Subject: [PATCH 15/40] use map for handle next action --- .../lib/src/js/payment_intents/handle_next_action.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart b/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart index a49e41352..e2180beda 100644 --- a/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart +++ b/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart @@ -15,7 +15,9 @@ extension ExtensionHandleNextAction on Stripe { /// temporarily redirected from your site and brought back to the return_url /// parameter provided when the PaymentIntent is confirmed. Future handleNextAction(String clientSecret) { - return parseIntentResponse(js.handleNextAction(clientSecret)); + return parseIntentResponse( + js.handleNextAction({'clientSecret': clientSecret}), + ); } } From 803774507417b3a42488026f4062f72cb506fee4 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Thu, 20 Jun 2024 15:45:09 +0300 Subject: [PATCH 16/40] use jsify on map --- .../lib/src/js/payment_intents/handle_next_action.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart b/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart index e2180beda..32f5302be 100644 --- a/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart +++ b/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart @@ -16,7 +16,7 @@ extension ExtensionHandleNextAction on Stripe { /// parameter provided when the PaymentIntent is confirmed. Future handleNextAction(String clientSecret) { return parseIntentResponse( - js.handleNextAction({'clientSecret': clientSecret}), + js.handleNextAction(jsify({'clientSecret': clientSecret})), ); } } From da70e737603eec5ee57f876561675b51485f1717 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Thu, 20 Jun 2024 16:51:56 +0300 Subject: [PATCH 17/40] add retrieve payment intent --- packages/stripe_web/lib/src/web_stripe.dart | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index b1ceb2284..492dd90c9 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -351,8 +351,11 @@ class WebStripe extends StripePlatform { } @override - Future retrievePaymentIntent(String clientSecret) async { - throw UnimplementedError(); + Future retrievePaymentIntent(final String clientSecret) async { + final stripe_js.PaymentIntentResponse response = + await _stripe.retrievePaymentIntent(clientSecret); + + return response.paymentIntent!.parse(); } @override From d55b5b29ddaccdf85d379a1ba061d705391a71ff Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Fri, 21 Jun 2024 13:45:15 +0300 Subject: [PATCH 18/40] move methods to platform interface --- packages/stripe/lib/src/stripe.dart | 11 ++++++++++ .../lib/src/method_channel_stripe.dart | 13 +++++++++++ .../lib/src/stripe_platform_interface.dart | 8 +++++++ packages/stripe_web/lib/src/web_stripe.dart | 22 ++++++++++++++++--- 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/packages/stripe/lib/src/stripe.dart b/packages/stripe/lib/src/stripe.dart index bdbf11b6d..62a3cc1cd 100644 --- a/packages/stripe/lib/src/stripe.dart +++ b/packages/stripe/lib/src/stripe.dart @@ -284,6 +284,16 @@ class Stripe { } } + Future createPaymentMethodWithElements() => + _platform.createPaymentMethodWithElements(); + + Future elementsSubmit() => _platform.elementsSubmit(); + + Future handleNextActionForNonCard( + final String paymentIntentClientSecret, + ) => + _platform.handleNextActionForNonCard(paymentIntentClientSecret); + /// Creates a single-use token that represents a credit card’s details. /// /// Tokens are considered legacy, use [PaymentMethod] and [PaymentIntent] @@ -696,6 +706,7 @@ class Stripe { } bool _needsSettings = true; + void markNeedsSettings() { _needsSettings = true; if (!_platform.updateSettingsLazily) { diff --git a/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart b/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart index 5c316eb88..c7f968400 100644 --- a/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart +++ b/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart @@ -91,6 +91,19 @@ class MethodChannelStripe extends StripePlatform { .parse(result: result!, successResultKey: 'paymentMethod'); } + @override + Future createPaymentMethodWithElements() => + throw UnimplementedError(); + + @override + Future elementsSubmit() => throw UnimplementedError(); + + @override + Future handleNextActionForNonCard( + final String paymentIntentClientSecret, + ) => + throw UnimplementedError(); + @override Future confirmPayment( String paymentIntentClientSecret, diff --git a/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart b/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart index 6f750aae2..4561e8087 100644 --- a/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart +++ b/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart @@ -39,9 +39,15 @@ abstract class StripePlatform extends PlatformInterface { PaymentMethodOptions? options, ]); + Future createPaymentMethodWithElements(); + Future handleNextAction(String paymentIntentClientSecret, {String? returnURL}); + Future handleNextActionForNonCard( + String paymentIntentClientSecret, + ); + Future handleNextActionForSetupIntent( String setupIntentClientSecret, {String? returnURL}); @@ -165,6 +171,8 @@ abstract class StripePlatform extends PlatformInterface { Future collectFinancialConnectionsAccounts( {required String clientSecret}); + Future elementsSubmit(); + /// Updates the internal card details. This method will not validate the card /// information so you should validate the information yourself. /// WARNING!!! Only do this if you're certain that you fulfill the necessary diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index 492dd90c9..378f4537d 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -268,7 +268,8 @@ class WebStripe extends StripePlatform { return response.paymentIntent!.parse(); } - Future handleNextActionWithClientSecret( + @override + Future handleNextActionForNonCard( String paymentIntentClientSecret, ) async { final stripe_js.PaymentIntentResponse response = @@ -418,11 +419,26 @@ class WebStripe extends StripePlatform { Future elementsSubmit() => elements!.submit(); - Future createPaymentMethodWithElements() => - js.createPaymentMethodWithElements( + @override + Future createPaymentMethodWithElements() async { + try { + final response = await js.createPaymentMethodWithElements( stripe_js.CreatePaymentMethodWithElementsData(elements: elements!), ); + if (response.error != null) { + throw response.error!; + } + + print(response); + + return response.paymentMethod!.parse(); + } catch (e) { + dev.log('Error $e'); + rethrow; + } + } + @override Widget buildCard({ Key? key, From e8fdc968b2ebdef384c5e11c6509e19d89931d97 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Tue, 25 Jun 2024 11:56:32 +0300 Subject: [PATCH 19/40] export element appearance --- packages/stripe_web/lib/src/widgets/payment_element.dart | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index f8d8dd469..b3e86edda 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -11,6 +11,8 @@ import '../../flutter_stripe_web.dart'; export 'package:stripe_js/stripe_api.dart' show PaymentElementLayout; typedef PaymentElementTheme = js.ElementTheme; +typedef PaymentElementAppearance = js.ElementAppearance; +typedef PaymentElementAppearanceLabels = js.ElementAppearanceLabels; class PaymentElement extends StatefulWidget { final String? clientSecret; @@ -60,6 +62,7 @@ class PaymentElement extends StatefulWidget { class PaymentElementState extends State { DivElement _divElement = DivElement(); + // 2 is the first size generated by the iframe, O will not work. double height = 2.0; @@ -122,9 +125,11 @@ class PaymentElementState extends State { } js.PaymentElement? get element => WebStripe.element as js.PaymentElement?; + set element(js.StripeElement? value) => WebStripe.element = value; js.StripeElements? get elements => WebStripe.elements; + set elements(js.StripeElements? value) => WebStripe.elements = value; void requestBlur(response) { @@ -145,6 +150,7 @@ class PaymentElementState extends State { } final FocusNode _focusNode = FocusNode(debugLabel: 'CardField'); + FocusNode get _effectiveNode => widget.focusNode ?? _focusNode; @override From 4cef409c5b863b51b3ad3dd8f31f4771544c88b3 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Tue, 25 Jun 2024 14:53:01 +0300 Subject: [PATCH 20/40] expose locale --- packages/stripe_web/lib/src/widgets/payment_element.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index b3e86edda..dbd180a5c 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -34,6 +34,7 @@ class PaymentElement extends StatefulWidget { final CardChangedCallback onCardChanged; final PaymentElementLayout layout; final js.ElementAppearance? appearance; + final String? locale; PaymentElement({ super.key, @@ -54,6 +55,7 @@ class PaymentElement extends StatefulWidget { required this.onCardChanged, this.layout = PaymentElementLayout.accordion, this.appearance, + this.locale, }); @override @@ -180,6 +182,7 @@ class PaymentElementState extends State { return js.JsElementsCreateOptions( clientSecret: widget.clientSecret, appearance: js.jsify(appearance.toJson()) as js.JsElementAppearance, + locale: widget.locale, ); } @@ -190,6 +193,7 @@ class PaymentElementState extends State { paymentMethodTypes: widget.paymentMethodTypes, paymentMethodCreation: widget.paymentMethodCreation, appearance: js.jsify(appearance.toJson()) as js.JsElementAppearance, + locale: widget.locale, ); } From 95b0dc1282606bc44e6c548643258479bcf554d9 Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Wed, 26 Jun 2024 09:28:10 +0300 Subject: [PATCH 21/40] expose billing info --- .../lib/src/widgets/payment_element.dart | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index dbd180a5c..9005cd3b2 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -8,7 +8,12 @@ import 'package:stripe_js/stripe_js.dart' as js; import '../../flutter_stripe_web.dart'; -export 'package:stripe_js/stripe_api.dart' show PaymentElementLayout; +export 'package:stripe_js/stripe_api.dart' + show + PaymentElementLayout, + PaymentElementDefaultValues, + PaymentElementBillingDetails, + PaymentElementBillingDetailsAddress; typedef PaymentElementTheme = js.ElementTheme; typedef PaymentElementAppearance = js.ElementAppearance; @@ -35,6 +40,7 @@ class PaymentElement extends StatefulWidget { final PaymentElementLayout layout; final js.ElementAppearance? appearance; final String? locale; + final PaymentElementDefaultValues? paymentElementDefaultValues; PaymentElement({ super.key, @@ -56,6 +62,7 @@ class PaymentElement extends StatefulWidget { this.layout = PaymentElementLayout.accordion, this.appearance, this.locale, + this.paymentElementDefaultValues, }); @override @@ -198,7 +205,10 @@ class PaymentElementState extends State { } js.PaymentElementOptions elementOptions() { - return js.PaymentElementOptions(layout: widget.layout); + return js.PaymentElementOptions( + layout: widget.layout, + defaultValues: widget.paymentElementDefaultValues, + ); } @override From 8514e41018290b6c7ae0b72e365e4ae66c33fb1c Mon Sep 17 00:00:00 2001 From: EduardDumitrescu Date: Mon, 1 Jul 2024 14:59:34 +0300 Subject: [PATCH 22/40] add update locale for android --- .../reactnativestripesdk/StripeSdkModule.kt | 23 ++++ .../lib/src/models/payment_sheet.dart | 7 ++ .../lib/src/models/payment_sheet.freezed.dart | 111 +++++++++++++----- .../lib/src/models/payment_sheet.g.dart | 4 + 4 files changed, 117 insertions(+), 28 deletions(-) diff --git a/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/StripeSdkModule.kt b/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/StripeSdkModule.kt index f11aeeb4a..15ca5a833 100644 --- a/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/StripeSdkModule.kt +++ b/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/StripeSdkModule.kt @@ -25,6 +25,9 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.json.JSONObject +import android.content.res.Configuration +import android.os.Build +import java.util.Locale @ReactModule(name = StripeSdkModule.NAME) @@ -160,8 +163,28 @@ class StripeSdkModule(val reactContext: ReactApplicationContext) : ReactContextB promise.resolve(null) } + private fun updateLocale(context: ReactApplicationContext, language: String, country: String = "") { + val locale = if (country.isEmpty()) { + Locale(language) + } else { + Locale(language, country) + } + Locale.setDefault(locale) + + val config = context.resources.configuration + config.setLocale(locale) + + context.createConfigurationContext(config) + + context.resources.updateConfiguration(config, context.resources.displayMetrics) + } + @ReactMethod fun initPaymentSheet(params: ReadableMap, promise: Promise) { + params.getString("languageCode")?.let { + updateLocale(reactApplicationContext, it, params.getString("countryCode") ?: "") + } + getCurrentActivityOrResolveWithError(promise)?.let { activity -> paymentSheetFragment?.removeFragment(reactApplicationContext) paymentSheetFragment = PaymentSheetFragment(reactApplicationContext, promise).also { diff --git a/packages/stripe_platform_interface/lib/src/models/payment_sheet.dart b/packages/stripe_platform_interface/lib/src/models/payment_sheet.dart index 27efe1dd2..b8145e53c 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_sheet.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_sheet.dart @@ -106,6 +106,13 @@ class SetupPaymentSheetParameters with _$SetupPaymentSheetParameters { /// The list of preferred networks that should be used to process payments made with a co-branded card. /// This value will only be used if your user hasn't selected a network themselves. @JsonKey(toJson: _cardBrandListToJson) List? preferredNetworks, + + /// set the payment sheet language + String? languageCode, + + /// this can only be used with [languageCode] to give a different + /// variation of a language + String? countryCode, }) = _SetupParameters; factory SetupPaymentSheetParameters.fromJson(Map json) => diff --git a/packages/stripe_platform_interface/lib/src/models/payment_sheet.freezed.dart b/packages/stripe_platform_interface/lib/src/models/payment_sheet.freezed.dart index 3416b5492..d6d25a4c0 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_sheet.freezed.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_sheet.freezed.dart @@ -12,7 +12,7 @@ part of 'payment_sheet.dart'; T _$identity(T value) => value; final _privateConstructorUsedError = UnsupportedError( - 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods'); + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models'); SetupPaymentSheetParameters _$SetupPaymentSheetParametersFromJson( Map json) { @@ -119,6 +119,13 @@ mixin _$SetupPaymentSheetParameters { @JsonKey(toJson: _cardBrandListToJson) List? get preferredNetworks => throw _privateConstructorUsedError; + /// set the payment sheet language + String? get languageCode => throw _privateConstructorUsedError; + + /// this can only be used with [languageCode] to give a different + /// variation of a language + String? get countryCode => throw _privateConstructorUsedError; + Map toJson() => throw _privateConstructorUsedError; @JsonKey(ignore: true) $SetupPaymentSheetParametersCopyWith @@ -154,8 +161,9 @@ abstract class $SetupPaymentSheetParametersCopyWith<$Res> { BillingDetailsCollectionConfiguration? billingDetailsCollectionConfiguration, String? removeSavedPaymentMethodMessage, - @JsonKey(toJson: _cardBrandListToJson) - List? preferredNetworks}); + @JsonKey(toJson: _cardBrandListToJson) List? preferredNetworks, + String? languageCode, + String? countryCode}); $IntentConfigurationCopyWith<$Res>? get intentConfiguration; $PaymentSheetApplePayCopyWith<$Res>? get applePay; @@ -200,6 +208,8 @@ class _$SetupPaymentSheetParametersCopyWithImpl<$Res, Object? billingDetailsCollectionConfiguration = freezed, Object? removeSavedPaymentMethodMessage = freezed, Object? preferredNetworks = freezed, + Object? languageCode = freezed, + Object? countryCode = freezed, }) { return _then(_value.copyWith( customFlow: null == customFlow @@ -285,6 +295,14 @@ class _$SetupPaymentSheetParametersCopyWithImpl<$Res, ? _value.preferredNetworks : preferredNetworks // ignore: cast_nullable_to_non_nullable as List?, + languageCode: freezed == languageCode + ? _value.languageCode + : languageCode // ignore: cast_nullable_to_non_nullable + as String?, + countryCode: freezed == countryCode + ? _value.countryCode + : countryCode // ignore: cast_nullable_to_non_nullable + as String?, ) as $Val); } @@ -394,8 +412,9 @@ abstract class _$$SetupParametersImplCopyWith<$Res> BillingDetailsCollectionConfiguration? billingDetailsCollectionConfiguration, String? removeSavedPaymentMethodMessage, - @JsonKey(toJson: _cardBrandListToJson) - List? preferredNetworks}); + @JsonKey(toJson: _cardBrandListToJson) List? preferredNetworks, + String? languageCode, + String? countryCode}); @override $IntentConfigurationCopyWith<$Res>? get intentConfiguration; @@ -443,6 +462,8 @@ class __$$SetupParametersImplCopyWithImpl<$Res> Object? billingDetailsCollectionConfiguration = freezed, Object? removeSavedPaymentMethodMessage = freezed, Object? preferredNetworks = freezed, + Object? languageCode = freezed, + Object? countryCode = freezed, }) { return _then(_$SetupParametersImpl( customFlow: null == customFlow @@ -528,6 +549,14 @@ class __$$SetupParametersImplCopyWithImpl<$Res> ? _value._preferredNetworks : preferredNetworks // ignore: cast_nullable_to_non_nullable as List?, + languageCode: freezed == languageCode + ? _value.languageCode + : languageCode // ignore: cast_nullable_to_non_nullable + as String?, + countryCode: freezed == countryCode + ? _value.countryCode + : countryCode // ignore: cast_nullable_to_non_nullable + as String?, )); } } @@ -557,7 +586,9 @@ class _$SetupParametersImpl implements _SetupParameters { this.billingDetailsCollectionConfiguration, this.removeSavedPaymentMethodMessage, @JsonKey(toJson: _cardBrandListToJson) - final List? preferredNetworks}) + final List? preferredNetworks, + this.languageCode, + this.countryCode}) : _paymentMethodOrder = paymentMethodOrder, _preferredNetworks = preferredNetworks; @@ -705,13 +736,22 @@ class _$SetupParametersImpl implements _SetupParameters { return EqualUnmodifiableListView(value); } + /// set the payment sheet language + @override + final String? languageCode; + + /// this can only be used with [languageCode] to give a different + /// variation of a language + @override + final String? countryCode; + @override String toString() { - return 'SetupPaymentSheetParameters(customFlow: $customFlow, customerId: $customerId, primaryButtonLabel: $primaryButtonLabel, customerEphemeralKeySecret: $customerEphemeralKeySecret, paymentIntentClientSecret: $paymentIntentClientSecret, setupIntentClientSecret: $setupIntentClientSecret, intentConfiguration: $intentConfiguration, merchantDisplayName: $merchantDisplayName, applePay: $applePay, style: $style, googlePay: $googlePay, allowsDelayedPaymentMethods: $allowsDelayedPaymentMethods, appearance: $appearance, billingDetails: $billingDetails, allowsRemovalOfLastSavedPaymentMethod: $allowsRemovalOfLastSavedPaymentMethod, paymentMethodOrder: $paymentMethodOrder, returnURL: $returnURL, billingDetailsCollectionConfiguration: $billingDetailsCollectionConfiguration, removeSavedPaymentMethodMessage: $removeSavedPaymentMethodMessage, preferredNetworks: $preferredNetworks)'; + return 'SetupPaymentSheetParameters(customFlow: $customFlow, customerId: $customerId, primaryButtonLabel: $primaryButtonLabel, customerEphemeralKeySecret: $customerEphemeralKeySecret, paymentIntentClientSecret: $paymentIntentClientSecret, setupIntentClientSecret: $setupIntentClientSecret, intentConfiguration: $intentConfiguration, merchantDisplayName: $merchantDisplayName, applePay: $applePay, style: $style, googlePay: $googlePay, allowsDelayedPaymentMethods: $allowsDelayedPaymentMethods, appearance: $appearance, billingDetails: $billingDetails, allowsRemovalOfLastSavedPaymentMethod: $allowsRemovalOfLastSavedPaymentMethod, paymentMethodOrder: $paymentMethodOrder, returnURL: $returnURL, billingDetailsCollectionConfiguration: $billingDetailsCollectionConfiguration, removeSavedPaymentMethodMessage: $removeSavedPaymentMethodMessage, preferredNetworks: $preferredNetworks, languageCode: $languageCode, countryCode: $countryCode)'; } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$SetupParametersImpl && @@ -757,7 +797,9 @@ class _$SetupParametersImpl implements _SetupParameters { (identical(other.removeSavedPaymentMethodMessage, removeSavedPaymentMethodMessage) || other.removeSavedPaymentMethodMessage == removeSavedPaymentMethodMessage) && - const DeepCollectionEquality().equals(other._preferredNetworks, _preferredNetworks)); + const DeepCollectionEquality().equals(other._preferredNetworks, _preferredNetworks) && + (identical(other.languageCode, languageCode) || other.languageCode == languageCode) && + (identical(other.countryCode, countryCode) || other.countryCode == countryCode)); } @JsonKey(ignore: true) @@ -783,7 +825,9 @@ class _$SetupParametersImpl implements _SetupParameters { returnURL, billingDetailsCollectionConfiguration, removeSavedPaymentMethodMessage, - const DeepCollectionEquality().hash(_preferredNetworks) + const DeepCollectionEquality().hash(_preferredNetworks), + languageCode, + countryCode ]); @JsonKey(ignore: true) @@ -825,7 +869,9 @@ abstract class _SetupParameters implements SetupPaymentSheetParameters { billingDetailsCollectionConfiguration, final String? removeSavedPaymentMethodMessage, @JsonKey(toJson: _cardBrandListToJson) - final List? preferredNetworks}) = _$SetupParametersImpl; + final List? preferredNetworks, + final String? languageCode, + final String? countryCode}) = _$SetupParametersImpl; factory _SetupParameters.fromJson(Map json) = _$SetupParametersImpl.fromJson; @@ -945,6 +991,15 @@ abstract class _SetupParameters implements SetupPaymentSheetParameters { @JsonKey(toJson: _cardBrandListToJson) List? get preferredNetworks; @override + + /// set the payment sheet language + String? get languageCode; + @override + + /// this can only be used with [languageCode] to give a different + /// variation of a language + String? get countryCode; + @override @JsonKey(ignore: true) _$$SetupParametersImplCopyWith<_$SetupParametersImpl> get copyWith => throw _privateConstructorUsedError; @@ -1130,7 +1185,7 @@ class _$IntentConfigurationImpl implements _IntentConfiguration { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$IntentConfigurationImpl && @@ -1350,7 +1405,7 @@ class _$IntentModeImpl implements _IntentMode { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$IntentModeImpl && @@ -1636,7 +1691,7 @@ class _$PaymentSheetApplePayImpl implements _PaymentSheetApplePay { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetApplePayImpl && @@ -1928,7 +1983,7 @@ class _$PaymentSheetGooglePayImpl implements _PaymentSheetGooglePay { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetGooglePayImpl && @@ -2201,7 +2256,7 @@ class _$PaymentSheetAppearanceImpl implements _PaymentSheetAppearance { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetAppearanceImpl && @@ -2631,7 +2686,7 @@ class _$PaymentSheetAppearanceColorsImpl } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetAppearanceColorsImpl && @@ -2941,7 +2996,7 @@ class _$PaymentSheetShapeImpl implements _PaymentSheetShape { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetShapeImpl && @@ -3169,7 +3224,7 @@ class _$PaymentSheetShadowParamsImpl implements _PaymentSheetShadowParams { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetShadowParamsImpl && @@ -3348,7 +3403,7 @@ class _$PaymentSheetShadowOffsetImpl implements _PaymentSheetShadowOffset { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetShadowOffsetImpl && @@ -3563,7 +3618,7 @@ class _$PaymentSheetPrimaryButtonAppearanceImpl } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetPrimaryButtonAppearanceImpl && @@ -3784,7 +3839,7 @@ class _$PaymentSheetPrimaryButtonShapeImpl } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetPrimaryButtonShapeImpl && @@ -4010,7 +4065,7 @@ class _$PaymentSheetPrimaryButtonThemeImpl } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetPrimaryButtonThemeImpl && @@ -4229,7 +4284,7 @@ class _$PaymentSheetPrimaryButtonThemeColorsImpl } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetPrimaryButtonThemeColorsImpl && @@ -4430,7 +4485,7 @@ class _$PresentParametersImpl implements _PresentParameters { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PresentParametersImpl && @@ -4600,7 +4655,7 @@ class _$PaymentSheetPresentOptionsImpl implements _PaymentSheetPresentOptions { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetPresentOptionsImpl && @@ -4769,7 +4824,7 @@ class _$PaymentSheetPaymentOptionImpl implements _PaymentSheetPaymentOption { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$PaymentSheetPaymentOptionImpl && @@ -5031,7 +5086,7 @@ class _$BillingDetailsCollectionConfigurationImpl } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && other is _$BillingDetailsCollectionConfigurationImpl && diff --git a/packages/stripe_platform_interface/lib/src/models/payment_sheet.g.dart b/packages/stripe_platform_interface/lib/src/models/payment_sheet.g.dart index 887c27c43..afefe7826 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_sheet.g.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_sheet.g.dart @@ -56,6 +56,8 @@ _$SetupParametersImpl _$$SetupParametersImplFromJson( preferredNetworks: (json['preferredNetworks'] as List?) ?.map((e) => $enumDecode(_$CardBrandEnumMap, e)) .toList(), + languageCode: json['languageCode'] as String?, + countryCode: json['countryCode'] as String?, ); Map _$$SetupParametersImplToJson( @@ -84,6 +86,8 @@ Map _$$SetupParametersImplToJson( 'removeSavedPaymentMethodMessage': instance.removeSavedPaymentMethodMessage, 'preferredNetworks': _cardBrandListToJson(instance.preferredNetworks), + 'languageCode': instance.languageCode, + 'countryCode': instance.countryCode, }; const _$ThemeModeEnumMap = { From e8de3e7652d26f3f5e9a733f09d236fd88c15691 Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Fri, 12 Jul 2024 18:04:28 +0300 Subject: [PATCH 23/40] add changelogs --- packages/stripe/CHANGELOG.md | 9 +++++++++ packages/stripe_android/CHANGELOG.md | 1 + packages/stripe_js/CHANGELOG.md | 4 ++++ packages/stripe_platform_interface/CHANGELOG.md | 9 +++++++++ packages/stripe_web/CHANGELOG.md | 5 +++++ packages/stripe_web/pubspec.yaml | 2 +- 6 files changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/stripe/CHANGELOG.md b/packages/stripe/CHANGELOG.md index 6dbf2ec72..c63e8ea84 100644 --- a/packages/stripe/CHANGELOG.md +++ b/packages/stripe/CHANGELOG.md @@ -1,5 +1,14 @@ ## 10.2.0 +**Features** +- Add locale change to Android +**Fixes** +- Fix: payment methods can now be filtered on android +- Fix: on ios payment types like 'ideal' now work due + + +## 10.2.0 + **Features** - Sync with Stripe [0.38.0](https://github.com/stripe/stripe-react-native/releases/tag/v0.38.0): - Adds support for paymentMethodOrder in PaymentSheet, which provides client side sorting of payment methods. diff --git a/packages/stripe_android/CHANGELOG.md b/packages/stripe_android/CHANGELOG.md index 022c2b7cc..9cc2549c9 100644 --- a/packages/stripe_android/CHANGELOG.md +++ b/packages/stripe_android/CHANGELOG.md @@ -2,6 +2,7 @@ **Fixes** - Fixing elements filtering using provided payment methods +- Add locale change ## 10.2.1 **Fixes** diff --git a/packages/stripe_js/CHANGELOG.md b/packages/stripe_js/CHANGELOG.md index 445713c44..ea61514d0 100644 --- a/packages/stripe_js/CHANGELOG.md +++ b/packages/stripe_js/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.4.1 +**Features** +- add method for deferred payment + ## 3.4.0 **Features** - #1122 Add google pay and apple pay for web diff --git a/packages/stripe_platform_interface/CHANGELOG.md b/packages/stripe_platform_interface/CHANGELOG.md index 6dbf2ec72..c60505295 100644 --- a/packages/stripe_platform_interface/CHANGELOG.md +++ b/packages/stripe_platform_interface/CHANGELOG.md @@ -1,3 +1,12 @@ +## 10.2.1 + +**Features** +- add methods for deferred payment on web +- add locale change for android payment sheet +**Fixes** +- Fix: fix 'setupFutureUsage' value for ios (this makes payment types like 'ideal' usable, would +- throw an error otherwise) + ## 10.2.0 **Features** diff --git a/packages/stripe_web/CHANGELOG.md b/packages/stripe_web/CHANGELOG.md index 425986c4d..9bff167ac 100644 --- a/packages/stripe_web/CHANGELOG.md +++ b/packages/stripe_web/CHANGELOG.md @@ -1,3 +1,8 @@ +## 5.2.1 + +**Features** +- add methods for deferred payments + ## 5.1.0 **Features** diff --git a/packages/stripe_web/pubspec.yaml b/packages/stripe_web/pubspec.yaml index 12a7ed838..aaee231be 100644 --- a/packages/stripe_web/pubspec.yaml +++ b/packages/stripe_web/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: flutter_web_plugins: sdk: flutter freezed_annotation: ^2.0.3 - stripe_platform_interface: ^10.1.1 + stripe_platform_interface: ^10.2.1 js: ^0.6.3 stripe_js: ^3.4.1 From 272c61afd34270c98f84eb377f4cfef6a5c86527 Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Wed, 24 Jul 2024 14:03:47 +0300 Subject: [PATCH 24/40] refactor to fix payment request no such method on web release --- .../js/payment_requests/payment_request.dart | 23 ++++--------------- packages/stripe_js/lib/src/js/stripe.dart | 2 ++ packages/stripe_web/lib/src/web_stripe.dart | 4 ++-- .../lib/src/widgets/platform_pay_button.dart | 2 +- 4 files changed, 10 insertions(+), 21 deletions(-) diff --git a/packages/stripe_js/lib/src/js/payment_requests/payment_request.dart b/packages/stripe_js/lib/src/js/payment_requests/payment_request.dart index e70c77fe3..6548f5db0 100644 --- a/packages/stripe_js/lib/src/js/payment_requests/payment_request.dart +++ b/packages/stripe_js/lib/src/js/payment_requests/payment_request.dart @@ -3,16 +3,6 @@ import 'package:stripe_js/src/js/utils/parse_intent_response.dart'; import 'package:stripe_js/stripe_api.dart'; import 'package:stripe_js/stripe_js.dart'; -extension PaymentRequestExtension on Stripe { - _JS get _js => this as _JS; - - PaymentRequest paymentRequest( - PaymentRequestCreateOptions options, - ) { - return PaymentRequest.of(_js.paymentRequest(options)); - } -} - class PaymentRequest { final JsPaymentRequest _js; @@ -51,14 +41,6 @@ class PaymentResponse { Function(String complete) get complete => _js.complete; } -@anonymous -@JS() -abstract class _JS { - external JsPaymentRequest paymentRequest( - PaymentRequestCreateOptions options, - ); -} - @anonymous @JS() abstract class JsPaymentResponse { @@ -76,6 +58,11 @@ abstract class JsPaymentRequest { external void on(String event, dynamic callback); } +extension JsPaymentRequestExtension on JsPaymentRequest { + PaymentRequest get toPaymentRequest => + PaymentRequest.of(this); +} + @anonymous @JS() abstract class CanMakePaymentResponse { diff --git a/packages/stripe_js/lib/src/js/stripe.dart b/packages/stripe_js/lib/src/js/stripe.dart index 909ec7833..ce9cc054a 100644 --- a/packages/stripe_js/lib/src/js/stripe.dart +++ b/packages/stripe_js/lib/src/js/stripe.dart @@ -20,6 +20,8 @@ class Stripe { external StripeElements elements([JsElementsCreateOptions options]); + external JsPaymentRequest paymentRequest([PaymentRequestCreateOptions options]); + external String? get stripeAccount; external set stripeAccount(String? stripeAccount); } diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index 63d4426a0..b056cc423 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -549,7 +549,7 @@ class WebStripe extends StripePlatform { }) { final paymentRequest = js.paymentRequest((paymentRequestOptions ?? PlatformPayWebPaymentRequestCreateOptions.defaultOptions) - .toJS()); + .toJS()).toPaymentRequest; return paymentRequest.isPaymentAvailable; } @@ -580,7 +580,7 @@ class WebStripe extends StripePlatform { Completer completer = Completer(); stripe_js.PaymentRequest paymentRequest = - js.paymentRequest(params.options.toJS()); + js.paymentRequest(params.options.toJS()).toPaymentRequest; paymentRequest.onPaymentMethod((response) { completer.complete(PlatformPayPaymentMethod( paymentMethod: response.paymentMethod.parse())); diff --git a/packages/stripe_web/lib/src/widgets/platform_pay_button.dart b/packages/stripe_web/lib/src/widgets/platform_pay_button.dart index 7cc1daaa6..6b3d1355f 100644 --- a/packages/stripe_web/lib/src/widgets/platform_pay_button.dart +++ b/packages/stripe_web/lib/src/widgets/platform_pay_button.dart @@ -61,7 +61,7 @@ class _WebPlatformPayButtonState extends State { _initButton() { ambiguate(WidgetsBinding.instance)?.addPostFrameCallback((timeStamp) { PaymentRequest paymentRequest = WebStripe.js - .paymentRequest((widget.paymentRequestCreateOptions).toJS()); + .paymentRequest((widget.paymentRequestCreateOptions).toJS()).toPaymentRequest; paymentRequest.canMakePayment().then((value) { WebStripe.js.elements().createPaymentRequestButton( From 37e7f81b2fe2abd9108c9240fb2b3a58e008a900 Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Thu, 25 Jul 2024 11:07:58 +0300 Subject: [PATCH 25/40] expose available mobile pay --- ...ogle_pay_create_payment_method_screen.dart | 115 +++++++++++ packages/stripe/lib/src/stripe.dart | 12 ++ .../lib/src/method_channel_stripe.dart | 23 +++ .../models/available_mobile_pay_options.dart | 12 ++ .../available_mobile_pay_options.freezed.dart | 178 ++++++++++++++++++ .../lib/src/stripe_platform_interface.dart | 5 + .../lib/stripe_platform_interface.dart | 1 + packages/stripe_web/lib/src/web_stripe.dart | 28 ++- 8 files changed, 371 insertions(+), 3 deletions(-) create mode 100644 example/lib/screens/wallets/google_pay_create_payment_method_screen.dart create mode 100644 packages/stripe_platform_interface/lib/src/models/available_mobile_pay_options.dart create mode 100644 packages/stripe_platform_interface/lib/src/models/available_mobile_pay_options.freezed.dart diff --git a/example/lib/screens/wallets/google_pay_create_payment_method_screen.dart b/example/lib/screens/wallets/google_pay_create_payment_method_screen.dart new file mode 100644 index 000000000..7dbfee162 --- /dev/null +++ b/example/lib/screens/wallets/google_pay_create_payment_method_screen.dart @@ -0,0 +1,115 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_stripe/flutter_stripe.dart'; +import 'package:stripe_example/widgets/example_scaffold.dart'; +import 'package:stripe_example/widgets/response_card.dart'; + +class GooglePayCreatePaymentMethodScreen extends StatefulWidget { + const GooglePayCreatePaymentMethodScreen({super.key}); + + @override + State createState() => + _GooglePayCreatePaymentMethodScreenState(); +} + +class _GooglePayCreatePaymentMethodScreenState + extends State { + PlatformPayPaymentMethod? response; + + @override + void initState() { + Stripe.instance.isPlatformPaySupportedListenable.addListener(update); + isAvailable(); + super.initState(); + } + + @override + void dispose() { + Stripe.instance.isPlatformPaySupportedListenable.removeListener(update); + super.dispose(); + } + + void update() { + setState(() {}); + } + + Future isAvailable() async { + try { + final isAvailable = await Stripe.instance.isPlatformPaySupported(); + print('wallet pay is available: $isAvailable'); + } catch (e) { + print('Wallet pay not available with error: $e'); + } + + try { + final options = await Stripe.instance.availableMobilePayOptions(); + print('wallet pay options: $options'); + } catch (e) { + print('Wallet pay options not available with error: $e'); + } + } + + @override + Widget build(BuildContext context) { + return ExampleScaffold( + title: 'Google Pay', + tags: ['Android'], + padding: EdgeInsets.all(16), + children: [ + // if (Stripe.instance.isPlatformPaySupportedListenable.value) + SizedBox( + height: 77, + width: 30, + // child: PlatformPayButton( + // type: PlatformButtonType.googlePayMark, + // onPressed: _handlePayPress, + // ), + child: ElevatedButton( + child: Text('Pay'), + onPressed: _handlePayPress, + ), + ), + // else + // Text('Google Pay is not available in this device'), + SizedBox( + height: 50, + ), + Text('hello there'), + ResponseCard(response: response?.toString() ?? ''), + ], + ); + } + + Future _handlePayPress() async { + // 1. create payment method + + final paymentMethod = await Stripe.instance.createPlatformPayPaymentMethod( + // params: PlatformPayPaymentMethodParams.googlePay( + // googlePayParams: GooglePayParams( + // testEnv: true, + // merchantCountryCode: 'de', + // currencyCode: 'eur', + // ), + // googlePayPaymentMethodParams: + // GooglePayPaymentMethodParams(amount: 1523), + // ), + params: PlatformPayPaymentMethodParams.web( + options: PlatformPayWebPaymentRequestCreateOptions( + country: 'DE', + currency: 'eur', + total: PlatformPayWebPaymentItem( + amount: 1521, + label: 'hello', + ), + ), + ), + ); + + setState(() { + response = paymentMethod; + }); + + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text( + 'Success!: The payment method with id: ${paymentMethod.paymentMethod.id} was created successfully,'))); + } +} diff --git a/packages/stripe/lib/src/stripe.dart b/packages/stripe/lib/src/stripe.dart index 62a3cc1cd..d84046273 100644 --- a/packages/stripe/lib/src/stripe.dart +++ b/packages/stripe/lib/src/stripe.dart @@ -141,6 +141,18 @@ class Stripe { return isSupported; } + Future availableMobilePayOptions({ + IsGooglePaySupportedParams? googlePay, + PlatformPayWebPaymentRequestCreateOptions? webPaymentRequestCreateOptions, + }) async { + await _awaitForSettings(); + + return await _platform.availableMobilePayOptions( + params: googlePay, + paymentRequestOptions: webPaymentRequestCreateOptions, + ); + } + /// Laucnhes the relevant native wallsheet (Apple Pay on iOS and Google Pay on Android) /// in order to create a payment intent /// diff --git a/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart b/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart index c7f968400..10588f535 100644 --- a/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart +++ b/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart @@ -13,6 +13,7 @@ import 'package:stripe_platform_interface/src/models/wallet.dart'; import 'package:stripe_platform_interface/src/result_parser.dart'; import 'models/app_info.dart'; +import 'models/available_mobile_pay_options.dart'; import 'models/card_details.dart'; import 'models/errors.dart'; import 'models/payment_intents.dart'; @@ -430,6 +431,28 @@ class MethodChannelStripe extends StripePlatform { return isSupported ?? false; } + @override + Future availableMobilePayOptions({ + IsGooglePaySupportedParams? params, + PlatformPayWebPaymentRequestCreateOptions? paymentRequestOptions, + }) async { + final bool isSupported; + if (params == null) { + isSupported = + await _methodChannel.invokeMethod('isPlatformPaySupported', { + 'params': {}, + }); + } else { + isSupported = await _methodChannel + .invokeMethod('isPlatformPaySupported', {'params': params.toJson()}); + } + + return AvailableMobilePayOptions( + googlePay: isSupported && _platformIsAndroid, + applePay: isSupported && _platformIsIos, + ); + } + @override Future isPlatformPaySupported({ IsGooglePaySupportedParams? params, diff --git a/packages/stripe_platform_interface/lib/src/models/available_mobile_pay_options.dart b/packages/stripe_platform_interface/lib/src/models/available_mobile_pay_options.dart new file mode 100644 index 000000000..48d209897 --- /dev/null +++ b/packages/stripe_platform_interface/lib/src/models/available_mobile_pay_options.dart @@ -0,0 +1,12 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'available_mobile_pay_options.freezed.dart'; + +@freezed +class AvailableMobilePayOptions with _$AvailableMobilePayOptions { + const factory AvailableMobilePayOptions({ + @Default(false) bool googlePay, + @Default(false) bool applePay, + @Default(false) bool link, + }) = _AvailableMobilePayOptions; +} diff --git a/packages/stripe_platform_interface/lib/src/models/available_mobile_pay_options.freezed.dart b/packages/stripe_platform_interface/lib/src/models/available_mobile_pay_options.freezed.dart new file mode 100644 index 000000000..7789e8d32 --- /dev/null +++ b/packages/stripe_platform_interface/lib/src/models/available_mobile_pay_options.freezed.dart @@ -0,0 +1,178 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'available_mobile_pay_options.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models'); + +/// @nodoc +mixin _$AvailableMobilePayOptions { + bool get googlePay => throw _privateConstructorUsedError; + bool get applePay => throw _privateConstructorUsedError; + bool get link => throw _privateConstructorUsedError; + + @JsonKey(ignore: true) + $AvailableMobilePayOptionsCopyWith get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $AvailableMobilePayOptionsCopyWith<$Res> { + factory $AvailableMobilePayOptionsCopyWith(AvailableMobilePayOptions value, + $Res Function(AvailableMobilePayOptions) then) = + _$AvailableMobilePayOptionsCopyWithImpl<$Res, AvailableMobilePayOptions>; + @useResult + $Res call({bool googlePay, bool applePay, bool link}); +} + +/// @nodoc +class _$AvailableMobilePayOptionsCopyWithImpl<$Res, + $Val extends AvailableMobilePayOptions> + implements $AvailableMobilePayOptionsCopyWith<$Res> { + _$AvailableMobilePayOptionsCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? googlePay = null, + Object? applePay = null, + Object? link = null, + }) { + return _then(_value.copyWith( + googlePay: null == googlePay + ? _value.googlePay + : googlePay // ignore: cast_nullable_to_non_nullable + as bool, + applePay: null == applePay + ? _value.applePay + : applePay // ignore: cast_nullable_to_non_nullable + as bool, + link: null == link + ? _value.link + : link // ignore: cast_nullable_to_non_nullable + as bool, + ) as $Val); + } +} + +/// @nodoc +abstract class _$$AvailableMobilePayOptionsImplCopyWith<$Res> + implements $AvailableMobilePayOptionsCopyWith<$Res> { + factory _$$AvailableMobilePayOptionsImplCopyWith( + _$AvailableMobilePayOptionsImpl value, + $Res Function(_$AvailableMobilePayOptionsImpl) then) = + __$$AvailableMobilePayOptionsImplCopyWithImpl<$Res>; + @override + @useResult + $Res call({bool googlePay, bool applePay, bool link}); +} + +/// @nodoc +class __$$AvailableMobilePayOptionsImplCopyWithImpl<$Res> + extends _$AvailableMobilePayOptionsCopyWithImpl<$Res, + _$AvailableMobilePayOptionsImpl> + implements _$$AvailableMobilePayOptionsImplCopyWith<$Res> { + __$$AvailableMobilePayOptionsImplCopyWithImpl( + _$AvailableMobilePayOptionsImpl _value, + $Res Function(_$AvailableMobilePayOptionsImpl) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? googlePay = null, + Object? applePay = null, + Object? link = null, + }) { + return _then(_$AvailableMobilePayOptionsImpl( + googlePay: null == googlePay + ? _value.googlePay + : googlePay // ignore: cast_nullable_to_non_nullable + as bool, + applePay: null == applePay + ? _value.applePay + : applePay // ignore: cast_nullable_to_non_nullable + as bool, + link: null == link + ? _value.link + : link // ignore: cast_nullable_to_non_nullable + as bool, + )); + } +} + +/// @nodoc + +class _$AvailableMobilePayOptionsImpl implements _AvailableMobilePayOptions { + const _$AvailableMobilePayOptionsImpl( + {this.googlePay = false, this.applePay = false, this.link = false}); + + @override + @JsonKey() + final bool googlePay; + @override + @JsonKey() + final bool applePay; + @override + @JsonKey() + final bool link; + + @override + String toString() { + return 'AvailableMobilePayOptions(googlePay: $googlePay, applePay: $applePay, link: $link)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$AvailableMobilePayOptionsImpl && + (identical(other.googlePay, googlePay) || + other.googlePay == googlePay) && + (identical(other.applePay, applePay) || + other.applePay == applePay) && + (identical(other.link, link) || other.link == link)); + } + + @override + int get hashCode => Object.hash(runtimeType, googlePay, applePay, link); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$AvailableMobilePayOptionsImplCopyWith<_$AvailableMobilePayOptionsImpl> + get copyWith => __$$AvailableMobilePayOptionsImplCopyWithImpl< + _$AvailableMobilePayOptionsImpl>(this, _$identity); +} + +abstract class _AvailableMobilePayOptions implements AvailableMobilePayOptions { + const factory _AvailableMobilePayOptions( + {final bool googlePay, + final bool applePay, + final bool link}) = _$AvailableMobilePayOptionsImpl; + + @override + bool get googlePay; + @override + bool get applePay; + @override + bool get link; + @override + @JsonKey(ignore: true) + _$$AvailableMobilePayOptionsImplCopyWith<_$AvailableMobilePayOptionsImpl> + get copyWith => throw _privateConstructorUsedError; +} diff --git a/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart b/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart index 4561e8087..e6f36aec0 100644 --- a/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart +++ b/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart @@ -108,6 +108,11 @@ abstract class StripePlatform extends PlatformInterface { Future isCardInWallet(String cardLastFour); + Future availableMobilePayOptions({ + IsGooglePaySupportedParams? params, + PlatformPayWebPaymentRequestCreateOptions? paymentRequestOptions, + }); + /// Check if either google pay or apple pay is supported on device. Future isPlatformPaySupported({ IsGooglePaySupportedParams? params, diff --git a/packages/stripe_platform_interface/lib/stripe_platform_interface.dart b/packages/stripe_platform_interface/lib/stripe_platform_interface.dart index 4d7d91c3e..44e68b273 100644 --- a/packages/stripe_platform_interface/lib/stripe_platform_interface.dart +++ b/packages/stripe_platform_interface/lib/stripe_platform_interface.dart @@ -6,6 +6,7 @@ export 'src/models/address.dart'; export 'src/models/app_info.dart'; export 'src/models/apple_pay.dart'; export 'src/models/aubecs_form.dart'; +export 'src/models/available_mobile_pay_options.dart'; export 'src/models/capture_method.dart'; export 'src/models/card_brand.dart'; export 'src/models/card_details.dart'; diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index b056cc423..405e3d3e0 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -542,14 +542,36 @@ class WebStripe extends StripePlatform { throw WebUnsupportedError.method('resetPaymentSheet'); } + @override + Future availableMobilePayOptions({ + IsGooglePaySupportedParams? params, + PlatformPayWebPaymentRequestCreateOptions? paymentRequestOptions, + }) async { + final paymentRequest = js + .paymentRequest((paymentRequestOptions ?? + PlatformPayWebPaymentRequestCreateOptions.defaultOptions) + .toJS()) + .toPaymentRequest; + + final paymentOptions = await paymentRequest.canMakePayment(); + + return AvailableMobilePayOptions( + googlePay: paymentOptions?.googlePay ?? false, + applePay: paymentOptions?.applePay ?? false, + link: paymentOptions?.link ?? false, + ); + } + @override Future isPlatformPaySupported({ IsGooglePaySupportedParams? params, PlatformPayWebPaymentRequestCreateOptions? paymentRequestOptions, }) { - final paymentRequest = js.paymentRequest((paymentRequestOptions ?? - PlatformPayWebPaymentRequestCreateOptions.defaultOptions) - .toJS()).toPaymentRequest; + final paymentRequest = js + .paymentRequest((paymentRequestOptions ?? + PlatformPayWebPaymentRequestCreateOptions.defaultOptions) + .toJS()) + .toPaymentRequest; return paymentRequest.isPaymentAvailable; } From 3457442a41aa4a8b797bb031824d36b71a7dcbe4 Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Mon, 5 Aug 2024 08:56:52 +0300 Subject: [PATCH 26/40] cleanup after interop merge --- ...ogle_pay_create_payment_method_screen.dart | 115 ------------------ packages/stripe/CHANGELOG.md | 14 +-- packages/stripe/lib/src/stripe.dart | 4 +- .../facebook/react/bridge/ReadableMap.java | 2 +- .../PaymentSheetFragment.kt | 4 +- .../reactnativestripesdk/StripeSdkModule.kt | 23 ---- packages/stripe_js/lib/src/js/stripe.dart | 2 - .../lib/src/method_channel_stripe.dart | 2 +- .../lib/src/stripe_platform_interface.dart | 2 +- packages/stripe_web/lib/src/web_stripe.dart | 10 +- .../lib/src/widgets/payment_element.dart | 2 +- 11 files changed, 16 insertions(+), 164 deletions(-) delete mode 100644 example/lib/screens/wallets/google_pay_create_payment_method_screen.dart diff --git a/example/lib/screens/wallets/google_pay_create_payment_method_screen.dart b/example/lib/screens/wallets/google_pay_create_payment_method_screen.dart deleted file mode 100644 index 7dbfee162..000000000 --- a/example/lib/screens/wallets/google_pay_create_payment_method_screen.dart +++ /dev/null @@ -1,115 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_stripe/flutter_stripe.dart'; -import 'package:stripe_example/widgets/example_scaffold.dart'; -import 'package:stripe_example/widgets/response_card.dart'; - -class GooglePayCreatePaymentMethodScreen extends StatefulWidget { - const GooglePayCreatePaymentMethodScreen({super.key}); - - @override - State createState() => - _GooglePayCreatePaymentMethodScreenState(); -} - -class _GooglePayCreatePaymentMethodScreenState - extends State { - PlatformPayPaymentMethod? response; - - @override - void initState() { - Stripe.instance.isPlatformPaySupportedListenable.addListener(update); - isAvailable(); - super.initState(); - } - - @override - void dispose() { - Stripe.instance.isPlatformPaySupportedListenable.removeListener(update); - super.dispose(); - } - - void update() { - setState(() {}); - } - - Future isAvailable() async { - try { - final isAvailable = await Stripe.instance.isPlatformPaySupported(); - print('wallet pay is available: $isAvailable'); - } catch (e) { - print('Wallet pay not available with error: $e'); - } - - try { - final options = await Stripe.instance.availableMobilePayOptions(); - print('wallet pay options: $options'); - } catch (e) { - print('Wallet pay options not available with error: $e'); - } - } - - @override - Widget build(BuildContext context) { - return ExampleScaffold( - title: 'Google Pay', - tags: ['Android'], - padding: EdgeInsets.all(16), - children: [ - // if (Stripe.instance.isPlatformPaySupportedListenable.value) - SizedBox( - height: 77, - width: 30, - // child: PlatformPayButton( - // type: PlatformButtonType.googlePayMark, - // onPressed: _handlePayPress, - // ), - child: ElevatedButton( - child: Text('Pay'), - onPressed: _handlePayPress, - ), - ), - // else - // Text('Google Pay is not available in this device'), - SizedBox( - height: 50, - ), - Text('hello there'), - ResponseCard(response: response?.toString() ?? ''), - ], - ); - } - - Future _handlePayPress() async { - // 1. create payment method - - final paymentMethod = await Stripe.instance.createPlatformPayPaymentMethod( - // params: PlatformPayPaymentMethodParams.googlePay( - // googlePayParams: GooglePayParams( - // testEnv: true, - // merchantCountryCode: 'de', - // currencyCode: 'eur', - // ), - // googlePayPaymentMethodParams: - // GooglePayPaymentMethodParams(amount: 1523), - // ), - params: PlatformPayPaymentMethodParams.web( - options: PlatformPayWebPaymentRequestCreateOptions( - country: 'DE', - currency: 'eur', - total: PlatformPayWebPaymentItem( - amount: 1521, - label: 'hello', - ), - ), - ), - ); - - setState(() { - response = paymentMethod; - }); - - ScaffoldMessenger.of(context).showSnackBar(SnackBar( - content: Text( - 'Success!: The payment method with id: ${paymentMethod.paymentMethod.id} was created successfully,'))); - } -} diff --git a/packages/stripe/CHANGELOG.md b/packages/stripe/CHANGELOG.md index 9857b4db8..4852c47b0 100644 --- a/packages/stripe/CHANGELOG.md +++ b/packages/stripe/CHANGELOG.md @@ -1,3 +1,8 @@ +## 11.0.1 + +**Features** +- Add deferred payment methods for web + ## 11.0.0 **Breaking changes** - Add support for intentmode setupMode. If you used `IntentMode before` change it to `IntentMode.paymentMode` instead. @@ -11,15 +16,6 @@ - #1837 fix for deferred payment methods. - #1630 handle next action setup for ios. -## 10.2.0 - -**Features** -- Add locale change to Android -**Fixes** -- Fix: payment methods can now be filtered on android -- Fix: on ios payment types like 'ideal' now work due - - ## 10.2.0 **Features** diff --git a/packages/stripe/lib/src/stripe.dart b/packages/stripe/lib/src/stripe.dart index d84046273..bc4b9c3cc 100644 --- a/packages/stripe/lib/src/stripe.dart +++ b/packages/stripe/lib/src/stripe.dart @@ -301,10 +301,10 @@ class Stripe { Future elementsSubmit() => _platform.elementsSubmit(); - Future handleNextActionForNonCard( + Future handleCardAction( final String paymentIntentClientSecret, ) => - _platform.handleNextActionForNonCard(paymentIntentClientSecret); + _platform.handleCardAction(paymentIntentClientSecret); /// Creates a single-use token that represents a credit card’s details. /// diff --git a/packages/stripe_android/android/src/main/kotlin/com/facebook/react/bridge/ReadableMap.java b/packages/stripe_android/android/src/main/kotlin/com/facebook/react/bridge/ReadableMap.java index 1c9a146c6..789089824 100644 --- a/packages/stripe_android/android/src/main/kotlin/com/facebook/react/bridge/ReadableMap.java +++ b/packages/stripe_android/android/src/main/kotlin/com/facebook/react/bridge/ReadableMap.java @@ -83,7 +83,7 @@ public ReadableType getType(String key) { final Object value = map.get(key); if (value instanceof Boolean) { return ReadableType.Boolean; - } else if (value instanceof Iterable || (value instanceof JSONArray)) { + } else if (value instanceof Iterable) { return ReadableType.Array; } else if (value instanceof JSONArray) { return ReadableType.Array; diff --git a/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/PaymentSheetFragment.kt b/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/PaymentSheetFragment.kt index bd9a5db53..b1c08bbe7 100644 --- a/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/PaymentSheetFragment.kt +++ b/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/PaymentSheetFragment.kt @@ -145,9 +145,7 @@ class PaymentSheetFragment( putBoolean("shouldSavePaymentMethod", shouldSavePaymentMethod) } - context.currentActivity?.runOnUiThread { - stripeSdkModule.sendEvent(context, "onConfirmHandlerCallback", params) - } + stripeSdkModule.sendEvent(context, "onConfirmHandlerCallback", params) val resultFromJavascript = paymentSheetIntentCreationCallback.await() // reset the completable diff --git a/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/StripeSdkModule.kt b/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/StripeSdkModule.kt index 15ca5a833..f11aeeb4a 100644 --- a/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/StripeSdkModule.kt +++ b/packages/stripe_android/android/src/main/kotlin/com/reactnativestripesdk/StripeSdkModule.kt @@ -25,9 +25,6 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.json.JSONObject -import android.content.res.Configuration -import android.os.Build -import java.util.Locale @ReactModule(name = StripeSdkModule.NAME) @@ -163,28 +160,8 @@ class StripeSdkModule(val reactContext: ReactApplicationContext) : ReactContextB promise.resolve(null) } - private fun updateLocale(context: ReactApplicationContext, language: String, country: String = "") { - val locale = if (country.isEmpty()) { - Locale(language) - } else { - Locale(language, country) - } - Locale.setDefault(locale) - - val config = context.resources.configuration - config.setLocale(locale) - - context.createConfigurationContext(config) - - context.resources.updateConfiguration(config, context.resources.displayMetrics) - } - @ReactMethod fun initPaymentSheet(params: ReadableMap, promise: Promise) { - params.getString("languageCode")?.let { - updateLocale(reactApplicationContext, it, params.getString("countryCode") ?: "") - } - getCurrentActivityOrResolveWithError(promise)?.let { activity -> paymentSheetFragment?.removeFragment(reactApplicationContext) paymentSheetFragment = PaymentSheetFragment(reactApplicationContext, promise).also { diff --git a/packages/stripe_js/lib/src/js/stripe.dart b/packages/stripe_js/lib/src/js/stripe.dart index 162b78e6c..81f70ed54 100644 --- a/packages/stripe_js/lib/src/js/stripe.dart +++ b/packages/stripe_js/lib/src/js/stripe.dart @@ -16,8 +16,6 @@ extension type Stripe.__(JSObject o) { external StripeElements elements([JsElementsCreateOptions options]); - external JsPaymentRequest paymentRequest([PaymentRequestCreateOptions options]); - external String? get stripeAccount; external set stripeAccount(String? stripeAccount); } diff --git a/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart b/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart index 10588f535..806ab6e82 100644 --- a/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart +++ b/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart @@ -100,7 +100,7 @@ class MethodChannelStripe extends StripePlatform { Future elementsSubmit() => throw UnimplementedError(); @override - Future handleNextActionForNonCard( + Future handleCardAction( final String paymentIntentClientSecret, ) => throw UnimplementedError(); diff --git a/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart b/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart index e6f36aec0..1c67972ff 100644 --- a/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart +++ b/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart @@ -44,7 +44,7 @@ abstract class StripePlatform extends PlatformInterface { Future handleNextAction(String paymentIntentClientSecret, {String? returnURL}); - Future handleNextActionForNonCard( + Future handleCardAction( String paymentIntentClientSecret, ); diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index 024681814..bfd7380bb 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -1,7 +1,6 @@ //@dart=2.12 import 'dart:async'; import 'dart:developer' as dev; -import 'package:web/web.dart' as web; import 'dart:ui' as ui; import 'package:flutter/widgets.dart'; @@ -10,6 +9,7 @@ import 'package:flutter_stripe_web/platform_pay_button.dart'; import 'package:flutter_web_plugins/flutter_web_plugins.dart'; import 'package:stripe_js/stripe_api.dart' as stripe_js; import 'package:stripe_js/stripe_js.dart' as stripe_js; +import 'package:web/web.dart' as web; import 'parser/payment_intent.dart'; import 'parser/payment_methods.dart'; @@ -271,17 +271,17 @@ class WebStripe extends StripePlatform { Future handleNextAction(String paymentIntentClientSecret, {String? returnURL}) async { final stripe_js.PaymentIntentResponse response = - await _stripe.handleCardAction(paymentIntentClientSecret); + await _stripe.handleNextAction(paymentIntentClientSecret); return response.paymentIntent!.parse(); } @override - Future handleNextActionForNonCard( + Future handleCardAction( String paymentIntentClientSecret, ) async { final stripe_js.PaymentIntentResponse response = - await _stripe.handleNextAction(paymentIntentClientSecret); + await _stripe.handleCardAction(paymentIntentClientSecret); return response.paymentIntent!.parse(); } @@ -438,8 +438,6 @@ class WebStripe extends StripePlatform { throw response.error!; } - print(response); - return response.paymentMethod!.parse(); } catch (e) { dev.log('Error $e'); diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index 93f2b4858..5c8e6c935 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -126,7 +126,7 @@ class PaymentElementState extends State { ..style.border = 'none' ..style.width = '100%' ..style.height = '${height}' - ..style.overflow = 'scroll' + ..style.overflow = 'auto' ..style.overflowX = 'hidden'; elements = WebStripe.js.elements(createOptions()); From 41cc5dd53597d5a756c9e359424cc057ca23242f Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Mon, 5 Aug 2024 09:37:33 +0300 Subject: [PATCH 27/40] resolve compilation errors --- .../js/elements/element_creation_options.dart | 4 ++-- .../lib/src/js/elements/elements_submit.dart | 15 ++++++-------- .../payment_intents/handle_next_action.dart | 18 +++++++---------- .../create_payment_method_with_elements.dart | 20 ++++++++----------- packages/stripe_web/lib/src/web_stripe.dart | 18 +++++++---------- .../lib/src/widgets/payment_element.dart | 5 ++++- .../lib/src/widgets/platform_pay_button.dart | 2 +- 7 files changed, 35 insertions(+), 47 deletions(-) diff --git a/packages/stripe_js/lib/src/js/elements/element_creation_options.dart b/packages/stripe_js/lib/src/js/elements/element_creation_options.dart index fa9288125..d75ad2b0e 100644 --- a/packages/stripe_js/lib/src/js/elements/element_creation_options.dart +++ b/packages/stripe_js/lib/src/js/elements/element_creation_options.dart @@ -11,7 +11,7 @@ extension type JsElementsCreateOptions._(JSObject o) { int? amount, String? mode, String? currency, - List? paymentMethodTypes, + JSArray? paymentMethodTypes, String? paymentMethodCreation, JsElementAppearance? appearance, String loader, @@ -23,7 +23,7 @@ extension type JsElementsCreateOptions._(JSObject o) { external int amount; external String mode; external String currency; - external List paymentMethodTypes; + external JSArray paymentMethodTypes; external String paymentMethodCreation; external JsElementAppearance appearance; } diff --git a/packages/stripe_js/lib/src/js/elements/elements_submit.dart b/packages/stripe_js/lib/src/js/elements/elements_submit.dart index e6d8a1d56..9cf4c93c7 100644 --- a/packages/stripe_js/lib/src/js/elements/elements_submit.dart +++ b/packages/stripe_js/lib/src/js/elements/elements_submit.dart @@ -1,14 +1,11 @@ -import 'package:js/js.dart'; +import 'dart:js_interop'; + +import 'package:stripe_js/stripe_api.dart'; import 'package:stripe_js/stripe_js.dart'; extension ExtensionElementsSubmit on StripeElements { - _JS get js => this as _JS; - - Future submit() => promiseToFuture(js.submit()); -} + Future submit() => _submit().toDart; -@anonymous -@JS() -abstract class _JS { - external Promise submit(); + @JS('submit') + external JSPromise _submit(); } diff --git a/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart b/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart index 32f5302be..c80d2e128 100644 --- a/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart +++ b/packages/stripe_js/lib/src/js/payment_intents/handle_next_action.dart @@ -1,12 +1,11 @@ -import 'package:js/js.dart'; +import 'dart:js_interop'; + import 'package:stripe_js/stripe_api.dart'; import 'package:stripe_js/stripe_js.dart'; import '../utils/utils.dart'; extension ExtensionHandleNextAction on Stripe { - _JS get js => this as _JS; - /// Use stripe.handleNextAction in the finalizing payments on the server flow /// to finish confirmation of a PaymentIntent with the requires_action status. /// It will throw an error if the PaymentIntent has a different status. @@ -15,14 +14,11 @@ extension ExtensionHandleNextAction on Stripe { /// temporarily redirected from your site and brought back to the return_url /// parameter provided when the PaymentIntent is confirmed. Future handleNextAction(String clientSecret) { - return parseIntentResponse( - js.handleNextAction(jsify({'clientSecret': clientSecret})), - ); + return _handleNextAction({'clientSecret': clientSecret}.jsify()) + .toDart + .then((response) => response.toDart); } -} -@anonymous -@JS() -abstract class _JS { - external Promise handleNextAction(dynamic clientSecret); + @JS('handleNextAction') + external JSPromise _handleNextAction(JSAny? clientSecret); } diff --git a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart index 1d7d7640d..c97289654 100644 --- a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart +++ b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart @@ -1,4 +1,5 @@ -import 'package:js/js.dart'; +import 'dart:js_interop'; + import 'package:stripe_js/src/api/payment_methods/create_payment_method_with_elements_data.dart'; import 'package:stripe_js/stripe_api.dart'; import 'package:stripe_js/stripe_js.dart'; @@ -6,8 +7,6 @@ import 'package:stripe_js/stripe_js.dart'; import '../utils/utils.dart'; extension ExtensionCreatePaymentMethodWithElements on Stripe { - _JS get js => this as _JS; - /// Use stripe.createPaymentMethod to convert payment information collected by /// elements into a PaymentMethod object that you safely pass to your server /// to use in an API call. @@ -20,16 +19,13 @@ extension ExtensionCreatePaymentMethodWithElements on Stripe { Future createPaymentMethodWithElements( CreatePaymentMethodWithElementsData data, ) { - final jsData = jsify(data.toJson()); + final jsData = data.toJson().jsify(); - return parsePaymentMethodResponse( - js.createPaymentMethod(jsData), - ); + return _createPaymentMethod(jsData) + .toDart + .then((response) => response.toDart); } -} -@anonymous -@JS() -abstract class _JS { - external Promise createPaymentMethod(dynamic data); + @JS('createPaymentMethod') + external JSPromise _createPaymentMethod(JSAny? data); } diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index bfd7380bb..7d940c644 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -545,11 +545,9 @@ class WebStripe extends StripePlatform { IsGooglePaySupportedParams? params, PlatformPayWebPaymentRequestCreateOptions? paymentRequestOptions, }) async { - final paymentRequest = js - .paymentRequest((paymentRequestOptions ?? - PlatformPayWebPaymentRequestCreateOptions.defaultOptions) - .toJS()) - .toPaymentRequest; + final paymentRequest = js.paymentRequest((paymentRequestOptions ?? + PlatformPayWebPaymentRequestCreateOptions.defaultOptions) + .toJS()); final paymentOptions = await paymentRequest.canMakePayment(); @@ -565,11 +563,9 @@ class WebStripe extends StripePlatform { IsGooglePaySupportedParams? params, PlatformPayWebPaymentRequestCreateOptions? paymentRequestOptions, }) { - final paymentRequest = js - .paymentRequest((paymentRequestOptions ?? - PlatformPayWebPaymentRequestCreateOptions.defaultOptions) - .toJS()) - .toPaymentRequest; + final paymentRequest = js.paymentRequest((paymentRequestOptions ?? + PlatformPayWebPaymentRequestCreateOptions.defaultOptions) + .toJS()); return paymentRequest.isPaymentAvailable; } @@ -600,7 +596,7 @@ class WebStripe extends StripePlatform { Completer completer = Completer(); stripe_js.PaymentRequest paymentRequest = - js.paymentRequest(params.options.toJS()).toPaymentRequest; + js.paymentRequest(params.options.toJS()); paymentRequest.onPaymentMethod((response) { completer.complete(PlatformPayPaymentMethod( paymentMethod: response.paymentMethod.parse())); diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index 5c8e6c935..fa831867d 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -203,7 +203,10 @@ class PaymentElementState extends State { amount: widget.amount, currency: widget.currency, mode: widget.mode, - paymentMethodTypes: widget.paymentMethodTypes, + paymentMethodTypes: widget.paymentMethodTypes + ?.map((pmt) => pmt.toJS) + .toList(growable: false) + .toJS, paymentMethodCreation: widget.paymentMethodCreation, appearance: appearance.toJson().jsify() as js.JsElementAppearance, locale: widget.locale, diff --git a/packages/stripe_web/lib/src/widgets/platform_pay_button.dart b/packages/stripe_web/lib/src/widgets/platform_pay_button.dart index 1c8d7f6c4..b169d64cd 100644 --- a/packages/stripe_web/lib/src/widgets/platform_pay_button.dart +++ b/packages/stripe_web/lib/src/widgets/platform_pay_button.dart @@ -63,7 +63,7 @@ class _WebPlatformPayButtonState extends State { _initButton() { WidgetsBinding.instance.addPostFrameCallback((timeStamp) { PaymentRequest paymentRequest = WebStripe.js - .paymentRequest((widget.paymentRequestCreateOptions).toJS()).toPaymentRequest; + .paymentRequest((widget.paymentRequestCreateOptions).toJS()); paymentRequest.canMakePayment().then((value) { WebStripe.js.elements().createPaymentRequestButton( From 999e320a5768c7643b9db97bcb8111e690b3897c Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Wed, 25 Sep 2024 10:39:14 +0300 Subject: [PATCH 28/40] fix merge errors --- packages/stripe_web/lib/src/widgets/payment_element.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index aa643d77b..0fac747b7 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -21,7 +21,7 @@ typedef PaymentElementAppearance = js.ElementAppearance; typedef PaymentElementAppearanceLabels = js.ElementAppearanceLabels; class PaymentElement extends StatefulWidget { - final String clientSecret; + final String? clientSecret; final String? customerSessionClientSecret; final int? amount; From 8b85bde4992eb7a96abbc0771c80cb18b9aa79ea Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Wed, 30 Oct 2024 15:53:04 +0200 Subject: [PATCH 29/40] fix build error after merge --- packages/stripe_web/lib/src/widgets/payment_element.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index d4953cfab..5867bba5a 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -156,7 +156,6 @@ class PaymentElementState extends State { ui.platformViewRegistry.registerViewFactory( 'stripe_payment_element', (int viewId) => _divElement, - ..style.height = '${height}'; ); super.initState(); From 05367efaacc49f8852f9336c1ee800b05a807b7d Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Wed, 30 Oct 2024 15:56:38 +0200 Subject: [PATCH 30/40] remove unused import on elements_submit.dart --- packages/stripe_js/lib/src/js/elements/elements_submit.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/stripe_js/lib/src/js/elements/elements_submit.dart b/packages/stripe_js/lib/src/js/elements/elements_submit.dart index 9cf4c93c7..614b1d57b 100644 --- a/packages/stripe_js/lib/src/js/elements/elements_submit.dart +++ b/packages/stripe_js/lib/src/js/elements/elements_submit.dart @@ -1,6 +1,5 @@ import 'dart:js_interop'; -import 'package:stripe_js/stripe_api.dart'; import 'package:stripe_js/stripe_js.dart'; extension ExtensionElementsSubmit on StripeElements { From ea03ab0729ae4d5d02e1c3ffc1d9fed736f81d4d Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Wed, 30 Oct 2024 16:14:24 +0200 Subject: [PATCH 31/40] remove unused import on create_payment_method_with_elements.dart --- .../js/payment_methods/create_payment_method_with_elements.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart index c97289654..db83fb6b3 100644 --- a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart +++ b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart @@ -1,6 +1,5 @@ import 'dart:js_interop'; -import 'package:stripe_js/src/api/payment_methods/create_payment_method_with_elements_data.dart'; import 'package:stripe_js/stripe_api.dart'; import 'package:stripe_js/stripe_js.dart'; From 0990bf14cdc0a70309b63262617991fe15db0738 Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Thu, 31 Oct 2024 16:27:59 +0200 Subject: [PATCH 32/40] expose wallets models --- packages/stripe_web/lib/src/widgets/payment_element.dart | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index 5867bba5a..6d7cb57d7 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -13,14 +13,13 @@ export 'package:stripe_js/stripe_api.dart' show ElementAppearance, ElementTheme, + ElementAppearanceLabels, PaymentElementLayout, PaymentElementDefaultValues, PaymentElementBillingDetails, - PaymentElementBillingDetailsAddress; - -typedef PaymentElementTheme = js.ElementTheme; -typedef PaymentElementAppearance = js.ElementAppearance; -typedef PaymentElementAppearanceLabels = js.ElementAppearanceLabels; + PaymentElementBillingDetailsAddress, + PaymentElementWalletOptions, + PaymentElementFieldRequired; class PaymentElement extends StatefulWidget { final String? clientSecret; From 0221611cabecdde7b502fcd30fd021a9629ee444 Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Wed, 20 Nov 2024 15:31:35 +0200 Subject: [PATCH 33/40] add default value to payment method --- .../lib/src/api/payment_methods/payment_method.dart | 1 + .../src/api/payment_methods/payment_method.freezed.dart | 8 +++++++- .../lib/src/api/payment_methods/payment_method.g.dart | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/stripe_js/lib/src/api/payment_methods/payment_method.dart b/packages/stripe_js/lib/src/api/payment_methods/payment_method.dart index b40573d5e..3cd791803 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/payment_method.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/payment_method.dart @@ -78,6 +78,7 @@ class PaymentMethod with _$PaymentMethod { /// An additional hash is included on the PaymentMethod with a name /// matching this value. /// It contains additional information specific to the PaymentMethod type. + @JsonKey(unknownEnumValue: PaymentMethodType.unknown) required PaymentMethodType type, }) = _PaymentMethod; diff --git a/packages/stripe_js/lib/src/api/payment_methods/payment_method.freezed.dart b/packages/stripe_js/lib/src/api/payment_methods/payment_method.freezed.dart index 9dff56802..5413cd168 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/payment_method.freezed.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/payment_method.freezed.dart @@ -78,6 +78,7 @@ mixin _$PaymentMethod { /// An additional hash is included on the PaymentMethod with a name /// matching this value. /// It contains additional information specific to the PaymentMethod type. + @JsonKey(unknownEnumValue: PaymentMethodType.unknown) PaymentMethodType get type => throw _privateConstructorUsedError; /// Serializes this PaymentMethod to a JSON map. @@ -113,6 +114,7 @@ abstract class $PaymentMethodCopyWith<$Res> { Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount, + @JsonKey(unknownEnumValue: PaymentMethodType.unknown) PaymentMethodType type}); $BillingDetailsCopyWith<$Res>? get billingDetails; @@ -398,6 +400,7 @@ abstract class _$$PaymentMethodImplCopyWith<$Res> Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount, + @JsonKey(unknownEnumValue: PaymentMethodType.unknown) PaymentMethodType type}); @override @@ -547,7 +550,7 @@ class _$PaymentMethodImpl implements _PaymentMethod { this.fpx, this.upi, this.usBankAccount, - required this.type}) + @JsonKey(unknownEnumValue: PaymentMethodType.unknown) required this.type}) : _metadata = metadata; factory _$PaymentMethodImpl.fromJson(Map json) => @@ -640,6 +643,7 @@ class _$PaymentMethodImpl implements _PaymentMethod { /// matching this value. /// It contains additional information specific to the PaymentMethod type. @override + @JsonKey(unknownEnumValue: PaymentMethodType.unknown) final PaymentMethodType type; @override @@ -734,6 +738,7 @@ abstract class _PaymentMethod implements PaymentMethod { final Fpx? fpx, final Upi? upi, final UsBankAccount? usBankAccount, + @JsonKey(unknownEnumValue: PaymentMethodType.unknown) required final PaymentMethodType type}) = _$PaymentMethodImpl; factory _PaymentMethod.fromJson(Map json) = @@ -814,6 +819,7 @@ abstract class _PaymentMethod implements PaymentMethod { /// matching this value. /// It contains additional information specific to the PaymentMethod type. @override + @JsonKey(unknownEnumValue: PaymentMethodType.unknown) PaymentMethodType get type; /// Create a copy of PaymentMethod diff --git a/packages/stripe_js/lib/src/api/payment_methods/payment_method.g.dart b/packages/stripe_js/lib/src/api/payment_methods/payment_method.g.dart index 1658020c6..c20d85ff8 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/payment_method.g.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/payment_method.g.dart @@ -53,7 +53,8 @@ _$PaymentMethodImpl _$$PaymentMethodImplFromJson(Map json) => ? null : UsBankAccount.fromJson( Map.from(json['usBankAccount'] as Map)), - type: $enumDecode(_$PaymentMethodTypeEnumMap, json['type']), + type: $enumDecode(_$PaymentMethodTypeEnumMap, json['type'], + unknownValue: PaymentMethodType.unknown), ); Map _$$PaymentMethodImplToJson(_$PaymentMethodImpl instance) { From 62cd8a3f30b3d965ee264e49481eef6c950f75e7 Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Wed, 4 Jun 2025 11:05:16 +0300 Subject: [PATCH 34/40] fix init payment sheet error --- .../lib/src/models/color.dart | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/stripe_platform_interface/lib/src/models/color.dart b/packages/stripe_platform_interface/lib/src/models/color.dart index 5479fceb6..a76c3a468 100644 --- a/packages/stripe_platform_interface/lib/src/models/color.dart +++ b/packages/stripe_platform_interface/lib/src/models/color.dart @@ -20,14 +20,10 @@ class ColorKey { extension ColorX on Color { String get colorHexString { - // ignore: deprecated_member_use - final red = (this.red * 255).toInt().toRadixString(16).padLeft(2, '0'); - // ignore: deprecated_member_use - final green = (this.green * 255).toInt().toRadixString(16).padLeft(2, '0'); - // ignore: deprecated_member_use - final blue = (this.blue * 255).toInt().toRadixString(16).padLeft(2, '0'); - // ignore: deprecated_member_use - final alpha = (this.alpha * 255).toInt().toRadixString(16).padLeft(2, '0'); + final red = (r * 255).toInt().toRadixString(16).padLeft(2, '0'); + final green = (g * 255).toInt().toRadixString(16).padLeft(2, '0'); + final blue = (b * 255).toInt().toRadixString(16).padLeft(2, '0'); + final alpha = (a * 255).toInt().toRadixString(16).padLeft(2, '0'); return '$alpha$red$green$blue'; } From d939152a61a65fd1b4cb96f3e2b489e0e2f1f1fd Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Tue, 5 Aug 2025 15:46:15 +0300 Subject: [PATCH 35/40] remove versioning --- packages/stripe/CHANGELOG.md | 5 ----- packages/stripe/pubspec.yaml | 4 ++-- packages/stripe_js/CHANGELOG.md | 4 ---- .../src/api/payment_intents/confirm_payment_options.dart | 2 ++ packages/stripe_js/pubspec.yaml | 2 +- packages/stripe_platform_interface/CHANGELOG.md | 5 ----- packages/stripe_platform_interface/pubspec.yaml | 2 +- packages/stripe_web/CHANGELOG.md | 5 ----- packages/stripe_web/pubspec.yaml | 6 +++--- 9 files changed, 9 insertions(+), 26 deletions(-) diff --git a/packages/stripe/CHANGELOG.md b/packages/stripe/CHANGELOG.md index d1e21a969..d150086b0 100644 --- a/packages/stripe/CHANGELOG.md +++ b/packages/stripe/CHANGELOG.md @@ -1,8 +1,3 @@ -## 11.6.0 - -**Features** -- Add deferred payment methods for web - ## 11.5.1 - retain compatibility with older Flutter versions #2132 diff --git a/packages/stripe/pubspec.yaml b/packages/stripe/pubspec.yaml index 61c561ad5..913f62032 100644 --- a/packages/stripe/pubspec.yaml +++ b/packages/stripe/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_stripe description: Flutter library for Stripe. Supports PaymentSheets, Apple & Google Pay, SCA, PSD2 and much more. -version: 11.6.0 +version: 11.5.1 homepage: https://github.com/flutter-stripe/flutter_stripe repository: https://github.com/flutter-stripe/flutter_stripe @@ -24,7 +24,7 @@ dependencies: meta: ^1.8.0 stripe_android: ^11.5.0 stripe_ios: ^11.5.0 - stripe_platform_interface: ^11.6.0 + stripe_platform_interface: ^11.5.1 dev_dependencies: flutter_test: sdk: flutter diff --git a/packages/stripe_js/CHANGELOG.md b/packages/stripe_js/CHANGELOG.md index 078fdbb72..352b7ad54 100644 --- a/packages/stripe_js/CHANGELOG.md +++ b/packages/stripe_js/CHANGELOG.md @@ -1,7 +1,3 @@ -## 6.4.1 -**Features** -- add method for deferred payment - ## 6.4.0 - Use latest platform interface diff --git a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.dart b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.dart index 3f840aba9..a1f3a0cea 100644 --- a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.dart +++ b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.dart @@ -10,6 +10,8 @@ class ConfirmPaymentOptions with _$ConfirmPaymentOptions { const factory ConfirmPaymentOptions({ /// The Elements instance that was used to create the Payment Element. @ElementsConverter() required Elements elements, + + /// The PaymentIntent's client secret. String? clientSecret, /// Parameters that will be passed on to the Stripe API. diff --git a/packages/stripe_js/pubspec.yaml b/packages/stripe_js/pubspec.yaml index 98cdf5c11..57de8b0eb 100644 --- a/packages/stripe_js/pubspec.yaml +++ b/packages/stripe_js/pubspec.yaml @@ -1,6 +1,6 @@ name: stripe_js description: Stripe.js bindings for dart. This package is used by Stripe web so that the Stripe js sdk can be invoked directly. -version: 6.4.1 +version: 6.4.0 homepage: https://github.com/flutter-stripe/flutter_stripe environment: diff --git a/packages/stripe_platform_interface/CHANGELOG.md b/packages/stripe_platform_interface/CHANGELOG.md index c54e87071..af584d5e2 100644 --- a/packages/stripe_platform_interface/CHANGELOG.md +++ b/packages/stripe_platform_interface/CHANGELOG.md @@ -1,8 +1,3 @@ -## 11.5.1 - -**Features** -- add methods for deferred payment on web - ## 11.5.0 Align with Stripe React Native [0.43.0](https://github.com/stripe/stripe-react-native/releases/tag/v0.43.0): diff --git a/packages/stripe_platform_interface/pubspec.yaml b/packages/stripe_platform_interface/pubspec.yaml index eae200a67..9690ce3e5 100644 --- a/packages/stripe_platform_interface/pubspec.yaml +++ b/packages/stripe_platform_interface/pubspec.yaml @@ -1,6 +1,6 @@ name: stripe_platform_interface description: Platform interface for stripe sdk -version: 11.6.0 +version: 11.5.1 repository: https://github.com/flutter-stripe/flutter_stripe homepage: https://pub.dev/packages/flutter_stripe diff --git a/packages/stripe_web/CHANGELOG.md b/packages/stripe_web/CHANGELOG.md index 092180036..57b58e0ed 100644 --- a/packages/stripe_web/CHANGELOG.md +++ b/packages/stripe_web/CHANGELOG.md @@ -1,8 +1,3 @@ -## 6.6.0 - -**Features** -- add methods for deferred payments - ## 6.5.1 **Fixes** diff --git a/packages/stripe_web/pubspec.yaml b/packages/stripe_web/pubspec.yaml index 199e0f5bb..2d7cab3a3 100644 --- a/packages/stripe_web/pubspec.yaml +++ b/packages/stripe_web/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_stripe_web description: Stripe sdk bindings for the Flutter web platform. This package contains the implementation of the platform interface for web. -version: 6.6.0 +version: 6.5.1 homepage: https://github.com/flutter-stripe/flutter_stripe environment: @@ -13,8 +13,8 @@ dependencies: flutter_web_plugins: sdk: flutter freezed_annotation: ^2.0.3 - stripe_platform_interface: ^11.6.0 - stripe_js: ^6.4.1 + stripe_platform_interface: ^11.5.0 + stripe_js: ^6.4.0 web: ^1.0.0 dev_dependencies: From f2c0ae719b1737c16e933567083cdd93e40f6726 Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Tue, 5 Aug 2025 16:34:18 +0300 Subject: [PATCH 36/40] different constructors for payment element widget --- .../platforms/payment_element_web.dart | 2 +- .../add_payment_method_screen_loader_web.dart | 2 +- .../lib/src/widgets/payment_element.dart | 43 ++++++++++++++++--- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/example/lib/screens/payment_sheet/payment_element/platforms/payment_element_web.dart b/example/lib/screens/payment_sheet/payment_element/platforms/payment_element_web.dart index 48621bc77..183871b37 100644 --- a/example/lib/screens/payment_sheet/payment_element/platforms/payment_element_web.dart +++ b/example/lib/screens/payment_sheet/payment_element/platforms/payment_element_web.dart @@ -21,7 +21,7 @@ class PlatformPaymentElement extends StatelessWidget { @override Widget build(BuildContext context) { - return PaymentElement( + return PaymentElement.withIntent( autofocus: true, enablePostalCode: true, onCardChanged: (_) {}, diff --git a/example/lib/screens/setup_future_payments/add_payment_method_screen_loader_web.dart b/example/lib/screens/setup_future_payments/add_payment_method_screen_loader_web.dart index a666c7aed..b8e226125 100644 --- a/example/lib/screens/setup_future_payments/add_payment_method_screen_loader_web.dart +++ b/example/lib/screens/setup_future_payments/add_payment_method_screen_loader_web.dart @@ -72,7 +72,7 @@ class _AddPaymentMethodScreenPlatformState SizedBox(height: 12), Padding( padding: const EdgeInsets.all(24), - child: PaymentElement( + child: PaymentElement.withIntent( clientSecret: widget.setupKeys.clientSecret, onCardChanged: (c) { setState(() => isComplete = c?.complete ?? false); diff --git a/packages/stripe_web/lib/src/widgets/payment_element.dart b/packages/stripe_web/lib/src/widgets/payment_element.dart index 7afc724cf..a74047f45 100644 --- a/packages/stripe_web/lib/src/widgets/payment_element.dart +++ b/packages/stripe_web/lib/src/widgets/payment_element.dart @@ -56,13 +56,12 @@ class PaymentElement extends StatefulWidget { final js.PaymentElementApplePayOptions? applePay; final String? locale; - const PaymentElement({ + const PaymentElement.withoutIntent({ super.key, - this.clientSecret, - this.customerSessionClientSecret, - this.amount, - this.currency, - this.mode, + required this.amount, + required this.currency, + required this.mode, + required this.onCardChanged, this.paymentMethodTypes, this.paymentMethodCreation, this.width, @@ -73,7 +72,35 @@ class PaymentElement extends StatefulWidget { this.autofocus = false, this.focusNode, this.onFocus, + this.layout = PaymentElementLayout.accordion, + this.appearance, + this.locale, + this.defaultValues, + this.business, + this.paymentMethodOrder, + this.fields, + this.readOnly, + this.terms, + this.wallets, + this.applePay, + }) : clientSecret = null, + customerSessionClientSecret = null; + + const PaymentElement.withIntent({ + super.key, + required this.clientSecret, required this.onCardChanged, + this.customerSessionClientSecret, + this.paymentMethodTypes, + this.paymentMethodCreation, + this.width, + this.height, + this.style, + this.placeholder, + this.enablePostalCode = false, + this.autofocus = false, + this.focusNode, + this.onFocus, this.layout = PaymentElementLayout.accordion, this.appearance, this.locale, @@ -85,7 +112,9 @@ class PaymentElement extends StatefulWidget { this.terms, this.wallets, this.applePay, - }); + }) : amount = null, + currency = null, + mode = null; @override State createState() => PaymentElementState(); From b8fef2596c1aaeb3d36985307350bc86e38f0363 Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Wed, 6 Aug 2025 14:28:19 +0300 Subject: [PATCH 37/40] use existing create payment method --- packages/stripe/lib/src/stripe.dart | 3 - .../create_payment_method_data.dart | 8 +- .../create_payment_method_data.freezed.dart | 681 +++++++++++++----- .../create_payment_method_data.g.dart | 32 +- ...ate_payment_method_with_elements_data.dart | 18 - ...ent_method_with_elements_data.freezed.dart | 173 ----- ...e_payment_method_with_elements_data.g.dart | 27 - .../api/payment_methods/payment_methods.dart | 1 - .../create_payment_method_with_elements.dart | 30 - .../js/payment_methods/payment_methods.dart | 1 - .../create_payment_method_test.dart | 4 +- .../lib/src/method_channel_stripe.dart | 4 - .../lib/src/models/payment_methods.dart | 4 + .../src/models/payment_methods.freezed.dart | 440 ++++++++++- .../lib/src/models/payment_methods.g.dart | 12 + .../lib/src/stripe_platform_interface.dart | 2 - packages/stripe_web/lib/src/web_stripe.dart | 39 +- 17 files changed, 973 insertions(+), 506 deletions(-) delete mode 100644 packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart delete mode 100644 packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart delete mode 100644 packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart delete mode 100644 packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart diff --git a/packages/stripe/lib/src/stripe.dart b/packages/stripe/lib/src/stripe.dart index 82e5272d6..df7c91058 100644 --- a/packages/stripe/lib/src/stripe.dart +++ b/packages/stripe/lib/src/stripe.dart @@ -296,9 +296,6 @@ class Stripe { } } - Future createPaymentMethodWithElements() => - _platform.createPaymentMethodWithElements(); - Future elementsSubmit() => _platform.elementsSubmit(); Future handleCardAction( diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart index 259507826..d91608b64 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart @@ -7,7 +7,7 @@ part 'create_payment_method_data.g.dart'; @freezed class CreatePaymentMethodData with _$CreatePaymentMethodData { - const factory CreatePaymentMethodData({ + const factory CreatePaymentMethodData.card({ /// Unique identifier for the object. required String type, @@ -45,7 +45,11 @@ class CreatePaymentMethodData with _$CreatePaymentMethodData { /// Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. @JsonKey(name: "billing_details") BillingDetails? billingDetails, - }) = _CreatePaymentMethodData; + }) = _CreatePaymentMethodDataCard; + + const factory CreatePaymentMethodData.elements({ + @ElementsConverter() required Elements elements, + }) = _CreatePaymentMethodDataElements; factory CreatePaymentMethodData.fromJson(Map json) => _$CreatePaymentMethodDataFromJson(json); diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.freezed.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.freezed.dart index 4cf8af3c9..03bf97a6b 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.freezed.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.freezed.dart @@ -16,68 +16,109 @@ final _privateConstructorUsedError = UnsupportedError( CreatePaymentMethodData _$CreatePaymentMethodDataFromJson( Map json) { - return _CreatePaymentMethodData.fromJson(json); + switch (json['runtimeType']) { + case 'card': + return _CreatePaymentMethodDataCard.fromJson(json); + case 'elements': + return _CreatePaymentMethodDataElements.fromJson(json); + + default: + throw CheckedFromJsonException( + json, + 'runtimeType', + 'CreatePaymentMethodData', + 'Invalid union type "${json['runtimeType']}"!'); + } } /// @nodoc mixin _$CreatePaymentMethodData { - /// Unique identifier for the object. - String get type => throw _privateConstructorUsedError; - - /// A card or cardNumber Element. - @ElementConverter() - Element? get card => throw _privateConstructorUsedError; - - /// An auBankAccount Element. - @JsonKey(name: "au_becs_debit") - @ElementConverter() - Element? get auBecsDebit => throw _privateConstructorUsedError; - - /// An fpx Element. - @ElementConverter() - Element? get fpx => throw _privateConstructorUsedError; - - /// The customer's bank. - @JsonKey(name: "fpx[bank]") - String? get fpxBank => throw _privateConstructorUsedError; - - /// The customer's bank. - @JsonKey(name: "netbanking[bank]") - String? get netbankingBank => throw _privateConstructorUsedError; - - /// An idealBank Element. - @ElementConverter() - Element? get ideal => throw _privateConstructorUsedError; - - /// The customer's bank. - @JsonKey(name: "ideal[bank]") - String? get idealBank => throw _privateConstructorUsedError; - - /// An iban Element. - @JsonKey(name: "sepa_debit") - @ElementConverter() - Element? get sepaDebit => throw _privateConstructorUsedError; - - /// An IBAN account number. - @JsonKey(name: "sepa_debit[iban]") - String? get sepaDebitIban => throw _privateConstructorUsedError; - - /// The customer's VPA. - @JsonKey(name: "upi[vpa]") - String? get upiVpa => throw _privateConstructorUsedError; - - /// Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. - @JsonKey(name: "billing_details") - BillingDetails? get billingDetails => throw _privateConstructorUsedError; + @optionalTypeArgs + TResult when({ + required TResult Function( + String type, + @ElementConverter() Element? card, + @JsonKey(name: "au_becs_debit") + @ElementConverter() + Element? auBecsDebit, + @ElementConverter() Element? fpx, + @JsonKey(name: "fpx[bank]") String? fpxBank, + @JsonKey(name: "netbanking[bank]") String? netbankingBank, + @ElementConverter() Element? ideal, + @JsonKey(name: "ideal[bank]") String? idealBank, + @JsonKey(name: "sepa_debit") @ElementConverter() Element? sepaDebit, + @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, + @JsonKey(name: "upi[vpa]") String? upiVpa, + @JsonKey(name: "billing_details") BillingDetails? billingDetails) + card, + required TResult Function(@ElementsConverter() Elements elements) elements, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function( + String type, + @ElementConverter() Element? card, + @JsonKey(name: "au_becs_debit") + @ElementConverter() + Element? auBecsDebit, + @ElementConverter() Element? fpx, + @JsonKey(name: "fpx[bank]") String? fpxBank, + @JsonKey(name: "netbanking[bank]") String? netbankingBank, + @ElementConverter() Element? ideal, + @JsonKey(name: "ideal[bank]") String? idealBank, + @JsonKey(name: "sepa_debit") @ElementConverter() Element? sepaDebit, + @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, + @JsonKey(name: "upi[vpa]") String? upiVpa, + @JsonKey(name: "billing_details") BillingDetails? billingDetails)? + card, + TResult? Function(@ElementsConverter() Elements elements)? elements, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeWhen({ + TResult Function( + String type, + @ElementConverter() Element? card, + @JsonKey(name: "au_becs_debit") + @ElementConverter() + Element? auBecsDebit, + @ElementConverter() Element? fpx, + @JsonKey(name: "fpx[bank]") String? fpxBank, + @JsonKey(name: "netbanking[bank]") String? netbankingBank, + @ElementConverter() Element? ideal, + @JsonKey(name: "ideal[bank]") String? idealBank, + @JsonKey(name: "sepa_debit") @ElementConverter() Element? sepaDebit, + @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, + @JsonKey(name: "upi[vpa]") String? upiVpa, + @JsonKey(name: "billing_details") BillingDetails? billingDetails)? + card, + TResult Function(@ElementsConverter() Elements elements)? elements, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult map({ + required TResult Function(_CreatePaymentMethodDataCard value) card, + required TResult Function(_CreatePaymentMethodDataElements value) elements, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_CreatePaymentMethodDataCard value)? card, + TResult? Function(_CreatePaymentMethodDataElements value)? elements, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_CreatePaymentMethodDataCard value)? card, + TResult Function(_CreatePaymentMethodDataElements value)? elements, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; /// Serializes this CreatePaymentMethodData to a JSON map. Map toJson() => throw _privateConstructorUsedError; - - /// Create a copy of CreatePaymentMethodData - /// with the given fields replaced by the non-null parameter values. - @JsonKey(includeFromJson: false, includeToJson: false) - $CreatePaymentMethodDataCopyWith get copyWith => - throw _privateConstructorUsedError; } /// @nodoc @@ -85,22 +126,6 @@ abstract class $CreatePaymentMethodDataCopyWith<$Res> { factory $CreatePaymentMethodDataCopyWith(CreatePaymentMethodData value, $Res Function(CreatePaymentMethodData) then) = _$CreatePaymentMethodDataCopyWithImpl<$Res, CreatePaymentMethodData>; - @useResult - $Res call( - {String type, - @ElementConverter() Element? card, - @JsonKey(name: "au_becs_debit") @ElementConverter() Element? auBecsDebit, - @ElementConverter() Element? fpx, - @JsonKey(name: "fpx[bank]") String? fpxBank, - @JsonKey(name: "netbanking[bank]") String? netbankingBank, - @ElementConverter() Element? ideal, - @JsonKey(name: "ideal[bank]") String? idealBank, - @JsonKey(name: "sepa_debit") @ElementConverter() Element? sepaDebit, - @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, - @JsonKey(name: "upi[vpa]") String? upiVpa, - @JsonKey(name: "billing_details") BillingDetails? billingDetails}); - - $BillingDetailsCopyWith<$Res>? get billingDetails; } /// @nodoc @@ -116,97 +141,14 @@ class _$CreatePaymentMethodDataCopyWithImpl<$Res, /// Create a copy of CreatePaymentMethodData /// with the given fields replaced by the non-null parameter values. - @pragma('vm:prefer-inline') - @override - $Res call({ - Object? type = null, - Object? card = freezed, - Object? auBecsDebit = freezed, - Object? fpx = freezed, - Object? fpxBank = freezed, - Object? netbankingBank = freezed, - Object? ideal = freezed, - Object? idealBank = freezed, - Object? sepaDebit = freezed, - Object? sepaDebitIban = freezed, - Object? upiVpa = freezed, - Object? billingDetails = freezed, - }) { - return _then(_value.copyWith( - type: null == type - ? _value.type - : type // ignore: cast_nullable_to_non_nullable - as String, - card: freezed == card - ? _value.card - : card // ignore: cast_nullable_to_non_nullable - as Element?, - auBecsDebit: freezed == auBecsDebit - ? _value.auBecsDebit - : auBecsDebit // ignore: cast_nullable_to_non_nullable - as Element?, - fpx: freezed == fpx - ? _value.fpx - : fpx // ignore: cast_nullable_to_non_nullable - as Element?, - fpxBank: freezed == fpxBank - ? _value.fpxBank - : fpxBank // ignore: cast_nullable_to_non_nullable - as String?, - netbankingBank: freezed == netbankingBank - ? _value.netbankingBank - : netbankingBank // ignore: cast_nullable_to_non_nullable - as String?, - ideal: freezed == ideal - ? _value.ideal - : ideal // ignore: cast_nullable_to_non_nullable - as Element?, - idealBank: freezed == idealBank - ? _value.idealBank - : idealBank // ignore: cast_nullable_to_non_nullable - as String?, - sepaDebit: freezed == sepaDebit - ? _value.sepaDebit - : sepaDebit // ignore: cast_nullable_to_non_nullable - as Element?, - sepaDebitIban: freezed == sepaDebitIban - ? _value.sepaDebitIban - : sepaDebitIban // ignore: cast_nullable_to_non_nullable - as String?, - upiVpa: freezed == upiVpa - ? _value.upiVpa - : upiVpa // ignore: cast_nullable_to_non_nullable - as String?, - billingDetails: freezed == billingDetails - ? _value.billingDetails - : billingDetails // ignore: cast_nullable_to_non_nullable - as BillingDetails?, - ) as $Val); - } - - /// Create a copy of CreatePaymentMethodData - /// with the given fields replaced by the non-null parameter values. - @override - @pragma('vm:prefer-inline') - $BillingDetailsCopyWith<$Res>? get billingDetails { - if (_value.billingDetails == null) { - return null; - } - - return $BillingDetailsCopyWith<$Res>(_value.billingDetails!, (value) { - return _then(_value.copyWith(billingDetails: value) as $Val); - }); - } } /// @nodoc -abstract class _$$CreatePaymentMethodDataImplCopyWith<$Res> - implements $CreatePaymentMethodDataCopyWith<$Res> { - factory _$$CreatePaymentMethodDataImplCopyWith( - _$CreatePaymentMethodDataImpl value, - $Res Function(_$CreatePaymentMethodDataImpl) then) = - __$$CreatePaymentMethodDataImplCopyWithImpl<$Res>; - @override +abstract class _$$CreatePaymentMethodDataCardImplCopyWith<$Res> { + factory _$$CreatePaymentMethodDataCardImplCopyWith( + _$CreatePaymentMethodDataCardImpl value, + $Res Function(_$CreatePaymentMethodDataCardImpl) then) = + __$$CreatePaymentMethodDataCardImplCopyWithImpl<$Res>; @useResult $Res call( {String type, @@ -222,18 +164,17 @@ abstract class _$$CreatePaymentMethodDataImplCopyWith<$Res> @JsonKey(name: "upi[vpa]") String? upiVpa, @JsonKey(name: "billing_details") BillingDetails? billingDetails}); - @override $BillingDetailsCopyWith<$Res>? get billingDetails; } /// @nodoc -class __$$CreatePaymentMethodDataImplCopyWithImpl<$Res> +class __$$CreatePaymentMethodDataCardImplCopyWithImpl<$Res> extends _$CreatePaymentMethodDataCopyWithImpl<$Res, - _$CreatePaymentMethodDataImpl> - implements _$$CreatePaymentMethodDataImplCopyWith<$Res> { - __$$CreatePaymentMethodDataImplCopyWithImpl( - _$CreatePaymentMethodDataImpl _value, - $Res Function(_$CreatePaymentMethodDataImpl) _then) + _$CreatePaymentMethodDataCardImpl> + implements _$$CreatePaymentMethodDataCardImplCopyWith<$Res> { + __$$CreatePaymentMethodDataCardImplCopyWithImpl( + _$CreatePaymentMethodDataCardImpl _value, + $Res Function(_$CreatePaymentMethodDataCardImpl) _then) : super(_value, _then); /// Create a copy of CreatePaymentMethodData @@ -254,7 +195,7 @@ class __$$CreatePaymentMethodDataImplCopyWithImpl<$Res> Object? upiVpa = freezed, Object? billingDetails = freezed, }) { - return _then(_$CreatePaymentMethodDataImpl( + return _then(_$CreatePaymentMethodDataCardImpl( type: null == type ? _value.type : type // ignore: cast_nullable_to_non_nullable @@ -305,12 +246,27 @@ class __$$CreatePaymentMethodDataImplCopyWithImpl<$Res> as BillingDetails?, )); } + + /// Create a copy of CreatePaymentMethodData + /// with the given fields replaced by the non-null parameter values. + @override + @pragma('vm:prefer-inline') + $BillingDetailsCopyWith<$Res>? get billingDetails { + if (_value.billingDetails == null) { + return null; + } + + return $BillingDetailsCopyWith<$Res>(_value.billingDetails!, (value) { + return _then(_value.copyWith(billingDetails: value)); + }); + } } /// @nodoc @JsonSerializable() -class _$CreatePaymentMethodDataImpl implements _CreatePaymentMethodData { - const _$CreatePaymentMethodDataImpl( +class _$CreatePaymentMethodDataCardImpl + implements _CreatePaymentMethodDataCard { + const _$CreatePaymentMethodDataCardImpl( {required this.type, @ElementConverter() this.card, @JsonKey(name: "au_becs_debit") @ElementConverter() this.auBecsDebit, @@ -322,10 +278,13 @@ class _$CreatePaymentMethodDataImpl implements _CreatePaymentMethodData { @JsonKey(name: "sepa_debit") @ElementConverter() this.sepaDebit, @JsonKey(name: "sepa_debit[iban]") this.sepaDebitIban, @JsonKey(name: "upi[vpa]") this.upiVpa, - @JsonKey(name: "billing_details") this.billingDetails}); + @JsonKey(name: "billing_details") this.billingDetails, + final String? $type}) + : $type = $type ?? 'card'; - factory _$CreatePaymentMethodDataImpl.fromJson(Map json) => - _$$CreatePaymentMethodDataImplFromJson(json); + factory _$CreatePaymentMethodDataCardImpl.fromJson( + Map json) => + _$$CreatePaymentMethodDataCardImplFromJson(json); /// Unique identifier for the object. @override @@ -388,16 +347,19 @@ class _$CreatePaymentMethodDataImpl implements _CreatePaymentMethodData { @JsonKey(name: "billing_details") final BillingDetails? billingDetails; + @JsonKey(name: 'runtimeType') + final String $type; + @override String toString() { - return 'CreatePaymentMethodData(type: $type, card: $card, auBecsDebit: $auBecsDebit, fpx: $fpx, fpxBank: $fpxBank, netbankingBank: $netbankingBank, ideal: $ideal, idealBank: $idealBank, sepaDebit: $sepaDebit, sepaDebitIban: $sepaDebitIban, upiVpa: $upiVpa, billingDetails: $billingDetails)'; + return 'CreatePaymentMethodData.card(type: $type, card: $card, auBecsDebit: $auBecsDebit, fpx: $fpx, fpxBank: $fpxBank, netbankingBank: $netbankingBank, ideal: $ideal, idealBank: $idealBank, sepaDebit: $sepaDebit, sepaDebitIban: $sepaDebitIban, upiVpa: $upiVpa, billingDetails: $billingDetails)'; } @override bool operator ==(Object other) { return identical(this, other) || (other.runtimeType == runtimeType && - other is _$CreatePaymentMethodDataImpl && + other is _$CreatePaymentMethodDataCardImpl && (identical(other.type, type) || other.type == type) && (identical(other.card, card) || other.card == card) && (identical(other.auBecsDebit, auBecsDebit) || @@ -440,20 +402,141 @@ class _$CreatePaymentMethodDataImpl implements _CreatePaymentMethodData { @JsonKey(includeFromJson: false, includeToJson: false) @override @pragma('vm:prefer-inline') - _$$CreatePaymentMethodDataImplCopyWith<_$CreatePaymentMethodDataImpl> - get copyWith => __$$CreatePaymentMethodDataImplCopyWithImpl< - _$CreatePaymentMethodDataImpl>(this, _$identity); + _$$CreatePaymentMethodDataCardImplCopyWith<_$CreatePaymentMethodDataCardImpl> + get copyWith => __$$CreatePaymentMethodDataCardImplCopyWithImpl< + _$CreatePaymentMethodDataCardImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function( + String type, + @ElementConverter() Element? card, + @JsonKey(name: "au_becs_debit") + @ElementConverter() + Element? auBecsDebit, + @ElementConverter() Element? fpx, + @JsonKey(name: "fpx[bank]") String? fpxBank, + @JsonKey(name: "netbanking[bank]") String? netbankingBank, + @ElementConverter() Element? ideal, + @JsonKey(name: "ideal[bank]") String? idealBank, + @JsonKey(name: "sepa_debit") @ElementConverter() Element? sepaDebit, + @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, + @JsonKey(name: "upi[vpa]") String? upiVpa, + @JsonKey(name: "billing_details") BillingDetails? billingDetails) + card, + required TResult Function(@ElementsConverter() Elements elements) elements, + }) { + return card(type, this.card, auBecsDebit, fpx, fpxBank, netbankingBank, + ideal, idealBank, sepaDebit, sepaDebitIban, upiVpa, billingDetails); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function( + String type, + @ElementConverter() Element? card, + @JsonKey(name: "au_becs_debit") + @ElementConverter() + Element? auBecsDebit, + @ElementConverter() Element? fpx, + @JsonKey(name: "fpx[bank]") String? fpxBank, + @JsonKey(name: "netbanking[bank]") String? netbankingBank, + @ElementConverter() Element? ideal, + @JsonKey(name: "ideal[bank]") String? idealBank, + @JsonKey(name: "sepa_debit") @ElementConverter() Element? sepaDebit, + @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, + @JsonKey(name: "upi[vpa]") String? upiVpa, + @JsonKey(name: "billing_details") BillingDetails? billingDetails)? + card, + TResult? Function(@ElementsConverter() Elements elements)? elements, + }) { + return card?.call( + type, + this.card, + auBecsDebit, + fpx, + fpxBank, + netbankingBank, + ideal, + idealBank, + sepaDebit, + sepaDebitIban, + upiVpa, + billingDetails); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function( + String type, + @ElementConverter() Element? card, + @JsonKey(name: "au_becs_debit") + @ElementConverter() + Element? auBecsDebit, + @ElementConverter() Element? fpx, + @JsonKey(name: "fpx[bank]") String? fpxBank, + @JsonKey(name: "netbanking[bank]") String? netbankingBank, + @ElementConverter() Element? ideal, + @JsonKey(name: "ideal[bank]") String? idealBank, + @JsonKey(name: "sepa_debit") @ElementConverter() Element? sepaDebit, + @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, + @JsonKey(name: "upi[vpa]") String? upiVpa, + @JsonKey(name: "billing_details") BillingDetails? billingDetails)? + card, + TResult Function(@ElementsConverter() Elements elements)? elements, + required TResult orElse(), + }) { + if (card != null) { + return card(type, this.card, auBecsDebit, fpx, fpxBank, netbankingBank, + ideal, idealBank, sepaDebit, sepaDebitIban, upiVpa, billingDetails); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_CreatePaymentMethodDataCard value) card, + required TResult Function(_CreatePaymentMethodDataElements value) elements, + }) { + return card(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_CreatePaymentMethodDataCard value)? card, + TResult? Function(_CreatePaymentMethodDataElements value)? elements, + }) { + return card?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_CreatePaymentMethodDataCard value)? card, + TResult Function(_CreatePaymentMethodDataElements value)? elements, + required TResult orElse(), + }) { + if (card != null) { + return card(this); + } + return orElse(); + } @override Map toJson() { - return _$$CreatePaymentMethodDataImplToJson( + return _$$CreatePaymentMethodDataCardImplToJson( this, ); } } -abstract class _CreatePaymentMethodData implements CreatePaymentMethodData { - const factory _CreatePaymentMethodData( +abstract class _CreatePaymentMethodDataCard implements CreatePaymentMethodData { + const factory _CreatePaymentMethodDataCard( {required final String type, @ElementConverter() final Element? card, @JsonKey(name: "au_becs_debit") @@ -468,76 +551,282 @@ abstract class _CreatePaymentMethodData implements CreatePaymentMethodData { @JsonKey(name: "sepa_debit[iban]") final String? sepaDebitIban, @JsonKey(name: "upi[vpa]") final String? upiVpa, @JsonKey(name: "billing_details") - final BillingDetails? billingDetails}) = _$CreatePaymentMethodDataImpl; + final BillingDetails? + billingDetails}) = _$CreatePaymentMethodDataCardImpl; - factory _CreatePaymentMethodData.fromJson(Map json) = - _$CreatePaymentMethodDataImpl.fromJson; + factory _CreatePaymentMethodDataCard.fromJson(Map json) = + _$CreatePaymentMethodDataCardImpl.fromJson; /// Unique identifier for the object. - @override String get type; /// A card or cardNumber Element. - @override @ElementConverter() Element? get card; /// An auBankAccount Element. - @override @JsonKey(name: "au_becs_debit") @ElementConverter() Element? get auBecsDebit; /// An fpx Element. - @override @ElementConverter() Element? get fpx; /// The customer's bank. - @override @JsonKey(name: "fpx[bank]") String? get fpxBank; /// The customer's bank. - @override @JsonKey(name: "netbanking[bank]") String? get netbankingBank; /// An idealBank Element. - @override @ElementConverter() Element? get ideal; /// The customer's bank. - @override @JsonKey(name: "ideal[bank]") String? get idealBank; /// An iban Element. - @override @JsonKey(name: "sepa_debit") @ElementConverter() Element? get sepaDebit; /// An IBAN account number. - @override @JsonKey(name: "sepa_debit[iban]") String? get sepaDebitIban; /// The customer's VPA. - @override @JsonKey(name: "upi[vpa]") String? get upiVpa; /// Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. - @override @JsonKey(name: "billing_details") BillingDetails? get billingDetails; /// Create a copy of CreatePaymentMethodData /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + _$$CreatePaymentMethodDataCardImplCopyWith<_$CreatePaymentMethodDataCardImpl> + get copyWith => throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class _$$CreatePaymentMethodDataElementsImplCopyWith<$Res> { + factory _$$CreatePaymentMethodDataElementsImplCopyWith( + _$CreatePaymentMethodDataElementsImpl value, + $Res Function(_$CreatePaymentMethodDataElementsImpl) then) = + __$$CreatePaymentMethodDataElementsImplCopyWithImpl<$Res>; + @useResult + $Res call({@ElementsConverter() Elements elements}); +} + +/// @nodoc +class __$$CreatePaymentMethodDataElementsImplCopyWithImpl<$Res> + extends _$CreatePaymentMethodDataCopyWithImpl<$Res, + _$CreatePaymentMethodDataElementsImpl> + implements _$$CreatePaymentMethodDataElementsImplCopyWith<$Res> { + __$$CreatePaymentMethodDataElementsImplCopyWithImpl( + _$CreatePaymentMethodDataElementsImpl _value, + $Res Function(_$CreatePaymentMethodDataElementsImpl) _then) + : super(_value, _then); + + /// Create a copy of CreatePaymentMethodData + /// with the given fields replaced by the non-null parameter values. + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? elements = null, + }) { + return _then(_$CreatePaymentMethodDataElementsImpl( + elements: null == elements + ? _value.elements + : elements // ignore: cast_nullable_to_non_nullable + as Elements, + )); + } +} + +/// @nodoc +@JsonSerializable() +class _$CreatePaymentMethodDataElementsImpl + implements _CreatePaymentMethodDataElements { + const _$CreatePaymentMethodDataElementsImpl( + {@ElementsConverter() required this.elements, final String? $type}) + : $type = $type ?? 'elements'; + + factory _$CreatePaymentMethodDataElementsImpl.fromJson( + Map json) => + _$$CreatePaymentMethodDataElementsImplFromJson(json); + @override + @ElementsConverter() + final Elements elements; + + @JsonKey(name: 'runtimeType') + final String $type; + + @override + String toString() { + return 'CreatePaymentMethodData.elements(elements: $elements)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$CreatePaymentMethodDataElementsImpl && + (identical(other.elements, elements) || + other.elements == elements)); + } + + @JsonKey(includeFromJson: false, includeToJson: false) + @override + int get hashCode => Object.hash(runtimeType, elements); + + /// Create a copy of CreatePaymentMethodData + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + @override + @pragma('vm:prefer-inline') + _$$CreatePaymentMethodDataElementsImplCopyWith< + _$CreatePaymentMethodDataElementsImpl> + get copyWith => __$$CreatePaymentMethodDataElementsImplCopyWithImpl< + _$CreatePaymentMethodDataElementsImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function( + String type, + @ElementConverter() Element? card, + @JsonKey(name: "au_becs_debit") + @ElementConverter() + Element? auBecsDebit, + @ElementConverter() Element? fpx, + @JsonKey(name: "fpx[bank]") String? fpxBank, + @JsonKey(name: "netbanking[bank]") String? netbankingBank, + @ElementConverter() Element? ideal, + @JsonKey(name: "ideal[bank]") String? idealBank, + @JsonKey(name: "sepa_debit") @ElementConverter() Element? sepaDebit, + @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, + @JsonKey(name: "upi[vpa]") String? upiVpa, + @JsonKey(name: "billing_details") BillingDetails? billingDetails) + card, + required TResult Function(@ElementsConverter() Elements elements) elements, + }) { + return elements(this.elements); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function( + String type, + @ElementConverter() Element? card, + @JsonKey(name: "au_becs_debit") + @ElementConverter() + Element? auBecsDebit, + @ElementConverter() Element? fpx, + @JsonKey(name: "fpx[bank]") String? fpxBank, + @JsonKey(name: "netbanking[bank]") String? netbankingBank, + @ElementConverter() Element? ideal, + @JsonKey(name: "ideal[bank]") String? idealBank, + @JsonKey(name: "sepa_debit") @ElementConverter() Element? sepaDebit, + @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, + @JsonKey(name: "upi[vpa]") String? upiVpa, + @JsonKey(name: "billing_details") BillingDetails? billingDetails)? + card, + TResult? Function(@ElementsConverter() Elements elements)? elements, + }) { + return elements?.call(this.elements); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function( + String type, + @ElementConverter() Element? card, + @JsonKey(name: "au_becs_debit") + @ElementConverter() + Element? auBecsDebit, + @ElementConverter() Element? fpx, + @JsonKey(name: "fpx[bank]") String? fpxBank, + @JsonKey(name: "netbanking[bank]") String? netbankingBank, + @ElementConverter() Element? ideal, + @JsonKey(name: "ideal[bank]") String? idealBank, + @JsonKey(name: "sepa_debit") @ElementConverter() Element? sepaDebit, + @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, + @JsonKey(name: "upi[vpa]") String? upiVpa, + @JsonKey(name: "billing_details") BillingDetails? billingDetails)? + card, + TResult Function(@ElementsConverter() Elements elements)? elements, + required TResult orElse(), + }) { + if (elements != null) { + return elements(this.elements); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_CreatePaymentMethodDataCard value) card, + required TResult Function(_CreatePaymentMethodDataElements value) elements, + }) { + return elements(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_CreatePaymentMethodDataCard value)? card, + TResult? Function(_CreatePaymentMethodDataElements value)? elements, + }) { + return elements?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_CreatePaymentMethodDataCard value)? card, + TResult Function(_CreatePaymentMethodDataElements value)? elements, + required TResult orElse(), + }) { + if (elements != null) { + return elements(this); + } + return orElse(); + } + + @override + Map toJson() { + return _$$CreatePaymentMethodDataElementsImplToJson( + this, + ); + } +} + +abstract class _CreatePaymentMethodDataElements + implements CreatePaymentMethodData { + const factory _CreatePaymentMethodDataElements( + {@ElementsConverter() required final Elements elements}) = + _$CreatePaymentMethodDataElementsImpl; + + factory _CreatePaymentMethodDataElements.fromJson(Map json) = + _$CreatePaymentMethodDataElementsImpl.fromJson; + + @ElementsConverter() + Elements get elements; + + /// Create a copy of CreatePaymentMethodData + /// with the given fields replaced by the non-null parameter values. @JsonKey(includeFromJson: false, includeToJson: false) - _$$CreatePaymentMethodDataImplCopyWith<_$CreatePaymentMethodDataImpl> + _$$CreatePaymentMethodDataElementsImplCopyWith< + _$CreatePaymentMethodDataElementsImpl> get copyWith => throw _privateConstructorUsedError; } diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.g.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.g.dart index 1d6304ca1..dc9aa7e65 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.g.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.g.dart @@ -6,9 +6,9 @@ part of 'create_payment_method_data.dart'; // JsonSerializableGenerator // ************************************************************************** -_$CreatePaymentMethodDataImpl _$$CreatePaymentMethodDataImplFromJson( +_$CreatePaymentMethodDataCardImpl _$$CreatePaymentMethodDataCardImplFromJson( Map json) => - _$CreatePaymentMethodDataImpl( + _$CreatePaymentMethodDataCardImpl( type: json['type'] as String, card: const ElementConverter().fromJson(json['card']), auBecsDebit: const ElementConverter().fromJson(json['au_becs_debit']), @@ -24,10 +24,11 @@ _$CreatePaymentMethodDataImpl _$$CreatePaymentMethodDataImplFromJson( ? null : BillingDetails.fromJson( Map.from(json['billing_details'] as Map)), + $type: json['runtimeType'] as String?, ); -Map _$$CreatePaymentMethodDataImplToJson( - _$CreatePaymentMethodDataImpl instance) { +Map _$$CreatePaymentMethodDataCardImplToJson( + _$CreatePaymentMethodDataCardImpl instance) { final val = { 'type': instance.type, }; @@ -64,6 +65,7 @@ Map _$$CreatePaymentMethodDataImplToJson( writeNotNull('sepa_debit[iban]', instance.sepaDebitIban); writeNotNull('upi[vpa]', instance.upiVpa); writeNotNull('billing_details', instance.billingDetails?.toJson()); + val['runtimeType'] = instance.$type; return val; } @@ -72,3 +74,25 @@ Json? _$JsonConverterToJson( Json? Function(Value value) toJson, ) => value == null ? null : toJson(value); + +_$CreatePaymentMethodDataElementsImpl + _$$CreatePaymentMethodDataElementsImplFromJson(Map json) => + _$CreatePaymentMethodDataElementsImpl( + elements: const ElementsConverter().fromJson(json['elements']), + $type: json['runtimeType'] as String?, + ); + +Map _$$CreatePaymentMethodDataElementsImplToJson( + _$CreatePaymentMethodDataElementsImpl instance) { + final val = {}; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('elements', const ElementsConverter().toJson(instance.elements)); + val['runtimeType'] = instance.$type; + return val; +} diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart deleted file mode 100644 index ac47435b8..000000000 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.dart +++ /dev/null @@ -1,18 +0,0 @@ -import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stripe_js/src/api/converters/js_converter.dart'; -import 'package:stripe_js/src/api/elements/elements.dart'; - -part 'create_payment_method_with_elements_data.freezed.dart'; -part 'create_payment_method_with_elements_data.g.dart'; - -@freezed -class CreatePaymentMethodWithElementsData - with _$CreatePaymentMethodWithElementsData { - const factory CreatePaymentMethodWithElementsData({ - @ElementsConverter() required Elements elements, - }) = _CreatePaymentMethodWithElementsData; - - factory CreatePaymentMethodWithElementsData.fromJson( - Map json) => - _$CreatePaymentMethodWithElementsDataFromJson(json); -} diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart deleted file mode 100644 index e47af5695..000000000 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.freezed.dart +++ /dev/null @@ -1,173 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark - -part of 'create_payment_method_with_elements_data.dart'; - -// ************************************************************************** -// FreezedGenerator -// ************************************************************************** - -T _$identity(T value) => value; - -final _privateConstructorUsedError = UnsupportedError( - 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models'); - -CreatePaymentMethodWithElementsData - _$CreatePaymentMethodWithElementsDataFromJson(Map json) { - return _CreatePaymentMethodWithElementsData.fromJson(json); -} - -/// @nodoc -mixin _$CreatePaymentMethodWithElementsData { - @ElementsConverter() - Elements get elements => throw _privateConstructorUsedError; - - Map toJson() => throw _privateConstructorUsedError; - @JsonKey(ignore: true) - $CreatePaymentMethodWithElementsDataCopyWith< - CreatePaymentMethodWithElementsData> - get copyWith => throw _privateConstructorUsedError; -} - -/// @nodoc -abstract class $CreatePaymentMethodWithElementsDataCopyWith<$Res> { - factory $CreatePaymentMethodWithElementsDataCopyWith( - CreatePaymentMethodWithElementsData value, - $Res Function(CreatePaymentMethodWithElementsData) then) = - _$CreatePaymentMethodWithElementsDataCopyWithImpl<$Res, - CreatePaymentMethodWithElementsData>; - @useResult - $Res call({@ElementsConverter() Elements elements}); -} - -/// @nodoc -class _$CreatePaymentMethodWithElementsDataCopyWithImpl<$Res, - $Val extends CreatePaymentMethodWithElementsData> - implements $CreatePaymentMethodWithElementsDataCopyWith<$Res> { - _$CreatePaymentMethodWithElementsDataCopyWithImpl(this._value, this._then); - - // ignore: unused_field - final $Val _value; - // ignore: unused_field - final $Res Function($Val) _then; - - @pragma('vm:prefer-inline') - @override - $Res call({ - Object? elements = null, - }) { - return _then(_value.copyWith( - elements: null == elements - ? _value.elements - : elements // ignore: cast_nullable_to_non_nullable - as Elements, - ) as $Val); - } -} - -/// @nodoc -abstract class _$$CreatePaymentMethodWithElementsDataImplCopyWith<$Res> - implements $CreatePaymentMethodWithElementsDataCopyWith<$Res> { - factory _$$CreatePaymentMethodWithElementsDataImplCopyWith( - _$CreatePaymentMethodWithElementsDataImpl value, - $Res Function(_$CreatePaymentMethodWithElementsDataImpl) then) = - __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl<$Res>; - @override - @useResult - $Res call({@ElementsConverter() Elements elements}); -} - -/// @nodoc -class __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl<$Res> - extends _$CreatePaymentMethodWithElementsDataCopyWithImpl<$Res, - _$CreatePaymentMethodWithElementsDataImpl> - implements _$$CreatePaymentMethodWithElementsDataImplCopyWith<$Res> { - __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl( - _$CreatePaymentMethodWithElementsDataImpl _value, - $Res Function(_$CreatePaymentMethodWithElementsDataImpl) _then) - : super(_value, _then); - - @pragma('vm:prefer-inline') - @override - $Res call({ - Object? elements = null, - }) { - return _then(_$CreatePaymentMethodWithElementsDataImpl( - elements: null == elements - ? _value.elements - : elements // ignore: cast_nullable_to_non_nullable - as Elements, - )); - } -} - -/// @nodoc -@JsonSerializable() -class _$CreatePaymentMethodWithElementsDataImpl - implements _CreatePaymentMethodWithElementsData { - const _$CreatePaymentMethodWithElementsDataImpl( - {@ElementsConverter() required this.elements}); - - factory _$CreatePaymentMethodWithElementsDataImpl.fromJson( - Map json) => - _$$CreatePaymentMethodWithElementsDataImplFromJson(json); - - @override - @ElementsConverter() - final Elements elements; - - @override - String toString() { - return 'CreatePaymentMethodWithElementsData(elements: $elements)'; - } - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && - other is _$CreatePaymentMethodWithElementsDataImpl && - (identical(other.elements, elements) || - other.elements == elements)); - } - - @JsonKey(ignore: true) - @override - int get hashCode => Object.hash(runtimeType, elements); - - @JsonKey(ignore: true) - @override - @pragma('vm:prefer-inline') - _$$CreatePaymentMethodWithElementsDataImplCopyWith< - _$CreatePaymentMethodWithElementsDataImpl> - get copyWith => __$$CreatePaymentMethodWithElementsDataImplCopyWithImpl< - _$CreatePaymentMethodWithElementsDataImpl>(this, _$identity); - - @override - Map toJson() { - return _$$CreatePaymentMethodWithElementsDataImplToJson( - this, - ); - } -} - -abstract class _CreatePaymentMethodWithElementsData - implements CreatePaymentMethodWithElementsData { - const factory _CreatePaymentMethodWithElementsData( - {@ElementsConverter() required final Elements elements}) = - _$CreatePaymentMethodWithElementsDataImpl; - - factory _CreatePaymentMethodWithElementsData.fromJson( - Map json) = - _$CreatePaymentMethodWithElementsDataImpl.fromJson; - - @override - @ElementsConverter() - Elements get elements; - @override - @JsonKey(ignore: true) - _$$CreatePaymentMethodWithElementsDataImplCopyWith< - _$CreatePaymentMethodWithElementsDataImpl> - get copyWith => throw _privateConstructorUsedError; -} diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart deleted file mode 100644 index d560d807a..000000000 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_with_elements_data.g.dart +++ /dev/null @@ -1,27 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'create_payment_method_with_elements_data.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -_$CreatePaymentMethodWithElementsDataImpl - _$$CreatePaymentMethodWithElementsDataImplFromJson(Map json) => - _$CreatePaymentMethodWithElementsDataImpl( - elements: const ElementsConverter().fromJson(json['elements']), - ); - -Map _$$CreatePaymentMethodWithElementsDataImplToJson( - _$CreatePaymentMethodWithElementsDataImpl instance) { - final val = {}; - - void writeNotNull(String key, dynamic value) { - if (value != null) { - val[key] = value; - } - } - - writeNotNull('elements', const ElementsConverter().toJson(instance.elements)); - return val; -} diff --git a/packages/stripe_js/lib/src/api/payment_methods/payment_methods.dart b/packages/stripe_js/lib/src/api/payment_methods/payment_methods.dart index 38af1932f..7ef80bfd3 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/payment_methods.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/payment_methods.dart @@ -1,5 +1,4 @@ export 'create_payment_method_data.dart'; -export 'create_payment_method_with_elements_data.dart'; export 'payment_method.dart'; export 'payment_method_details.dart'; export 'payment_method_params.dart'; diff --git a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart deleted file mode 100644 index db83fb6b3..000000000 --- a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method_with_elements.dart +++ /dev/null @@ -1,30 +0,0 @@ -import 'dart:js_interop'; - -import 'package:stripe_js/stripe_api.dart'; -import 'package:stripe_js/stripe_js.dart'; - -import '../utils/utils.dart'; - -extension ExtensionCreatePaymentMethodWithElements on Stripe { - /// Use stripe.createPaymentMethod to convert payment information collected by - /// elements into a PaymentMethod object that you safely pass to your server - /// to use in an API call. - - /// NOTE: In most integrations, you will not need to use this method. Instead, - ///use methods like stripe.confirmPayment, which will automatically create a - /// PaymentMethod when you confirm a PaymentIntent. - /// - /// https://docs.stripe.com/js/payment_methods/create_payment_method_elements - Future createPaymentMethodWithElements( - CreatePaymentMethodWithElementsData data, - ) { - final jsData = data.toJson().jsify(); - - return _createPaymentMethod(jsData) - .toDart - .then((response) => response.toDart); - } - - @JS('createPaymentMethod') - external JSPromise _createPaymentMethod(JSAny? data); -} diff --git a/packages/stripe_js/lib/src/js/payment_methods/payment_methods.dart b/packages/stripe_js/lib/src/js/payment_methods/payment_methods.dart index 41526a312..2c942e205 100644 --- a/packages/stripe_js/lib/src/js/payment_methods/payment_methods.dart +++ b/packages/stripe_js/lib/src/js/payment_methods/payment_methods.dart @@ -1,2 +1 @@ export 'create_payment_method.dart'; -export 'create_payment_method_with_elements.dart'; diff --git a/packages/stripe_js/test/src/js/payment_methods/create_payment_method_test.dart b/packages/stripe_js/test/src/js/payment_methods/create_payment_method_test.dart index 929ef8a86..af32ad2b7 100644 --- a/packages/stripe_js/test/src/js/payment_methods/create_payment_method_test.dart +++ b/packages/stripe_js/test/src/js/payment_methods/create_payment_method_test.dart @@ -27,7 +27,7 @@ void main() { await card.waitForReady(); expect( stripe.createPaymentMethod( - CreatePaymentMethodData(type: 'card', card: card), + CreatePaymentMethodData.card(type: 'card', card: card), ), completes, ); @@ -41,7 +41,7 @@ void main() { await card.waitForReady(); final response = await stripe.createPaymentMethod( - CreatePaymentMethodData(type: 'card', card: card), + CreatePaymentMethodData.card(type: 'card', card: card), ); expect( response.error?.toJson(), diff --git a/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart b/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart index 87efab104..6ec57de6b 100644 --- a/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart +++ b/packages/stripe_platform_interface/lib/src/method_channel_stripe.dart @@ -102,10 +102,6 @@ class MethodChannelStripe extends StripePlatform { .parse(result: result!, successResultKey: 'paymentMethod'); } - @override - Future createPaymentMethodWithElements() => - throw UnimplementedError(); - @override Future elementsSubmit() => throw UnimplementedError(); diff --git a/packages/stripe_platform_interface/lib/src/models/payment_methods.dart b/packages/stripe_platform_interface/lib/src/models/payment_methods.dart index b03c5acde..f57b0fa35 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_methods.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_methods.dart @@ -515,6 +515,10 @@ class PaymentMethodParams with _$PaymentMethodParams { required PaymentMethodDataUsBank paymentMethodData, }) = _PaymentMethodParamsUsBankAccount; + @JsonSerializable(explicitToJson: true) + @FreezedUnionValue('Elements') + const factory PaymentMethodParams.elements() = _PaymentMethodParamsElements; + // TODO uncomment and regenerate when we can re-enable wechat pay // @JsonSerializable(explicitToJson: true) // @FreezedUnionValue('WeChatPay') diff --git a/packages/stripe_platform_interface/lib/src/models/payment_methods.freezed.dart b/packages/stripe_platform_interface/lib/src/models/payment_methods.freezed.dart index bbd0bd213..d1f0eadb6 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_methods.freezed.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_methods.freezed.dart @@ -3048,6 +3048,8 @@ PaymentMethodParams _$PaymentMethodParamsFromJson(Map json) { return _PaymentMethodParamsRevolutPay.fromJson(json); case 'USBankAccount': return _PaymentMethodParamsUsBankAccount.fromJson(json); + case 'Elements': + return _PaymentMethodParamsElements.fromJson(json); default: throw CheckedFromJsonException( @@ -3060,8 +3062,6 @@ PaymentMethodParams _$PaymentMethodParamsFromJson(Map json) { /// @nodoc mixin _$PaymentMethodParams { - /// Paymentmethod data for this paymentmethod. - Object get paymentMethodData => throw _privateConstructorUsedError; @optionalTypeArgs TResult when({ required TResult Function(PaymentMethodData paymentMethodData) card, @@ -3091,6 +3091,7 @@ mixin _$PaymentMethodParams { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) => throw _privateConstructorUsedError; @optionalTypeArgs @@ -3120,6 +3121,7 @@ mixin _$PaymentMethodParams { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) => throw _privateConstructorUsedError; @optionalTypeArgs @@ -3149,6 +3151,7 @@ mixin _$PaymentMethodParams { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) => throw _privateConstructorUsedError; @@ -3180,6 +3183,7 @@ mixin _$PaymentMethodParams { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) => throw _privateConstructorUsedError; @optionalTypeArgs @@ -3208,6 +3212,7 @@ mixin _$PaymentMethodParams { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) => throw _privateConstructorUsedError; @optionalTypeArgs @@ -3236,6 +3241,7 @@ mixin _$PaymentMethodParams { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) => throw _privateConstructorUsedError; @@ -3388,6 +3394,7 @@ class _$PaymentMethodParamsCardImpl implements _PaymentMethodParamsCard { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return card(paymentMethodData); } @@ -3420,6 +3427,7 @@ class _$PaymentMethodParamsCardImpl implements _PaymentMethodParamsCard { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return card?.call(paymentMethodData); } @@ -3452,6 +3460,7 @@ class _$PaymentMethodParamsCardImpl implements _PaymentMethodParamsCard { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (card != null) { @@ -3489,6 +3498,7 @@ class _$PaymentMethodParamsCardImpl implements _PaymentMethodParamsCard { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return card(this); } @@ -3520,6 +3530,7 @@ class _$PaymentMethodParamsCardImpl implements _PaymentMethodParamsCard { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return card?.call(this); } @@ -3551,6 +3562,7 @@ class _$PaymentMethodParamsCardImpl implements _PaymentMethodParamsCard { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (card != null) { @@ -3576,7 +3588,6 @@ abstract class _PaymentMethodParamsCard implements PaymentMethodParams { _$PaymentMethodParamsCardImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -3713,6 +3724,7 @@ class _$PaymentMethodParamsCardWithTokenImpl required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return cardFromToken(paymentMethodData); } @@ -3745,6 +3757,7 @@ class _$PaymentMethodParamsCardWithTokenImpl TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return cardFromToken?.call(paymentMethodData); } @@ -3777,6 +3790,7 @@ class _$PaymentMethodParamsCardWithTokenImpl TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (cardFromToken != null) { @@ -3814,6 +3828,7 @@ class _$PaymentMethodParamsCardWithTokenImpl required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return cardFromToken(this); } @@ -3845,6 +3860,7 @@ class _$PaymentMethodParamsCardWithTokenImpl TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return cardFromToken?.call(this); } @@ -3876,6 +3892,7 @@ class _$PaymentMethodParamsCardWithTokenImpl TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (cardFromToken != null) { @@ -3903,7 +3920,6 @@ abstract class _PaymentMethodParamsCardWithToken _$PaymentMethodParamsCardWithTokenImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodDataCardFromToken get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -4041,6 +4057,7 @@ class _$PaymentMethodParamsCardWithMethodIdImpl required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return cardFromMethodId(paymentMethodData); } @@ -4073,6 +4090,7 @@ class _$PaymentMethodParamsCardWithMethodIdImpl TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return cardFromMethodId?.call(paymentMethodData); } @@ -4105,6 +4123,7 @@ class _$PaymentMethodParamsCardWithMethodIdImpl TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (cardFromMethodId != null) { @@ -4142,6 +4161,7 @@ class _$PaymentMethodParamsCardWithMethodIdImpl required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return cardFromMethodId(this); } @@ -4173,6 +4193,7 @@ class _$PaymentMethodParamsCardWithMethodIdImpl TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return cardFromMethodId?.call(this); } @@ -4204,6 +4225,7 @@ class _$PaymentMethodParamsCardWithMethodIdImpl TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (cardFromMethodId != null) { @@ -4231,7 +4253,6 @@ abstract class _PaymentMethodParamsCardWithMethodId _$PaymentMethodParamsCardWithMethodIdImpl.fromJson; /// Payment method data object for card from payment method. - @override PaymentMethodDataCardFromMethod get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -4365,6 +4386,7 @@ class _$PaymentMethodParamsAlipayImpl implements _PaymentMethodParamsAlipay { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return alipay(paymentMethodData); } @@ -4397,6 +4419,7 @@ class _$PaymentMethodParamsAlipayImpl implements _PaymentMethodParamsAlipay { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return alipay?.call(paymentMethodData); } @@ -4429,6 +4452,7 @@ class _$PaymentMethodParamsAlipayImpl implements _PaymentMethodParamsAlipay { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (alipay != null) { @@ -4466,6 +4490,7 @@ class _$PaymentMethodParamsAlipayImpl implements _PaymentMethodParamsAlipay { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return alipay(this); } @@ -4497,6 +4522,7 @@ class _$PaymentMethodParamsAlipayImpl implements _PaymentMethodParamsAlipay { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return alipay?.call(this); } @@ -4528,6 +4554,7 @@ class _$PaymentMethodParamsAlipayImpl implements _PaymentMethodParamsAlipay { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (alipay != null) { @@ -4553,7 +4580,6 @@ abstract class _PaymentMethodParamsAlipay implements PaymentMethodParams { _$PaymentMethodParamsAlipayImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -4689,6 +4715,7 @@ class _$PaymentMethodParamsCashAppPayImpl required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return cashAppPay(paymentMethodData); } @@ -4721,6 +4748,7 @@ class _$PaymentMethodParamsCashAppPayImpl TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return cashAppPay?.call(paymentMethodData); } @@ -4753,6 +4781,7 @@ class _$PaymentMethodParamsCashAppPayImpl TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (cashAppPay != null) { @@ -4790,6 +4819,7 @@ class _$PaymentMethodParamsCashAppPayImpl required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return cashAppPay(this); } @@ -4821,6 +4851,7 @@ class _$PaymentMethodParamsCashAppPayImpl TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return cashAppPay?.call(this); } @@ -4852,6 +4883,7 @@ class _$PaymentMethodParamsCashAppPayImpl TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (cashAppPay != null) { @@ -4877,7 +4909,6 @@ abstract class _PaymentMethodParamsCashAppPay implements PaymentMethodParams { _$PaymentMethodParamsCashAppPayImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -5012,6 +5043,7 @@ class _$PaymentMethodParamsIdealImpl implements _PaymentMethodParamsIdeal { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return ideal(paymentMethodData); } @@ -5044,6 +5076,7 @@ class _$PaymentMethodParamsIdealImpl implements _PaymentMethodParamsIdeal { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return ideal?.call(paymentMethodData); } @@ -5076,6 +5109,7 @@ class _$PaymentMethodParamsIdealImpl implements _PaymentMethodParamsIdeal { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (ideal != null) { @@ -5113,6 +5147,7 @@ class _$PaymentMethodParamsIdealImpl implements _PaymentMethodParamsIdeal { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return ideal(this); } @@ -5144,6 +5179,7 @@ class _$PaymentMethodParamsIdealImpl implements _PaymentMethodParamsIdeal { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return ideal?.call(this); } @@ -5175,6 +5211,7 @@ class _$PaymentMethodParamsIdealImpl implements _PaymentMethodParamsIdeal { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (ideal != null) { @@ -5200,7 +5237,6 @@ abstract class _PaymentMethodParamsIdeal implements PaymentMethodParams { _$PaymentMethodParamsIdealImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodDataIdeal get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -5334,6 +5370,7 @@ class _$PaymentMethodParamsAubecsImpl implements _PaymentMethodParamsAubecs { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return aubecs(paymentMethodData); } @@ -5366,6 +5403,7 @@ class _$PaymentMethodParamsAubecsImpl implements _PaymentMethodParamsAubecs { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return aubecs?.call(paymentMethodData); } @@ -5398,6 +5436,7 @@ class _$PaymentMethodParamsAubecsImpl implements _PaymentMethodParamsAubecs { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (aubecs != null) { @@ -5435,6 +5474,7 @@ class _$PaymentMethodParamsAubecsImpl implements _PaymentMethodParamsAubecs { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return aubecs(this); } @@ -5466,6 +5506,7 @@ class _$PaymentMethodParamsAubecsImpl implements _PaymentMethodParamsAubecs { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return aubecs?.call(this); } @@ -5497,6 +5538,7 @@ class _$PaymentMethodParamsAubecsImpl implements _PaymentMethodParamsAubecs { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (aubecs != null) { @@ -5522,7 +5564,6 @@ abstract class _PaymentMethodParamsAubecs implements PaymentMethodParams { _$PaymentMethodParamsAubecsImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodDataAubecs get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -5658,6 +5699,7 @@ class _$PaymentMethodParamsBankContactImpl required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return bancontact(paymentMethodData); } @@ -5690,6 +5732,7 @@ class _$PaymentMethodParamsBankContactImpl TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return bancontact?.call(paymentMethodData); } @@ -5722,6 +5765,7 @@ class _$PaymentMethodParamsBankContactImpl TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (bancontact != null) { @@ -5759,6 +5803,7 @@ class _$PaymentMethodParamsBankContactImpl required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return bancontact(this); } @@ -5790,6 +5835,7 @@ class _$PaymentMethodParamsBankContactImpl TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return bancontact?.call(this); } @@ -5821,6 +5867,7 @@ class _$PaymentMethodParamsBankContactImpl TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (bancontact != null) { @@ -5846,7 +5893,6 @@ abstract class _PaymentMethodParamsBankContact implements PaymentMethodParams { _$PaymentMethodParamsBankContactImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -5981,6 +6027,7 @@ class _$PaymentMethodParamsGiroPayImpl implements _PaymentMethodParamsGiroPay { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return giroPay(paymentMethodData); } @@ -6013,6 +6060,7 @@ class _$PaymentMethodParamsGiroPayImpl implements _PaymentMethodParamsGiroPay { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return giroPay?.call(paymentMethodData); } @@ -6045,6 +6093,7 @@ class _$PaymentMethodParamsGiroPayImpl implements _PaymentMethodParamsGiroPay { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (giroPay != null) { @@ -6082,6 +6131,7 @@ class _$PaymentMethodParamsGiroPayImpl implements _PaymentMethodParamsGiroPay { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return giroPay(this); } @@ -6113,6 +6163,7 @@ class _$PaymentMethodParamsGiroPayImpl implements _PaymentMethodParamsGiroPay { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return giroPay?.call(this); } @@ -6144,6 +6195,7 @@ class _$PaymentMethodParamsGiroPayImpl implements _PaymentMethodParamsGiroPay { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (giroPay != null) { @@ -6169,7 +6221,6 @@ abstract class _PaymentMethodParamsGiroPay implements PaymentMethodParams { _$PaymentMethodParamsGiroPayImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -6302,6 +6353,7 @@ class _$PaymentMethodParamsEpsImpl implements _PaymentMethodParamsEps { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return eps(paymentMethodData); } @@ -6334,6 +6386,7 @@ class _$PaymentMethodParamsEpsImpl implements _PaymentMethodParamsEps { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return eps?.call(paymentMethodData); } @@ -6366,6 +6419,7 @@ class _$PaymentMethodParamsEpsImpl implements _PaymentMethodParamsEps { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (eps != null) { @@ -6403,6 +6457,7 @@ class _$PaymentMethodParamsEpsImpl implements _PaymentMethodParamsEps { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return eps(this); } @@ -6434,6 +6489,7 @@ class _$PaymentMethodParamsEpsImpl implements _PaymentMethodParamsEps { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return eps?.call(this); } @@ -6465,6 +6521,7 @@ class _$PaymentMethodParamsEpsImpl implements _PaymentMethodParamsEps { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (eps != null) { @@ -6490,7 +6547,6 @@ abstract class _PaymentMethodParamsEps implements PaymentMethodParams { _$PaymentMethodParamsEpsImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -6623,6 +6679,7 @@ class _$PaymentMethodParamsAffirmImpl implements _PaymentMethodParamsAffirm { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return affirm(paymentMethodData); } @@ -6655,6 +6712,7 @@ class _$PaymentMethodParamsAffirmImpl implements _PaymentMethodParamsAffirm { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return affirm?.call(paymentMethodData); } @@ -6687,6 +6745,7 @@ class _$PaymentMethodParamsAffirmImpl implements _PaymentMethodParamsAffirm { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (affirm != null) { @@ -6724,6 +6783,7 @@ class _$PaymentMethodParamsAffirmImpl implements _PaymentMethodParamsAffirm { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return affirm(this); } @@ -6755,6 +6815,7 @@ class _$PaymentMethodParamsAffirmImpl implements _PaymentMethodParamsAffirm { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return affirm?.call(this); } @@ -6786,6 +6847,7 @@ class _$PaymentMethodParamsAffirmImpl implements _PaymentMethodParamsAffirm { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (affirm != null) { @@ -6811,7 +6873,6 @@ abstract class _PaymentMethodParamsAffirm implements PaymentMethodParams { _$PaymentMethodParamsAffirmImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -6944,6 +7005,7 @@ class _$PaymentMethodParamsPayImpl implements _PaymentMethodParamsPay { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return grabPay(paymentMethodData); } @@ -6976,6 +7038,7 @@ class _$PaymentMethodParamsPayImpl implements _PaymentMethodParamsPay { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return grabPay?.call(paymentMethodData); } @@ -7008,6 +7071,7 @@ class _$PaymentMethodParamsPayImpl implements _PaymentMethodParamsPay { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (grabPay != null) { @@ -7045,6 +7109,7 @@ class _$PaymentMethodParamsPayImpl implements _PaymentMethodParamsPay { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return grabPay(this); } @@ -7076,6 +7141,7 @@ class _$PaymentMethodParamsPayImpl implements _PaymentMethodParamsPay { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return grabPay?.call(this); } @@ -7107,6 +7173,7 @@ class _$PaymentMethodParamsPayImpl implements _PaymentMethodParamsPay { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (grabPay != null) { @@ -7132,7 +7199,6 @@ abstract class _PaymentMethodParamsPay implements PaymentMethodParams { _$PaymentMethodParamsPayImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -7265,6 +7331,7 @@ class _$PaymentMethodParamsP24Impl implements _PaymentMethodParamsP24 { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return p24(paymentMethodData); } @@ -7297,6 +7364,7 @@ class _$PaymentMethodParamsP24Impl implements _PaymentMethodParamsP24 { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return p24?.call(paymentMethodData); } @@ -7329,6 +7397,7 @@ class _$PaymentMethodParamsP24Impl implements _PaymentMethodParamsP24 { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (p24 != null) { @@ -7366,6 +7435,7 @@ class _$PaymentMethodParamsP24Impl implements _PaymentMethodParamsP24 { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return p24(this); } @@ -7397,6 +7467,7 @@ class _$PaymentMethodParamsP24Impl implements _PaymentMethodParamsP24 { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return p24?.call(this); } @@ -7428,6 +7499,7 @@ class _$PaymentMethodParamsP24Impl implements _PaymentMethodParamsP24 { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (p24 != null) { @@ -7453,7 +7525,6 @@ abstract class _PaymentMethodParamsP24 implements PaymentMethodParams { _$PaymentMethodParamsP24Impl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -7587,6 +7658,7 @@ class _$PaymentMethodParamsFpxImpl implements _PaymentMethodParamsFpx { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return fpx(paymentMethodData); } @@ -7619,6 +7691,7 @@ class _$PaymentMethodParamsFpxImpl implements _PaymentMethodParamsFpx { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return fpx?.call(paymentMethodData); } @@ -7651,6 +7724,7 @@ class _$PaymentMethodParamsFpxImpl implements _PaymentMethodParamsFpx { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (fpx != null) { @@ -7688,6 +7762,7 @@ class _$PaymentMethodParamsFpxImpl implements _PaymentMethodParamsFpx { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return fpx(this); } @@ -7719,6 +7794,7 @@ class _$PaymentMethodParamsFpxImpl implements _PaymentMethodParamsFpx { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return fpx?.call(this); } @@ -7750,6 +7826,7 @@ class _$PaymentMethodParamsFpxImpl implements _PaymentMethodParamsFpx { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (fpx != null) { @@ -7775,7 +7852,6 @@ abstract class _PaymentMethodParamsFpx implements PaymentMethodParams { _$PaymentMethodParamsFpxImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodDataFpx get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -7912,6 +7988,7 @@ class _$PaymentMethodParamsSepaDebitImpl required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return sepaDebit(paymentMethodData); } @@ -7944,6 +8021,7 @@ class _$PaymentMethodParamsSepaDebitImpl TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return sepaDebit?.call(paymentMethodData); } @@ -7976,6 +8054,7 @@ class _$PaymentMethodParamsSepaDebitImpl TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (sepaDebit != null) { @@ -8013,6 +8092,7 @@ class _$PaymentMethodParamsSepaDebitImpl required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return sepaDebit(this); } @@ -8044,6 +8124,7 @@ class _$PaymentMethodParamsSepaDebitImpl TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return sepaDebit?.call(this); } @@ -8075,6 +8156,7 @@ class _$PaymentMethodParamsSepaDebitImpl TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (sepaDebit != null) { @@ -8100,7 +8182,6 @@ abstract class _PaymentMethodParamsSepaDebit implements PaymentMethodParams { _$PaymentMethodParamsSepaDebitImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodDataSepa get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -8234,6 +8315,7 @@ class _$PaymentMethodParamsSofortImpl implements _PaymentMethodParamsSofort { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return sofort(paymentMethodData); } @@ -8266,6 +8348,7 @@ class _$PaymentMethodParamsSofortImpl implements _PaymentMethodParamsSofort { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return sofort?.call(paymentMethodData); } @@ -8298,6 +8381,7 @@ class _$PaymentMethodParamsSofortImpl implements _PaymentMethodParamsSofort { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (sofort != null) { @@ -8335,6 +8419,7 @@ class _$PaymentMethodParamsSofortImpl implements _PaymentMethodParamsSofort { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return sofort(this); } @@ -8366,6 +8451,7 @@ class _$PaymentMethodParamsSofortImpl implements _PaymentMethodParamsSofort { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return sofort?.call(this); } @@ -8397,6 +8483,7 @@ class _$PaymentMethodParamsSofortImpl implements _PaymentMethodParamsSofort { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (sofort != null) { @@ -8421,7 +8508,6 @@ abstract class _PaymentMethodParamsSofort implements PaymentMethodParams { factory _PaymentMethodParamsSofort.fromJson(Map json) = _$PaymentMethodParamsSofortImpl.fromJson; - @override PaymentMethodDataSofort get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -8557,6 +8643,7 @@ class _$PaymentMethodParamsAfterpayClearpayImpl required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return afterpayClearpay(paymentMethodData); } @@ -8589,6 +8676,7 @@ class _$PaymentMethodParamsAfterpayClearpayImpl TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return afterpayClearpay?.call(paymentMethodData); } @@ -8621,6 +8709,7 @@ class _$PaymentMethodParamsAfterpayClearpayImpl TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (afterpayClearpay != null) { @@ -8658,6 +8747,7 @@ class _$PaymentMethodParamsAfterpayClearpayImpl required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return afterpayClearpay(this); } @@ -8689,6 +8779,7 @@ class _$PaymentMethodParamsAfterpayClearpayImpl TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return afterpayClearpay?.call(this); } @@ -8720,6 +8811,7 @@ class _$PaymentMethodParamsAfterpayClearpayImpl TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (afterpayClearpay != null) { @@ -8746,7 +8838,6 @@ abstract class _PaymentMethodParamsAfterpayClearpay Map json) = _$PaymentMethodParamsAfterpayClearpayImpl.fromJson; - @override PaymentMethodDataAfterPay get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -8880,6 +8971,7 @@ class _$PaymentMethodParamsOxxoImpl implements _PaymentMethodParamsOxxo { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return oxxo(paymentMethodData); } @@ -8912,6 +9004,7 @@ class _$PaymentMethodParamsOxxoImpl implements _PaymentMethodParamsOxxo { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return oxxo?.call(paymentMethodData); } @@ -8944,6 +9037,7 @@ class _$PaymentMethodParamsOxxoImpl implements _PaymentMethodParamsOxxo { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (oxxo != null) { @@ -8981,6 +9075,7 @@ class _$PaymentMethodParamsOxxoImpl implements _PaymentMethodParamsOxxo { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return oxxo(this); } @@ -9012,6 +9107,7 @@ class _$PaymentMethodParamsOxxoImpl implements _PaymentMethodParamsOxxo { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return oxxo?.call(this); } @@ -9043,6 +9139,7 @@ class _$PaymentMethodParamsOxxoImpl implements _PaymentMethodParamsOxxo { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (oxxo != null) { @@ -9068,7 +9165,6 @@ abstract class _PaymentMethodParamsOxxo implements PaymentMethodParams { _$PaymentMethodParamsOxxoImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -9204,6 +9300,7 @@ class _$PaymentMethodParamsKlarnaImpl implements _PaymentMethodParamsKlarna { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return klarna(paymentMethodData); } @@ -9236,6 +9333,7 @@ class _$PaymentMethodParamsKlarnaImpl implements _PaymentMethodParamsKlarna { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return klarna?.call(paymentMethodData); } @@ -9268,6 +9366,7 @@ class _$PaymentMethodParamsKlarnaImpl implements _PaymentMethodParamsKlarna { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (klarna != null) { @@ -9305,6 +9404,7 @@ class _$PaymentMethodParamsKlarnaImpl implements _PaymentMethodParamsKlarna { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return klarna(this); } @@ -9336,6 +9436,7 @@ class _$PaymentMethodParamsKlarnaImpl implements _PaymentMethodParamsKlarna { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return klarna?.call(this); } @@ -9367,6 +9468,7 @@ class _$PaymentMethodParamsKlarnaImpl implements _PaymentMethodParamsKlarna { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (klarna != null) { @@ -9395,7 +9497,6 @@ abstract class _PaymentMethodParamsKlarna implements PaymentMethodParams { /// /// Make sure to add an email and country (part of the address) in the /// billingdetails which is required for using Klarna. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -9528,6 +9629,7 @@ class _$PaymentMethodParamsPayPalImpl implements _PaymentMethodParamsPayPal { required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return payPal(paymentMethodData); } @@ -9560,6 +9662,7 @@ class _$PaymentMethodParamsPayPalImpl implements _PaymentMethodParamsPayPal { TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return payPal?.call(paymentMethodData); } @@ -9592,6 +9695,7 @@ class _$PaymentMethodParamsPayPalImpl implements _PaymentMethodParamsPayPal { TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (payPal != null) { @@ -9629,6 +9733,7 @@ class _$PaymentMethodParamsPayPalImpl implements _PaymentMethodParamsPayPal { required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return payPal(this); } @@ -9660,6 +9765,7 @@ class _$PaymentMethodParamsPayPalImpl implements _PaymentMethodParamsPayPal { TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return payPal?.call(this); } @@ -9691,6 +9797,7 @@ class _$PaymentMethodParamsPayPalImpl implements _PaymentMethodParamsPayPal { TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (payPal != null) { @@ -9716,7 +9823,6 @@ abstract class _PaymentMethodParamsPayPal implements PaymentMethodParams { _$PaymentMethodParamsPayPalImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -9852,6 +9958,7 @@ class _$PaymentMethodParamsRevolutPayImpl required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return revolutPay(paymentMethodData); } @@ -9884,6 +9991,7 @@ class _$PaymentMethodParamsRevolutPayImpl TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return revolutPay?.call(paymentMethodData); } @@ -9916,6 +10024,7 @@ class _$PaymentMethodParamsRevolutPayImpl TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (revolutPay != null) { @@ -9953,6 +10062,7 @@ class _$PaymentMethodParamsRevolutPayImpl required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return revolutPay(this); } @@ -9984,6 +10094,7 @@ class _$PaymentMethodParamsRevolutPayImpl TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return revolutPay?.call(this); } @@ -10015,6 +10126,7 @@ class _$PaymentMethodParamsRevolutPayImpl TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (revolutPay != null) { @@ -10040,7 +10152,6 @@ abstract class _PaymentMethodParamsRevolutPay implements PaymentMethodParams { _$PaymentMethodParamsRevolutPayImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodData get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -10178,6 +10289,7 @@ class _$PaymentMethodParamsUsBankAccountImpl required TResult Function(PaymentMethodData paymentMethodData) revolutPay, required TResult Function(PaymentMethodDataUsBank paymentMethodData) usBankAccount, + required TResult Function() elements, }) { return usBankAccount(paymentMethodData); } @@ -10210,6 +10322,7 @@ class _$PaymentMethodParamsUsBankAccountImpl TResult? Function(PaymentMethodData paymentMethodData)? payPal, TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, }) { return usBankAccount?.call(paymentMethodData); } @@ -10242,6 +10355,7 @@ class _$PaymentMethodParamsUsBankAccountImpl TResult Function(PaymentMethodData paymentMethodData)? payPal, TResult Function(PaymentMethodData paymentMethodData)? revolutPay, TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, required TResult orElse(), }) { if (usBankAccount != null) { @@ -10279,6 +10393,7 @@ class _$PaymentMethodParamsUsBankAccountImpl required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, required TResult Function(_PaymentMethodParamsUsBankAccount value) usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, }) { return usBankAccount(this); } @@ -10310,6 +10425,7 @@ class _$PaymentMethodParamsUsBankAccountImpl TResult? Function(_PaymentMethodParamsPayPal value)? payPal, TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, }) { return usBankAccount?.call(this); } @@ -10341,6 +10457,7 @@ class _$PaymentMethodParamsUsBankAccountImpl TResult Function(_PaymentMethodParamsPayPal value)? payPal, TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, required TResult orElse(), }) { if (usBankAccount != null) { @@ -10368,7 +10485,6 @@ abstract class _PaymentMethodParamsUsBankAccount _$PaymentMethodParamsUsBankAccountImpl.fromJson; /// Paymentmethod data for this paymentmethod. - @override PaymentMethodDataUsBank get paymentMethodData; /// Create a copy of PaymentMethodParams @@ -10379,6 +10495,282 @@ abstract class _PaymentMethodParamsUsBankAccount get copyWith => throw _privateConstructorUsedError; } +/// @nodoc +abstract class _$$PaymentMethodParamsElementsImplCopyWith<$Res> { + factory _$$PaymentMethodParamsElementsImplCopyWith( + _$PaymentMethodParamsElementsImpl value, + $Res Function(_$PaymentMethodParamsElementsImpl) then) = + __$$PaymentMethodParamsElementsImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$PaymentMethodParamsElementsImplCopyWithImpl<$Res> + extends _$PaymentMethodParamsCopyWithImpl<$Res, + _$PaymentMethodParamsElementsImpl> + implements _$$PaymentMethodParamsElementsImplCopyWith<$Res> { + __$$PaymentMethodParamsElementsImplCopyWithImpl( + _$PaymentMethodParamsElementsImpl _value, + $Res Function(_$PaymentMethodParamsElementsImpl) _then) + : super(_value, _then); + + /// Create a copy of PaymentMethodParams + /// with the given fields replaced by the non-null parameter values. +} + +/// @nodoc + +@JsonSerializable(explicitToJson: true) +class _$PaymentMethodParamsElementsImpl + implements _PaymentMethodParamsElements { + const _$PaymentMethodParamsElementsImpl({final String? $type}) + : $type = $type ?? 'Elements'; + + factory _$PaymentMethodParamsElementsImpl.fromJson( + Map json) => + _$$PaymentMethodParamsElementsImplFromJson(json); + + @JsonKey(name: 'paymentMethodType') + final String $type; + + @override + String toString() { + return 'PaymentMethodParams.elements()'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$PaymentMethodParamsElementsImpl); + } + + @JsonKey(includeFromJson: false, includeToJson: false) + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function(PaymentMethodData paymentMethodData) card, + required TResult Function(PaymentMethodDataCardFromToken paymentMethodData) + cardFromToken, + required TResult Function(PaymentMethodDataCardFromMethod paymentMethodData) + cardFromMethodId, + required TResult Function(PaymentMethodData paymentMethodData) alipay, + required TResult Function(PaymentMethodData paymentMethodData) cashAppPay, + required TResult Function(PaymentMethodDataIdeal paymentMethodData) ideal, + required TResult Function(PaymentMethodDataAubecs paymentMethodData) aubecs, + required TResult Function(PaymentMethodData paymentMethodData) bancontact, + required TResult Function(PaymentMethodData paymentMethodData) giroPay, + required TResult Function(PaymentMethodData paymentMethodData) eps, + required TResult Function(PaymentMethodData paymentMethodData) affirm, + required TResult Function(PaymentMethodData paymentMethodData) grabPay, + required TResult Function(PaymentMethodData paymentMethodData) p24, + required TResult Function(PaymentMethodDataFpx paymentMethodData) fpx, + required TResult Function(PaymentMethodDataSepa paymentMethodData) + sepaDebit, + required TResult Function(PaymentMethodDataSofort paymentMethodData) sofort, + required TResult Function(PaymentMethodDataAfterPay paymentMethodData) + afterpayClearpay, + required TResult Function(PaymentMethodData paymentMethodData) oxxo, + required TResult Function(PaymentMethodData paymentMethodData) klarna, + required TResult Function(PaymentMethodData paymentMethodData) payPal, + required TResult Function(PaymentMethodData paymentMethodData) revolutPay, + required TResult Function(PaymentMethodDataUsBank paymentMethodData) + usBankAccount, + required TResult Function() elements, + }) { + return elements(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(PaymentMethodData paymentMethodData)? card, + TResult? Function(PaymentMethodDataCardFromToken paymentMethodData)? + cardFromToken, + TResult? Function(PaymentMethodDataCardFromMethod paymentMethodData)? + cardFromMethodId, + TResult? Function(PaymentMethodData paymentMethodData)? alipay, + TResult? Function(PaymentMethodData paymentMethodData)? cashAppPay, + TResult? Function(PaymentMethodDataIdeal paymentMethodData)? ideal, + TResult? Function(PaymentMethodDataAubecs paymentMethodData)? aubecs, + TResult? Function(PaymentMethodData paymentMethodData)? bancontact, + TResult? Function(PaymentMethodData paymentMethodData)? giroPay, + TResult? Function(PaymentMethodData paymentMethodData)? eps, + TResult? Function(PaymentMethodData paymentMethodData)? affirm, + TResult? Function(PaymentMethodData paymentMethodData)? grabPay, + TResult? Function(PaymentMethodData paymentMethodData)? p24, + TResult? Function(PaymentMethodDataFpx paymentMethodData)? fpx, + TResult? Function(PaymentMethodDataSepa paymentMethodData)? sepaDebit, + TResult? Function(PaymentMethodDataSofort paymentMethodData)? sofort, + TResult? Function(PaymentMethodDataAfterPay paymentMethodData)? + afterpayClearpay, + TResult? Function(PaymentMethodData paymentMethodData)? oxxo, + TResult? Function(PaymentMethodData paymentMethodData)? klarna, + TResult? Function(PaymentMethodData paymentMethodData)? payPal, + TResult? Function(PaymentMethodData paymentMethodData)? revolutPay, + TResult? Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult? Function()? elements, + }) { + return elements?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(PaymentMethodData paymentMethodData)? card, + TResult Function(PaymentMethodDataCardFromToken paymentMethodData)? + cardFromToken, + TResult Function(PaymentMethodDataCardFromMethod paymentMethodData)? + cardFromMethodId, + TResult Function(PaymentMethodData paymentMethodData)? alipay, + TResult Function(PaymentMethodData paymentMethodData)? cashAppPay, + TResult Function(PaymentMethodDataIdeal paymentMethodData)? ideal, + TResult Function(PaymentMethodDataAubecs paymentMethodData)? aubecs, + TResult Function(PaymentMethodData paymentMethodData)? bancontact, + TResult Function(PaymentMethodData paymentMethodData)? giroPay, + TResult Function(PaymentMethodData paymentMethodData)? eps, + TResult Function(PaymentMethodData paymentMethodData)? affirm, + TResult Function(PaymentMethodData paymentMethodData)? grabPay, + TResult Function(PaymentMethodData paymentMethodData)? p24, + TResult Function(PaymentMethodDataFpx paymentMethodData)? fpx, + TResult Function(PaymentMethodDataSepa paymentMethodData)? sepaDebit, + TResult Function(PaymentMethodDataSofort paymentMethodData)? sofort, + TResult Function(PaymentMethodDataAfterPay paymentMethodData)? + afterpayClearpay, + TResult Function(PaymentMethodData paymentMethodData)? oxxo, + TResult Function(PaymentMethodData paymentMethodData)? klarna, + TResult Function(PaymentMethodData paymentMethodData)? payPal, + TResult Function(PaymentMethodData paymentMethodData)? revolutPay, + TResult Function(PaymentMethodDataUsBank paymentMethodData)? usBankAccount, + TResult Function()? elements, + required TResult orElse(), + }) { + if (elements != null) { + return elements(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_PaymentMethodParamsCard value) card, + required TResult Function(_PaymentMethodParamsCardWithToken value) + cardFromToken, + required TResult Function(_PaymentMethodParamsCardWithMethodId value) + cardFromMethodId, + required TResult Function(_PaymentMethodParamsAlipay value) alipay, + required TResult Function(_PaymentMethodParamsCashAppPay value) cashAppPay, + required TResult Function(_PaymentMethodParamsIdeal value) ideal, + required TResult Function(_PaymentMethodParamsAubecs value) aubecs, + required TResult Function(_PaymentMethodParamsBankContact value) bancontact, + required TResult Function(_PaymentMethodParamsGiroPay value) giroPay, + required TResult Function(_PaymentMethodParamsEps value) eps, + required TResult Function(_PaymentMethodParamsAffirm value) affirm, + required TResult Function(_PaymentMethodParamsPay value) grabPay, + required TResult Function(_PaymentMethodParamsP24 value) p24, + required TResult Function(_PaymentMethodParamsFpx value) fpx, + required TResult Function(_PaymentMethodParamsSepaDebit value) sepaDebit, + required TResult Function(_PaymentMethodParamsSofort value) sofort, + required TResult Function(_PaymentMethodParamsAfterpayClearpay value) + afterpayClearpay, + required TResult Function(_PaymentMethodParamsOxxo value) oxxo, + required TResult Function(_PaymentMethodParamsKlarna value) klarna, + required TResult Function(_PaymentMethodParamsPayPal value) payPal, + required TResult Function(_PaymentMethodParamsRevolutPay value) revolutPay, + required TResult Function(_PaymentMethodParamsUsBankAccount value) + usBankAccount, + required TResult Function(_PaymentMethodParamsElements value) elements, + }) { + return elements(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_PaymentMethodParamsCard value)? card, + TResult? Function(_PaymentMethodParamsCardWithToken value)? cardFromToken, + TResult? Function(_PaymentMethodParamsCardWithMethodId value)? + cardFromMethodId, + TResult? Function(_PaymentMethodParamsAlipay value)? alipay, + TResult? Function(_PaymentMethodParamsCashAppPay value)? cashAppPay, + TResult? Function(_PaymentMethodParamsIdeal value)? ideal, + TResult? Function(_PaymentMethodParamsAubecs value)? aubecs, + TResult? Function(_PaymentMethodParamsBankContact value)? bancontact, + TResult? Function(_PaymentMethodParamsGiroPay value)? giroPay, + TResult? Function(_PaymentMethodParamsEps value)? eps, + TResult? Function(_PaymentMethodParamsAffirm value)? affirm, + TResult? Function(_PaymentMethodParamsPay value)? grabPay, + TResult? Function(_PaymentMethodParamsP24 value)? p24, + TResult? Function(_PaymentMethodParamsFpx value)? fpx, + TResult? Function(_PaymentMethodParamsSepaDebit value)? sepaDebit, + TResult? Function(_PaymentMethodParamsSofort value)? sofort, + TResult? Function(_PaymentMethodParamsAfterpayClearpay value)? + afterpayClearpay, + TResult? Function(_PaymentMethodParamsOxxo value)? oxxo, + TResult? Function(_PaymentMethodParamsKlarna value)? klarna, + TResult? Function(_PaymentMethodParamsPayPal value)? payPal, + TResult? Function(_PaymentMethodParamsRevolutPay value)? revolutPay, + TResult? Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult? Function(_PaymentMethodParamsElements value)? elements, + }) { + return elements?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_PaymentMethodParamsCard value)? card, + TResult Function(_PaymentMethodParamsCardWithToken value)? cardFromToken, + TResult Function(_PaymentMethodParamsCardWithMethodId value)? + cardFromMethodId, + TResult Function(_PaymentMethodParamsAlipay value)? alipay, + TResult Function(_PaymentMethodParamsCashAppPay value)? cashAppPay, + TResult Function(_PaymentMethodParamsIdeal value)? ideal, + TResult Function(_PaymentMethodParamsAubecs value)? aubecs, + TResult Function(_PaymentMethodParamsBankContact value)? bancontact, + TResult Function(_PaymentMethodParamsGiroPay value)? giroPay, + TResult Function(_PaymentMethodParamsEps value)? eps, + TResult Function(_PaymentMethodParamsAffirm value)? affirm, + TResult Function(_PaymentMethodParamsPay value)? grabPay, + TResult Function(_PaymentMethodParamsP24 value)? p24, + TResult Function(_PaymentMethodParamsFpx value)? fpx, + TResult Function(_PaymentMethodParamsSepaDebit value)? sepaDebit, + TResult Function(_PaymentMethodParamsSofort value)? sofort, + TResult Function(_PaymentMethodParamsAfterpayClearpay value)? + afterpayClearpay, + TResult Function(_PaymentMethodParamsOxxo value)? oxxo, + TResult Function(_PaymentMethodParamsKlarna value)? klarna, + TResult Function(_PaymentMethodParamsPayPal value)? payPal, + TResult Function(_PaymentMethodParamsRevolutPay value)? revolutPay, + TResult Function(_PaymentMethodParamsUsBankAccount value)? usBankAccount, + TResult Function(_PaymentMethodParamsElements value)? elements, + required TResult orElse(), + }) { + if (elements != null) { + return elements(this); + } + return orElse(); + } + + @override + Map toJson() { + return _$$PaymentMethodParamsElementsImplToJson( + this, + ); + } +} + +abstract class _PaymentMethodParamsElements implements PaymentMethodParams { + const factory _PaymentMethodParamsElements() = + _$PaymentMethodParamsElementsImpl; + + factory _PaymentMethodParamsElements.fromJson(Map json) = + _$PaymentMethodParamsElementsImpl.fromJson; +} + PaymentMethodData _$PaymentMethodDataFromJson(Map json) { return _PaymentMethodData.fromJson(json); } diff --git a/packages/stripe_platform_interface/lib/src/models/payment_methods.g.dart b/packages/stripe_platform_interface/lib/src/models/payment_methods.g.dart index afbbe9bea..d33159de6 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_methods.g.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_methods.g.dart @@ -553,6 +553,18 @@ Map _$$PaymentMethodParamsUsBankAccountImplToJson( 'paymentMethodType': instance.$type, }; +_$PaymentMethodParamsElementsImpl _$$PaymentMethodParamsElementsImplFromJson( + Map json) => + _$PaymentMethodParamsElementsImpl( + $type: json['paymentMethodType'] as String?, + ); + +Map _$$PaymentMethodParamsElementsImplToJson( + _$PaymentMethodParamsElementsImpl instance) => + { + 'paymentMethodType': instance.$type, + }; + _$PaymentMethodDataImpl _$$PaymentMethodDataImplFromJson( Map json) => _$PaymentMethodDataImpl( diff --git a/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart b/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart index 2a848b317..37a9a1ccf 100644 --- a/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart +++ b/packages/stripe_platform_interface/lib/src/stripe_platform_interface.dart @@ -39,8 +39,6 @@ abstract class StripePlatform extends PlatformInterface { PaymentMethodOptions? options, ]); - Future createPaymentMethodWithElements(); - Future handleNextAction(String paymentIntentClientSecret, {String? returnURL}); diff --git a/packages/stripe_web/lib/src/web_stripe.dart b/packages/stripe_web/lib/src/web_stripe.dart index da9d6e1b8..91ff67669 100644 --- a/packages/stripe_web/lib/src/web_stripe.dart +++ b/packages/stripe_web/lib/src/web_stripe.dart @@ -87,6 +87,9 @@ class WebStripe extends StripePlatform { card: (data) { return _createCardPaymentMethod(data); }, + elements: () { + return _createPaymentMethodWithElements(); + }, orElse: () { throw UnimplementedError(); }, @@ -94,7 +97,7 @@ class WebStripe extends StripePlatform { } Future _createCardPaymentMethod(PaymentMethodData data) async { - final params = stripe_js.CreatePaymentMethodData( + final params = stripe_js.CreatePaymentMethodData.card( type: 'card', card: element!, billingDetails: data.billingDetails?.toJs(), @@ -111,6 +114,22 @@ class WebStripe extends StripePlatform { } } + Future _createPaymentMethodWithElements() async { + final params = stripe_js.CreatePaymentMethodData.elements( + elements: elements!, + ); + try { + final response = await js.createPaymentMethod(params); + if (response.error != null) { + throw response.error!; + } + return response.paymentMethod!.parse(); + } catch (e) { + dev.log('Error $e'); + rethrow; + } + } + @override Future confirmPayment( String paymentIntentClientSecret, @@ -436,24 +455,6 @@ class WebStripe extends StripePlatform { Future elementsSubmit() => elements!.submit(); - @override - Future createPaymentMethodWithElements() async { - try { - final response = await js.createPaymentMethodWithElements( - stripe_js.CreatePaymentMethodWithElementsData(elements: elements!), - ); - - if (response.error != null) { - throw response.error!; - } - - return response.paymentMethod!.parse(); - } catch (e) { - dev.log('Error $e'); - rethrow; - } - } - Future confirmSetupElement( ConfirmSetupElementOptions options, ) async { From 896c2c6df410137ea881fd4f0d8f958a95d43b7a Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Wed, 6 Aug 2025 15:58:24 +0300 Subject: [PATCH 38/40] remove runtime type from toJson --- .../src/api/payment_methods/create_payment_method_data.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart index d91608b64..89996b006 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart @@ -53,4 +53,8 @@ class CreatePaymentMethodData with _$CreatePaymentMethodData { factory CreatePaymentMethodData.fromJson(Map json) => _$CreatePaymentMethodDataFromJson(json); + + /// with multiple constructors freezed will add a `runtimeType` field to the + /// JSON which is not compatible with the Stripe API so we remove it manually + Map toJson() => super.toJson()..remove('runtimeType'); } From 7f348bc750998d1ca74c31541b372099d1edca3b Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Wed, 6 Aug 2025 17:32:32 +0300 Subject: [PATCH 39/40] remove runtime type in payment method --- .../api/payment_methods/create_payment_method_data.dart | 4 ---- .../lib/src/js/payment_methods/create_payment_method.dart | 7 +++++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart index 89996b006..d91608b64 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.dart @@ -53,8 +53,4 @@ class CreatePaymentMethodData with _$CreatePaymentMethodData { factory CreatePaymentMethodData.fromJson(Map json) => _$CreatePaymentMethodDataFromJson(json); - - /// with multiple constructors freezed will add a `runtimeType` field to the - /// JSON which is not compatible with the Stripe API so we remove it manually - Map toJson() => super.toJson()..remove('runtimeType'); } diff --git a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method.dart b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method.dart index cd0c02e83..896b7940a 100644 --- a/packages/stripe_js/lib/src/js/payment_methods/create_payment_method.dart +++ b/packages/stripe_js/lib/src/js/payment_methods/create_payment_method.dart @@ -1,8 +1,9 @@ +import 'dart:js_interop'; + import 'package:stripe_js/stripe_api.dart'; import 'package:stripe_js/stripe_js.dart'; import '../utils/utils.dart'; -import 'dart:js_interop'; extension ExtensionCreatePaymentMethod on Stripe { /// Use stripe.createPaymentMethod to convert payment information @@ -16,7 +17,9 @@ extension ExtensionCreatePaymentMethod on Stripe { /// https://stripe.com/docs/js/payment_methods/create_payment_method Future createPaymentMethod( CreatePaymentMethodData data) { - final jsData = data.toJson().jsify(); + /// with multiple constructors freezed will add a `runtimeType` field to the + /// JSON which is not compatible with the Stripe API so we remove it manually + final jsData = (data.toJson()..remove('runtimeType')).jsify(); return _createPaymentMethod(jsData) .toDart .then((response) => response.toDart); From a959ad40170aefb31d1dd2791ba390be2706cb6a Mon Sep 17 00:00:00 2001 From: Eduard Dumitrescu Date: Mon, 1 Sep 2025 20:03:19 +0300 Subject: [PATCH 40/40] generate files after merge --- .../confirm_payment_options.freezed.dart | 45 +-- .../confirm_payment_options.g.dart | 2 + .../create_payment_method_data.freezed.dart | 282 ++++++++++-------- .../create_payment_method_data.g.dart | 24 +- .../payment_method.freezed.dart | 16 +- .../api/payment_methods/payment_method.g.dart | 6 +- .../src/models/payment_methods.freezed.dart | 124 +++++--- .../lib/src/models/payment_methods.g.dart | 8 + 8 files changed, 315 insertions(+), 192 deletions(-) diff --git a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.freezed.dart b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.freezed.dart index a84762864..a95ee9e65 100644 --- a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.freezed.dart +++ b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.freezed.dart @@ -16,7 +16,8 @@ T _$identity(T value) => value; mixin _$ConfirmPaymentOptions { /// The Elements instance that was used to create the Payment Element. -@ElementsConverter() Elements get elements;/// Parameters that will be passed on to the Stripe API. +@ElementsConverter() Elements get elements;/// The PaymentIntent's client secret. + String? get clientSecret;/// Parameters that will be passed on to the Stripe API. /// Refer to the Payment Intents API for a full list of parameters. ConfirmPaymentParams get confirmParams;/// By default, stripe.confirmPayment will always redirect to your /// return_url after a successful confirmation. @@ -41,16 +42,16 @@ $ConfirmPaymentOptionsCopyWith get copyWith => _$ConfirmP @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is ConfirmPaymentOptions&&(identical(other.elements, elements) || other.elements == elements)&&(identical(other.confirmParams, confirmParams) || other.confirmParams == confirmParams)&&(identical(other.redirect, redirect) || other.redirect == redirect)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is ConfirmPaymentOptions&&(identical(other.elements, elements) || other.elements == elements)&&(identical(other.clientSecret, clientSecret) || other.clientSecret == clientSecret)&&(identical(other.confirmParams, confirmParams) || other.confirmParams == confirmParams)&&(identical(other.redirect, redirect) || other.redirect == redirect)); } @JsonKey(includeFromJson: false, includeToJson: false) @override -int get hashCode => Object.hash(runtimeType,elements,confirmParams,redirect); +int get hashCode => Object.hash(runtimeType,elements,clientSecret,confirmParams,redirect); @override String toString() { - return 'ConfirmPaymentOptions(elements: $elements, confirmParams: $confirmParams, redirect: $redirect)'; + return 'ConfirmPaymentOptions(elements: $elements, clientSecret: $clientSecret, confirmParams: $confirmParams, redirect: $redirect)'; } @@ -61,7 +62,7 @@ abstract mixin class $ConfirmPaymentOptionsCopyWith<$Res> { factory $ConfirmPaymentOptionsCopyWith(ConfirmPaymentOptions value, $Res Function(ConfirmPaymentOptions) _then) = _$ConfirmPaymentOptionsCopyWithImpl; @useResult $Res call({ -@ElementsConverter() Elements elements, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect +@ElementsConverter() Elements elements, String? clientSecret, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect }); @@ -78,10 +79,11 @@ class _$ConfirmPaymentOptionsCopyWithImpl<$Res> /// Create a copy of ConfirmPaymentOptions /// with the given fields replaced by the non-null parameter values. -@pragma('vm:prefer-inline') @override $Res call({Object? elements = null,Object? confirmParams = null,Object? redirect = freezed,}) { +@pragma('vm:prefer-inline') @override $Res call({Object? elements = null,Object? clientSecret = freezed,Object? confirmParams = null,Object? redirect = freezed,}) { return _then(_self.copyWith( elements: null == elements ? _self.elements : elements // ignore: cast_nullable_to_non_nullable -as Elements,confirmParams: null == confirmParams ? _self.confirmParams : confirmParams // ignore: cast_nullable_to_non_nullable +as Elements,clientSecret: freezed == clientSecret ? _self.clientSecret : clientSecret // ignore: cast_nullable_to_non_nullable +as String?,confirmParams: null == confirmParams ? _self.confirmParams : confirmParams // ignore: cast_nullable_to_non_nullable as ConfirmPaymentParams,redirect: freezed == redirect ? _self.redirect : redirect // ignore: cast_nullable_to_non_nullable as PaymentConfirmationRedirect?, )); @@ -177,10 +179,10 @@ return $default(_that);case _: /// } /// ``` -@optionalTypeArgs TResult maybeWhen(TResult Function(@ElementsConverter() Elements elements, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect)? $default,{required TResult orElse(),}) {final _that = this; +@optionalTypeArgs TResult maybeWhen(TResult Function(@ElementsConverter() Elements elements, String? clientSecret, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect)? $default,{required TResult orElse(),}) {final _that = this; switch (_that) { case _ConfirmPaymentOptions() when $default != null: -return $default(_that.elements,_that.confirmParams,_that.redirect);case _: +return $default(_that.elements,_that.clientSecret,_that.confirmParams,_that.redirect);case _: return orElse(); } @@ -198,10 +200,10 @@ return $default(_that.elements,_that.confirmParams,_that.redirect);case _: /// } /// ``` -@optionalTypeArgs TResult when(TResult Function(@ElementsConverter() Elements elements, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect) $default,) {final _that = this; +@optionalTypeArgs TResult when(TResult Function(@ElementsConverter() Elements elements, String? clientSecret, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect) $default,) {final _that = this; switch (_that) { case _ConfirmPaymentOptions(): -return $default(_that.elements,_that.confirmParams,_that.redirect);case _: +return $default(_that.elements,_that.clientSecret,_that.confirmParams,_that.redirect);case _: throw StateError('Unexpected subclass'); } @@ -218,10 +220,10 @@ return $default(_that.elements,_that.confirmParams,_that.redirect);case _: /// } /// ``` -@optionalTypeArgs TResult? whenOrNull(TResult? Function(@ElementsConverter() Elements elements, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect)? $default,) {final _that = this; +@optionalTypeArgs TResult? whenOrNull(TResult? Function(@ElementsConverter() Elements elements, String? clientSecret, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect)? $default,) {final _that = this; switch (_that) { case _ConfirmPaymentOptions() when $default != null: -return $default(_that.elements,_that.confirmParams,_that.redirect);case _: +return $default(_that.elements,_that.clientSecret,_that.confirmParams,_that.redirect);case _: return null; } @@ -233,11 +235,13 @@ return $default(_that.elements,_that.confirmParams,_that.redirect);case _: @JsonSerializable() class _ConfirmPaymentOptions implements ConfirmPaymentOptions { - const _ConfirmPaymentOptions({@ElementsConverter() required this.elements, required this.confirmParams, this.redirect}); + const _ConfirmPaymentOptions({@ElementsConverter() required this.elements, this.clientSecret, required this.confirmParams, this.redirect}); factory _ConfirmPaymentOptions.fromJson(Map json) => _$ConfirmPaymentOptionsFromJson(json); /// The Elements instance that was used to create the Payment Element. @override@ElementsConverter() final Elements elements; +/// The PaymentIntent's client secret. +@override final String? clientSecret; /// Parameters that will be passed on to the Stripe API. /// Refer to the Payment Intents API for a full list of parameters. @override final ConfirmPaymentParams confirmParams; @@ -266,16 +270,16 @@ Map toJson() { @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is _ConfirmPaymentOptions&&(identical(other.elements, elements) || other.elements == elements)&&(identical(other.confirmParams, confirmParams) || other.confirmParams == confirmParams)&&(identical(other.redirect, redirect) || other.redirect == redirect)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is _ConfirmPaymentOptions&&(identical(other.elements, elements) || other.elements == elements)&&(identical(other.clientSecret, clientSecret) || other.clientSecret == clientSecret)&&(identical(other.confirmParams, confirmParams) || other.confirmParams == confirmParams)&&(identical(other.redirect, redirect) || other.redirect == redirect)); } @JsonKey(includeFromJson: false, includeToJson: false) @override -int get hashCode => Object.hash(runtimeType,elements,confirmParams,redirect); +int get hashCode => Object.hash(runtimeType,elements,clientSecret,confirmParams,redirect); @override String toString() { - return 'ConfirmPaymentOptions(elements: $elements, confirmParams: $confirmParams, redirect: $redirect)'; + return 'ConfirmPaymentOptions(elements: $elements, clientSecret: $clientSecret, confirmParams: $confirmParams, redirect: $redirect)'; } @@ -286,7 +290,7 @@ abstract mixin class _$ConfirmPaymentOptionsCopyWith<$Res> implements $ConfirmPa factory _$ConfirmPaymentOptionsCopyWith(_ConfirmPaymentOptions value, $Res Function(_ConfirmPaymentOptions) _then) = __$ConfirmPaymentOptionsCopyWithImpl; @override @useResult $Res call({ -@ElementsConverter() Elements elements, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect +@ElementsConverter() Elements elements, String? clientSecret, ConfirmPaymentParams confirmParams, PaymentConfirmationRedirect? redirect }); @@ -303,10 +307,11 @@ class __$ConfirmPaymentOptionsCopyWithImpl<$Res> /// Create a copy of ConfirmPaymentOptions /// with the given fields replaced by the non-null parameter values. -@override @pragma('vm:prefer-inline') $Res call({Object? elements = null,Object? confirmParams = null,Object? redirect = freezed,}) { +@override @pragma('vm:prefer-inline') $Res call({Object? elements = null,Object? clientSecret = freezed,Object? confirmParams = null,Object? redirect = freezed,}) { return _then(_ConfirmPaymentOptions( elements: null == elements ? _self.elements : elements // ignore: cast_nullable_to_non_nullable -as Elements,confirmParams: null == confirmParams ? _self.confirmParams : confirmParams // ignore: cast_nullable_to_non_nullable +as Elements,clientSecret: freezed == clientSecret ? _self.clientSecret : clientSecret // ignore: cast_nullable_to_non_nullable +as String?,confirmParams: null == confirmParams ? _self.confirmParams : confirmParams // ignore: cast_nullable_to_non_nullable as ConfirmPaymentParams,redirect: freezed == redirect ? _self.redirect : redirect // ignore: cast_nullable_to_non_nullable as PaymentConfirmationRedirect?, )); diff --git a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.g.dart b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.g.dart index 7c4a1a2da..a700f985b 100644 --- a/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.g.dart +++ b/packages/stripe_js/lib/src/api/payment_intents/confirm_payment_options.g.dart @@ -9,6 +9,7 @@ part of 'confirm_payment_options.dart'; _ConfirmPaymentOptions _$ConfirmPaymentOptionsFromJson(Map json) => _ConfirmPaymentOptions( elements: const ElementsConverter().fromJson(json['elements']), + clientSecret: json['clientSecret'] as String?, confirmParams: ConfirmPaymentParams.fromJson( Map.from(json['confirmParams'] as Map), ), @@ -22,6 +23,7 @@ Map _$ConfirmPaymentOptionsToJson( _ConfirmPaymentOptions instance, ) => { 'elements': ?const ElementsConverter().toJson(instance.elements), + 'clientSecret': ?instance.clientSecret, 'confirmParams': instance.confirmParams.toJson(), 'redirect': ?_$PaymentConfirmationRedirectEnumMap[instance.redirect], }; diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.freezed.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.freezed.dart index d07bcf991..3410c1b90 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.freezed.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.freezed.dart @@ -11,28 +11,34 @@ part of 'create_payment_method_data.dart'; // dart format off T _$identity(T value) => value; +CreatePaymentMethodData _$CreatePaymentMethodDataFromJson( + Map json +) { + switch (json['runtimeType']) { + case 'card': + return _CreatePaymentMethodDataCard.fromJson( + json + ); + case 'elements': + return _CreatePaymentMethodDataElements.fromJson( + json + ); + + default: + throw CheckedFromJsonException( + json, + 'runtimeType', + 'CreatePaymentMethodData', + 'Invalid union type "${json['runtimeType']}"!' +); + } + +} /// @nodoc mixin _$CreatePaymentMethodData { -/// Unique identifier for the object. - String get type;/// A card or cardNumber Element. -@ElementConverter() Element? get card;/// An auBankAccount Element. -@JsonKey(name: "au_becs_debit")@ElementConverter() Element? get auBecsDebit;/// An fpx Element. -@ElementConverter() Element? get fpx;/// The customer's bank. -@JsonKey(name: "fpx[bank]") String? get fpxBank;/// The customer's bank. -@JsonKey(name: "netbanking[bank]") String? get netbankingBank;/// An idealBank Element. -@ElementConverter() Element? get ideal;/// The customer's bank. -@JsonKey(name: "ideal[bank]") String? get idealBank;/// An iban Element. -@JsonKey(name: "sepa_debit")@ElementConverter() Element? get sepaDebit;/// An IBAN account number. -@JsonKey(name: "sepa_debit[iban]") String? get sepaDebitIban;/// The customer's VPA. -@JsonKey(name: "upi[vpa]") String? get upiVpa;/// Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. -@JsonKey(name: "billing_details") BillingDetails? get billingDetails; -/// Create a copy of CreatePaymentMethodData -/// with the given fields replaced by the non-null parameter values. -@JsonKey(includeFromJson: false, includeToJson: false) -@pragma('vm:prefer-inline') -$CreatePaymentMethodDataCopyWith get copyWith => _$CreatePaymentMethodDataCopyWithImpl(this as CreatePaymentMethodData, _$identity); + /// Serializes this CreatePaymentMethodData to a JSON map. Map toJson(); @@ -40,73 +46,24 @@ $CreatePaymentMethodDataCopyWith get copyWith => _$Crea @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is CreatePaymentMethodData&&(identical(other.type, type) || other.type == type)&&(identical(other.card, card) || other.card == card)&&(identical(other.auBecsDebit, auBecsDebit) || other.auBecsDebit == auBecsDebit)&&(identical(other.fpx, fpx) || other.fpx == fpx)&&(identical(other.fpxBank, fpxBank) || other.fpxBank == fpxBank)&&(identical(other.netbankingBank, netbankingBank) || other.netbankingBank == netbankingBank)&&(identical(other.ideal, ideal) || other.ideal == ideal)&&(identical(other.idealBank, idealBank) || other.idealBank == idealBank)&&(identical(other.sepaDebit, sepaDebit) || other.sepaDebit == sepaDebit)&&(identical(other.sepaDebitIban, sepaDebitIban) || other.sepaDebitIban == sepaDebitIban)&&(identical(other.upiVpa, upiVpa) || other.upiVpa == upiVpa)&&(identical(other.billingDetails, billingDetails) || other.billingDetails == billingDetails)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is CreatePaymentMethodData); } @JsonKey(includeFromJson: false, includeToJson: false) @override -int get hashCode => Object.hash(runtimeType,type,card,auBecsDebit,fpx,fpxBank,netbankingBank,ideal,idealBank,sepaDebit,sepaDebitIban,upiVpa,billingDetails); +int get hashCode => runtimeType.hashCode; @override String toString() { - return 'CreatePaymentMethodData(type: $type, card: $card, auBecsDebit: $auBecsDebit, fpx: $fpx, fpxBank: $fpxBank, netbankingBank: $netbankingBank, ideal: $ideal, idealBank: $idealBank, sepaDebit: $sepaDebit, sepaDebitIban: $sepaDebitIban, upiVpa: $upiVpa, billingDetails: $billingDetails)'; + return 'CreatePaymentMethodData()'; } } /// @nodoc -abstract mixin class $CreatePaymentMethodDataCopyWith<$Res> { - factory $CreatePaymentMethodDataCopyWith(CreatePaymentMethodData value, $Res Function(CreatePaymentMethodData) _then) = _$CreatePaymentMethodDataCopyWithImpl; -@useResult -$Res call({ - String type,@ElementConverter() Element? card,@JsonKey(name: "au_becs_debit")@ElementConverter() Element? auBecsDebit,@ElementConverter() Element? fpx,@JsonKey(name: "fpx[bank]") String? fpxBank,@JsonKey(name: "netbanking[bank]") String? netbankingBank,@ElementConverter() Element? ideal,@JsonKey(name: "ideal[bank]") String? idealBank,@JsonKey(name: "sepa_debit")@ElementConverter() Element? sepaDebit,@JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban,@JsonKey(name: "upi[vpa]") String? upiVpa,@JsonKey(name: "billing_details") BillingDetails? billingDetails -}); - - -$BillingDetailsCopyWith<$Res>? get billingDetails; - -} -/// @nodoc -class _$CreatePaymentMethodDataCopyWithImpl<$Res> - implements $CreatePaymentMethodDataCopyWith<$Res> { - _$CreatePaymentMethodDataCopyWithImpl(this._self, this._then); - - final CreatePaymentMethodData _self; - final $Res Function(CreatePaymentMethodData) _then; - -/// Create a copy of CreatePaymentMethodData -/// with the given fields replaced by the non-null parameter values. -@pragma('vm:prefer-inline') @override $Res call({Object? type = null,Object? card = freezed,Object? auBecsDebit = freezed,Object? fpx = freezed,Object? fpxBank = freezed,Object? netbankingBank = freezed,Object? ideal = freezed,Object? idealBank = freezed,Object? sepaDebit = freezed,Object? sepaDebitIban = freezed,Object? upiVpa = freezed,Object? billingDetails = freezed,}) { - return _then(_self.copyWith( -type: null == type ? _self.type : type // ignore: cast_nullable_to_non_nullable -as String,card: freezed == card ? _self.card : card // ignore: cast_nullable_to_non_nullable -as Element?,auBecsDebit: freezed == auBecsDebit ? _self.auBecsDebit : auBecsDebit // ignore: cast_nullable_to_non_nullable -as Element?,fpx: freezed == fpx ? _self.fpx : fpx // ignore: cast_nullable_to_non_nullable -as Element?,fpxBank: freezed == fpxBank ? _self.fpxBank : fpxBank // ignore: cast_nullable_to_non_nullable -as String?,netbankingBank: freezed == netbankingBank ? _self.netbankingBank : netbankingBank // ignore: cast_nullable_to_non_nullable -as String?,ideal: freezed == ideal ? _self.ideal : ideal // ignore: cast_nullable_to_non_nullable -as Element?,idealBank: freezed == idealBank ? _self.idealBank : idealBank // ignore: cast_nullable_to_non_nullable -as String?,sepaDebit: freezed == sepaDebit ? _self.sepaDebit : sepaDebit // ignore: cast_nullable_to_non_nullable -as Element?,sepaDebitIban: freezed == sepaDebitIban ? _self.sepaDebitIban : sepaDebitIban // ignore: cast_nullable_to_non_nullable -as String?,upiVpa: freezed == upiVpa ? _self.upiVpa : upiVpa // ignore: cast_nullable_to_non_nullable -as String?,billingDetails: freezed == billingDetails ? _self.billingDetails : billingDetails // ignore: cast_nullable_to_non_nullable -as BillingDetails?, - )); -} -/// Create a copy of CreatePaymentMethodData -/// with the given fields replaced by the non-null parameter values. -@override -@pragma('vm:prefer-inline') -$BillingDetailsCopyWith<$Res>? get billingDetails { - if (_self.billingDetails == null) { - return null; - } - - return $BillingDetailsCopyWith<$Res>(_self.billingDetails!, (value) { - return _then(_self.copyWith(billingDetails: value)); - }); -} +class $CreatePaymentMethodDataCopyWith<$Res> { +$CreatePaymentMethodDataCopyWith(CreatePaymentMethodData _, $Res Function(CreatePaymentMethodData) __); } @@ -124,11 +81,12 @@ extension CreatePaymentMethodDataPatterns on CreatePaymentMethodData { /// } /// ``` -@optionalTypeArgs TResult maybeMap(TResult Function( _CreatePaymentMethodData value)? $default,{required TResult orElse(),}){ +@optionalTypeArgs TResult maybeMap({TResult Function( _CreatePaymentMethodDataCard value)? card,TResult Function( _CreatePaymentMethodDataElements value)? elements,required TResult orElse(),}){ final _that = this; switch (_that) { -case _CreatePaymentMethodData() when $default != null: -return $default(_that);case _: +case _CreatePaymentMethodDataCard() when card != null: +return card(_that);case _CreatePaymentMethodDataElements() when elements != null: +return elements(_that);case _: return orElse(); } @@ -146,11 +104,12 @@ return $default(_that);case _: /// } /// ``` -@optionalTypeArgs TResult map(TResult Function( _CreatePaymentMethodData value) $default,){ +@optionalTypeArgs TResult map({required TResult Function( _CreatePaymentMethodDataCard value) card,required TResult Function( _CreatePaymentMethodDataElements value) elements,}){ final _that = this; switch (_that) { -case _CreatePaymentMethodData(): -return $default(_that);case _: +case _CreatePaymentMethodDataCard(): +return card(_that);case _CreatePaymentMethodDataElements(): +return elements(_that);case _: throw StateError('Unexpected subclass'); } @@ -167,11 +126,12 @@ return $default(_that);case _: /// } /// ``` -@optionalTypeArgs TResult? mapOrNull(TResult? Function( _CreatePaymentMethodData value)? $default,){ +@optionalTypeArgs TResult? mapOrNull({TResult? Function( _CreatePaymentMethodDataCard value)? card,TResult? Function( _CreatePaymentMethodDataElements value)? elements,}){ final _that = this; switch (_that) { -case _CreatePaymentMethodData() when $default != null: -return $default(_that);case _: +case _CreatePaymentMethodDataCard() when card != null: +return card(_that);case _CreatePaymentMethodDataElements() when elements != null: +return elements(_that);case _: return null; } @@ -188,10 +148,11 @@ return $default(_that);case _: /// } /// ``` -@optionalTypeArgs TResult maybeWhen(TResult Function( String type, @ElementConverter() Element? card, @JsonKey(name: "au_becs_debit")@ElementConverter() Element? auBecsDebit, @ElementConverter() Element? fpx, @JsonKey(name: "fpx[bank]") String? fpxBank, @JsonKey(name: "netbanking[bank]") String? netbankingBank, @ElementConverter() Element? ideal, @JsonKey(name: "ideal[bank]") String? idealBank, @JsonKey(name: "sepa_debit")@ElementConverter() Element? sepaDebit, @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, @JsonKey(name: "upi[vpa]") String? upiVpa, @JsonKey(name: "billing_details") BillingDetails? billingDetails)? $default,{required TResult orElse(),}) {final _that = this; +@optionalTypeArgs TResult maybeWhen({TResult Function( String type, @ElementConverter() Element? card, @JsonKey(name: "au_becs_debit")@ElementConverter() Element? auBecsDebit, @ElementConverter() Element? fpx, @JsonKey(name: "fpx[bank]") String? fpxBank, @JsonKey(name: "netbanking[bank]") String? netbankingBank, @ElementConverter() Element? ideal, @JsonKey(name: "ideal[bank]") String? idealBank, @JsonKey(name: "sepa_debit")@ElementConverter() Element? sepaDebit, @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, @JsonKey(name: "upi[vpa]") String? upiVpa, @JsonKey(name: "billing_details") BillingDetails? billingDetails)? card,TResult Function(@ElementsConverter() Elements elements)? elements,required TResult orElse(),}) {final _that = this; switch (_that) { -case _CreatePaymentMethodData() when $default != null: -return $default(_that.type,_that.card,_that.auBecsDebit,_that.fpx,_that.fpxBank,_that.netbankingBank,_that.ideal,_that.idealBank,_that.sepaDebit,_that.sepaDebitIban,_that.upiVpa,_that.billingDetails);case _: +case _CreatePaymentMethodDataCard() when card != null: +return card(_that.type,_that.card,_that.auBecsDebit,_that.fpx,_that.fpxBank,_that.netbankingBank,_that.ideal,_that.idealBank,_that.sepaDebit,_that.sepaDebitIban,_that.upiVpa,_that.billingDetails);case _CreatePaymentMethodDataElements() when elements != null: +return elements(_that.elements);case _: return orElse(); } @@ -209,10 +170,11 @@ return $default(_that.type,_that.card,_that.auBecsDebit,_that.fpx,_that.fpxBank, /// } /// ``` -@optionalTypeArgs TResult when(TResult Function( String type, @ElementConverter() Element? card, @JsonKey(name: "au_becs_debit")@ElementConverter() Element? auBecsDebit, @ElementConverter() Element? fpx, @JsonKey(name: "fpx[bank]") String? fpxBank, @JsonKey(name: "netbanking[bank]") String? netbankingBank, @ElementConverter() Element? ideal, @JsonKey(name: "ideal[bank]") String? idealBank, @JsonKey(name: "sepa_debit")@ElementConverter() Element? sepaDebit, @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, @JsonKey(name: "upi[vpa]") String? upiVpa, @JsonKey(name: "billing_details") BillingDetails? billingDetails) $default,) {final _that = this; +@optionalTypeArgs TResult when({required TResult Function( String type, @ElementConverter() Element? card, @JsonKey(name: "au_becs_debit")@ElementConverter() Element? auBecsDebit, @ElementConverter() Element? fpx, @JsonKey(name: "fpx[bank]") String? fpxBank, @JsonKey(name: "netbanking[bank]") String? netbankingBank, @ElementConverter() Element? ideal, @JsonKey(name: "ideal[bank]") String? idealBank, @JsonKey(name: "sepa_debit")@ElementConverter() Element? sepaDebit, @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, @JsonKey(name: "upi[vpa]") String? upiVpa, @JsonKey(name: "billing_details") BillingDetails? billingDetails) card,required TResult Function(@ElementsConverter() Elements elements) elements,}) {final _that = this; switch (_that) { -case _CreatePaymentMethodData(): -return $default(_that.type,_that.card,_that.auBecsDebit,_that.fpx,_that.fpxBank,_that.netbankingBank,_that.ideal,_that.idealBank,_that.sepaDebit,_that.sepaDebitIban,_that.upiVpa,_that.billingDetails);case _: +case _CreatePaymentMethodDataCard(): +return card(_that.type,_that.card,_that.auBecsDebit,_that.fpx,_that.fpxBank,_that.netbankingBank,_that.ideal,_that.idealBank,_that.sepaDebit,_that.sepaDebitIban,_that.upiVpa,_that.billingDetails);case _CreatePaymentMethodDataElements(): +return elements(_that.elements);case _: throw StateError('Unexpected subclass'); } @@ -229,10 +191,11 @@ return $default(_that.type,_that.card,_that.auBecsDebit,_that.fpx,_that.fpxBank, /// } /// ``` -@optionalTypeArgs TResult? whenOrNull(TResult? Function( String type, @ElementConverter() Element? card, @JsonKey(name: "au_becs_debit")@ElementConverter() Element? auBecsDebit, @ElementConverter() Element? fpx, @JsonKey(name: "fpx[bank]") String? fpxBank, @JsonKey(name: "netbanking[bank]") String? netbankingBank, @ElementConverter() Element? ideal, @JsonKey(name: "ideal[bank]") String? idealBank, @JsonKey(name: "sepa_debit")@ElementConverter() Element? sepaDebit, @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, @JsonKey(name: "upi[vpa]") String? upiVpa, @JsonKey(name: "billing_details") BillingDetails? billingDetails)? $default,) {final _that = this; +@optionalTypeArgs TResult? whenOrNull({TResult? Function( String type, @ElementConverter() Element? card, @JsonKey(name: "au_becs_debit")@ElementConverter() Element? auBecsDebit, @ElementConverter() Element? fpx, @JsonKey(name: "fpx[bank]") String? fpxBank, @JsonKey(name: "netbanking[bank]") String? netbankingBank, @ElementConverter() Element? ideal, @JsonKey(name: "ideal[bank]") String? idealBank, @JsonKey(name: "sepa_debit")@ElementConverter() Element? sepaDebit, @JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban, @JsonKey(name: "upi[vpa]") String? upiVpa, @JsonKey(name: "billing_details") BillingDetails? billingDetails)? card,TResult? Function(@ElementsConverter() Elements elements)? elements,}) {final _that = this; switch (_that) { -case _CreatePaymentMethodData() when $default != null: -return $default(_that.type,_that.card,_that.auBecsDebit,_that.fpx,_that.fpxBank,_that.netbankingBank,_that.ideal,_that.idealBank,_that.sepaDebit,_that.sepaDebitIban,_that.upiVpa,_that.billingDetails);case _: +case _CreatePaymentMethodDataCard() when card != null: +return card(_that.type,_that.card,_that.auBecsDebit,_that.fpx,_that.fpxBank,_that.netbankingBank,_that.ideal,_that.idealBank,_that.sepaDebit,_that.sepaDebitIban,_that.upiVpa,_that.billingDetails);case _CreatePaymentMethodDataElements() when elements != null: +return elements(_that.elements);case _: return null; } @@ -243,49 +206,53 @@ return $default(_that.type,_that.card,_that.auBecsDebit,_that.fpx,_that.fpxBank, /// @nodoc @JsonSerializable() -class _CreatePaymentMethodData implements CreatePaymentMethodData { - const _CreatePaymentMethodData({required this.type, @ElementConverter() this.card, @JsonKey(name: "au_becs_debit")@ElementConverter() this.auBecsDebit, @ElementConverter() this.fpx, @JsonKey(name: "fpx[bank]") this.fpxBank, @JsonKey(name: "netbanking[bank]") this.netbankingBank, @ElementConverter() this.ideal, @JsonKey(name: "ideal[bank]") this.idealBank, @JsonKey(name: "sepa_debit")@ElementConverter() this.sepaDebit, @JsonKey(name: "sepa_debit[iban]") this.sepaDebitIban, @JsonKey(name: "upi[vpa]") this.upiVpa, @JsonKey(name: "billing_details") this.billingDetails}); - factory _CreatePaymentMethodData.fromJson(Map json) => _$CreatePaymentMethodDataFromJson(json); +class _CreatePaymentMethodDataCard implements CreatePaymentMethodData { + const _CreatePaymentMethodDataCard({required this.type, @ElementConverter() this.card, @JsonKey(name: "au_becs_debit")@ElementConverter() this.auBecsDebit, @ElementConverter() this.fpx, @JsonKey(name: "fpx[bank]") this.fpxBank, @JsonKey(name: "netbanking[bank]") this.netbankingBank, @ElementConverter() this.ideal, @JsonKey(name: "ideal[bank]") this.idealBank, @JsonKey(name: "sepa_debit")@ElementConverter() this.sepaDebit, @JsonKey(name: "sepa_debit[iban]") this.sepaDebitIban, @JsonKey(name: "upi[vpa]") this.upiVpa, @JsonKey(name: "billing_details") this.billingDetails, final String? $type}): $type = $type ?? 'card'; + factory _CreatePaymentMethodDataCard.fromJson(Map json) => _$CreatePaymentMethodDataCardFromJson(json); /// Unique identifier for the object. -@override final String type; + final String type; /// A card or cardNumber Element. -@override@ElementConverter() final Element? card; +@ElementConverter() final Element? card; /// An auBankAccount Element. -@override@JsonKey(name: "au_becs_debit")@ElementConverter() final Element? auBecsDebit; +@JsonKey(name: "au_becs_debit")@ElementConverter() final Element? auBecsDebit; /// An fpx Element. -@override@ElementConverter() final Element? fpx; +@ElementConverter() final Element? fpx; /// The customer's bank. -@override@JsonKey(name: "fpx[bank]") final String? fpxBank; +@JsonKey(name: "fpx[bank]") final String? fpxBank; /// The customer's bank. -@override@JsonKey(name: "netbanking[bank]") final String? netbankingBank; +@JsonKey(name: "netbanking[bank]") final String? netbankingBank; /// An idealBank Element. -@override@ElementConverter() final Element? ideal; +@ElementConverter() final Element? ideal; /// The customer's bank. -@override@JsonKey(name: "ideal[bank]") final String? idealBank; +@JsonKey(name: "ideal[bank]") final String? idealBank; /// An iban Element. -@override@JsonKey(name: "sepa_debit")@ElementConverter() final Element? sepaDebit; +@JsonKey(name: "sepa_debit")@ElementConverter() final Element? sepaDebit; /// An IBAN account number. -@override@JsonKey(name: "sepa_debit[iban]") final String? sepaDebitIban; +@JsonKey(name: "sepa_debit[iban]") final String? sepaDebitIban; /// The customer's VPA. -@override@JsonKey(name: "upi[vpa]") final String? upiVpa; +@JsonKey(name: "upi[vpa]") final String? upiVpa; /// Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. -@override@JsonKey(name: "billing_details") final BillingDetails? billingDetails; +@JsonKey(name: "billing_details") final BillingDetails? billingDetails; + +@JsonKey(name: 'runtimeType') +final String $type; + /// Create a copy of CreatePaymentMethodData /// with the given fields replaced by the non-null parameter values. -@override @JsonKey(includeFromJson: false, includeToJson: false) +@JsonKey(includeFromJson: false, includeToJson: false) @pragma('vm:prefer-inline') -_$CreatePaymentMethodDataCopyWith<_CreatePaymentMethodData> get copyWith => __$CreatePaymentMethodDataCopyWithImpl<_CreatePaymentMethodData>(this, _$identity); +_$CreatePaymentMethodDataCardCopyWith<_CreatePaymentMethodDataCard> get copyWith => __$CreatePaymentMethodDataCardCopyWithImpl<_CreatePaymentMethodDataCard>(this, _$identity); @override Map toJson() { - return _$CreatePaymentMethodDataToJson(this, ); + return _$CreatePaymentMethodDataCardToJson(this, ); } @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is _CreatePaymentMethodData&&(identical(other.type, type) || other.type == type)&&(identical(other.card, card) || other.card == card)&&(identical(other.auBecsDebit, auBecsDebit) || other.auBecsDebit == auBecsDebit)&&(identical(other.fpx, fpx) || other.fpx == fpx)&&(identical(other.fpxBank, fpxBank) || other.fpxBank == fpxBank)&&(identical(other.netbankingBank, netbankingBank) || other.netbankingBank == netbankingBank)&&(identical(other.ideal, ideal) || other.ideal == ideal)&&(identical(other.idealBank, idealBank) || other.idealBank == idealBank)&&(identical(other.sepaDebit, sepaDebit) || other.sepaDebit == sepaDebit)&&(identical(other.sepaDebitIban, sepaDebitIban) || other.sepaDebitIban == sepaDebitIban)&&(identical(other.upiVpa, upiVpa) || other.upiVpa == upiVpa)&&(identical(other.billingDetails, billingDetails) || other.billingDetails == billingDetails)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is _CreatePaymentMethodDataCard&&(identical(other.type, type) || other.type == type)&&(identical(other.card, card) || other.card == card)&&(identical(other.auBecsDebit, auBecsDebit) || other.auBecsDebit == auBecsDebit)&&(identical(other.fpx, fpx) || other.fpx == fpx)&&(identical(other.fpxBank, fpxBank) || other.fpxBank == fpxBank)&&(identical(other.netbankingBank, netbankingBank) || other.netbankingBank == netbankingBank)&&(identical(other.ideal, ideal) || other.ideal == ideal)&&(identical(other.idealBank, idealBank) || other.idealBank == idealBank)&&(identical(other.sepaDebit, sepaDebit) || other.sepaDebit == sepaDebit)&&(identical(other.sepaDebitIban, sepaDebitIban) || other.sepaDebitIban == sepaDebitIban)&&(identical(other.upiVpa, upiVpa) || other.upiVpa == upiVpa)&&(identical(other.billingDetails, billingDetails) || other.billingDetails == billingDetails)); } @JsonKey(includeFromJson: false, includeToJson: false) @@ -294,36 +261,36 @@ int get hashCode => Object.hash(runtimeType,type,card,auBecsDebit,fpx,fpxBank,ne @override String toString() { - return 'CreatePaymentMethodData(type: $type, card: $card, auBecsDebit: $auBecsDebit, fpx: $fpx, fpxBank: $fpxBank, netbankingBank: $netbankingBank, ideal: $ideal, idealBank: $idealBank, sepaDebit: $sepaDebit, sepaDebitIban: $sepaDebitIban, upiVpa: $upiVpa, billingDetails: $billingDetails)'; + return 'CreatePaymentMethodData.card(type: $type, card: $card, auBecsDebit: $auBecsDebit, fpx: $fpx, fpxBank: $fpxBank, netbankingBank: $netbankingBank, ideal: $ideal, idealBank: $idealBank, sepaDebit: $sepaDebit, sepaDebitIban: $sepaDebitIban, upiVpa: $upiVpa, billingDetails: $billingDetails)'; } } /// @nodoc -abstract mixin class _$CreatePaymentMethodDataCopyWith<$Res> implements $CreatePaymentMethodDataCopyWith<$Res> { - factory _$CreatePaymentMethodDataCopyWith(_CreatePaymentMethodData value, $Res Function(_CreatePaymentMethodData) _then) = __$CreatePaymentMethodDataCopyWithImpl; -@override @useResult +abstract mixin class _$CreatePaymentMethodDataCardCopyWith<$Res> implements $CreatePaymentMethodDataCopyWith<$Res> { + factory _$CreatePaymentMethodDataCardCopyWith(_CreatePaymentMethodDataCard value, $Res Function(_CreatePaymentMethodDataCard) _then) = __$CreatePaymentMethodDataCardCopyWithImpl; +@useResult $Res call({ String type,@ElementConverter() Element? card,@JsonKey(name: "au_becs_debit")@ElementConverter() Element? auBecsDebit,@ElementConverter() Element? fpx,@JsonKey(name: "fpx[bank]") String? fpxBank,@JsonKey(name: "netbanking[bank]") String? netbankingBank,@ElementConverter() Element? ideal,@JsonKey(name: "ideal[bank]") String? idealBank,@JsonKey(name: "sepa_debit")@ElementConverter() Element? sepaDebit,@JsonKey(name: "sepa_debit[iban]") String? sepaDebitIban,@JsonKey(name: "upi[vpa]") String? upiVpa,@JsonKey(name: "billing_details") BillingDetails? billingDetails }); -@override $BillingDetailsCopyWith<$Res>? get billingDetails; +$BillingDetailsCopyWith<$Res>? get billingDetails; } /// @nodoc -class __$CreatePaymentMethodDataCopyWithImpl<$Res> - implements _$CreatePaymentMethodDataCopyWith<$Res> { - __$CreatePaymentMethodDataCopyWithImpl(this._self, this._then); +class __$CreatePaymentMethodDataCardCopyWithImpl<$Res> + implements _$CreatePaymentMethodDataCardCopyWith<$Res> { + __$CreatePaymentMethodDataCardCopyWithImpl(this._self, this._then); - final _CreatePaymentMethodData _self; - final $Res Function(_CreatePaymentMethodData) _then; + final _CreatePaymentMethodDataCard _self; + final $Res Function(_CreatePaymentMethodDataCard) _then; /// Create a copy of CreatePaymentMethodData /// with the given fields replaced by the non-null parameter values. -@override @pragma('vm:prefer-inline') $Res call({Object? type = null,Object? card = freezed,Object? auBecsDebit = freezed,Object? fpx = freezed,Object? fpxBank = freezed,Object? netbankingBank = freezed,Object? ideal = freezed,Object? idealBank = freezed,Object? sepaDebit = freezed,Object? sepaDebitIban = freezed,Object? upiVpa = freezed,Object? billingDetails = freezed,}) { - return _then(_CreatePaymentMethodData( +@pragma('vm:prefer-inline') $Res call({Object? type = null,Object? card = freezed,Object? auBecsDebit = freezed,Object? fpx = freezed,Object? fpxBank = freezed,Object? netbankingBank = freezed,Object? ideal = freezed,Object? idealBank = freezed,Object? sepaDebit = freezed,Object? sepaDebitIban = freezed,Object? upiVpa = freezed,Object? billingDetails = freezed,}) { + return _then(_CreatePaymentMethodDataCard( type: null == type ? _self.type : type // ignore: cast_nullable_to_non_nullable as String,card: freezed == card ? _self.card : card // ignore: cast_nullable_to_non_nullable as Element?,auBecsDebit: freezed == auBecsDebit ? _self.auBecsDebit : auBecsDebit // ignore: cast_nullable_to_non_nullable @@ -355,4 +322,77 @@ $BillingDetailsCopyWith<$Res>? get billingDetails { } } +/// @nodoc +@JsonSerializable() + +class _CreatePaymentMethodDataElements implements CreatePaymentMethodData { + const _CreatePaymentMethodDataElements({@ElementsConverter() required this.elements, final String? $type}): $type = $type ?? 'elements'; + factory _CreatePaymentMethodDataElements.fromJson(Map json) => _$CreatePaymentMethodDataElementsFromJson(json); + +@ElementsConverter() final Elements elements; + +@JsonKey(name: 'runtimeType') +final String $type; + + +/// Create a copy of CreatePaymentMethodData +/// with the given fields replaced by the non-null parameter values. +@JsonKey(includeFromJson: false, includeToJson: false) +@pragma('vm:prefer-inline') +_$CreatePaymentMethodDataElementsCopyWith<_CreatePaymentMethodDataElements> get copyWith => __$CreatePaymentMethodDataElementsCopyWithImpl<_CreatePaymentMethodDataElements>(this, _$identity); + +@override +Map toJson() { + return _$CreatePaymentMethodDataElementsToJson(this, ); +} + +@override +bool operator ==(Object other) { + return identical(this, other) || (other.runtimeType == runtimeType&&other is _CreatePaymentMethodDataElements&&(identical(other.elements, elements) || other.elements == elements)); +} + +@JsonKey(includeFromJson: false, includeToJson: false) +@override +int get hashCode => Object.hash(runtimeType,elements); + +@override +String toString() { + return 'CreatePaymentMethodData.elements(elements: $elements)'; +} + + +} + +/// @nodoc +abstract mixin class _$CreatePaymentMethodDataElementsCopyWith<$Res> implements $CreatePaymentMethodDataCopyWith<$Res> { + factory _$CreatePaymentMethodDataElementsCopyWith(_CreatePaymentMethodDataElements value, $Res Function(_CreatePaymentMethodDataElements) _then) = __$CreatePaymentMethodDataElementsCopyWithImpl; +@useResult +$Res call({ +@ElementsConverter() Elements elements +}); + + + + +} +/// @nodoc +class __$CreatePaymentMethodDataElementsCopyWithImpl<$Res> + implements _$CreatePaymentMethodDataElementsCopyWith<$Res> { + __$CreatePaymentMethodDataElementsCopyWithImpl(this._self, this._then); + + final _CreatePaymentMethodDataElements _self; + final $Res Function(_CreatePaymentMethodDataElements) _then; + +/// Create a copy of CreatePaymentMethodData +/// with the given fields replaced by the non-null parameter values. +@pragma('vm:prefer-inline') $Res call({Object? elements = null,}) { + return _then(_CreatePaymentMethodDataElements( +elements: null == elements ? _self.elements : elements // ignore: cast_nullable_to_non_nullable +as Elements, + )); +} + + +} + // dart format on diff --git a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.g.dart b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.g.dart index 496e21d89..286c8693b 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.g.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/create_payment_method_data.g.dart @@ -6,8 +6,8 @@ part of 'create_payment_method_data.dart'; // JsonSerializableGenerator // ************************************************************************** -_CreatePaymentMethodData _$CreatePaymentMethodDataFromJson(Map json) => - _CreatePaymentMethodData( +_CreatePaymentMethodDataCard _$CreatePaymentMethodDataCardFromJson(Map json) => + _CreatePaymentMethodDataCard( type: json['type'] as String, card: const ElementConverter().fromJson(json['card']), auBecsDebit: const ElementConverter().fromJson(json['au_becs_debit']), @@ -24,10 +24,11 @@ _CreatePaymentMethodData _$CreatePaymentMethodDataFromJson(Map json) => : BillingDetails.fromJson( Map.from(json['billing_details'] as Map), ), + $type: json['runtimeType'] as String?, ); -Map _$CreatePaymentMethodDataToJson( - _CreatePaymentMethodData instance, +Map _$CreatePaymentMethodDataCardToJson( + _CreatePaymentMethodDataCard instance, ) => { 'type': instance.type, 'card': ?_$JsonConverterToJson( @@ -56,9 +57,24 @@ Map _$CreatePaymentMethodDataToJson( 'sepa_debit[iban]': ?instance.sepaDebitIban, 'upi[vpa]': ?instance.upiVpa, 'billing_details': ?instance.billingDetails?.toJson(), + 'runtimeType': instance.$type, }; Json? _$JsonConverterToJson( Value? value, Json? Function(Value value) toJson, ) => value == null ? null : toJson(value); + +_CreatePaymentMethodDataElements _$CreatePaymentMethodDataElementsFromJson( + Map json, +) => _CreatePaymentMethodDataElements( + elements: const ElementsConverter().fromJson(json['elements']), + $type: json['runtimeType'] as String?, +); + +Map _$CreatePaymentMethodDataElementsToJson( + _CreatePaymentMethodDataElements instance, +) => { + 'elements': ?const ElementsConverter().toJson(instance.elements), + 'runtimeType': instance.$type, +}; diff --git a/packages/stripe_js/lib/src/api/payment_methods/payment_method.freezed.dart b/packages/stripe_js/lib/src/api/payment_methods/payment_method.freezed.dart index fc617dece..258c941fa 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/payment_method.freezed.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/payment_method.freezed.dart @@ -41,7 +41,7 @@ mixin _$PaymentMethod { /// An additional hash is included on the PaymentMethod with a name /// matching this value. /// It contains additional information specific to the PaymentMethod type. - PaymentMethodType get type; +@JsonKey(unknownEnumValue: PaymentMethodType.unknown) PaymentMethodType get type; /// Create a copy of PaymentMethod /// with the given fields replaced by the non-null parameter values. @JsonKey(includeFromJson: false, includeToJson: false) @@ -74,7 +74,7 @@ abstract mixin class $PaymentMethodCopyWith<$Res> { factory $PaymentMethodCopyWith(PaymentMethod value, $Res Function(PaymentMethod) _then) = _$PaymentMethodCopyWithImpl; @useResult $Res call({ - String id, String object, BillingDetails? billingDetails, String? customer, Map metadata, bool livemode, int? created, CardPaymentMethod? card, SepaDebit? sepaDebit, BacsDebit? bacsDebit, AuBecsDebit? auBecsDebit, Ideal? ideal, Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount, PaymentMethodType type + String id, String object, BillingDetails? billingDetails, String? customer, Map metadata, bool livemode, int? created, CardPaymentMethod? card, SepaDebit? sepaDebit, BacsDebit? bacsDebit, AuBecsDebit? auBecsDebit, Ideal? ideal, Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount,@JsonKey(unknownEnumValue: PaymentMethodType.unknown) PaymentMethodType type }); @@ -302,7 +302,7 @@ return $default(_that);case _: /// } /// ``` -@optionalTypeArgs TResult maybeWhen(TResult Function( String id, String object, BillingDetails? billingDetails, String? customer, Map metadata, bool livemode, int? created, CardPaymentMethod? card, SepaDebit? sepaDebit, BacsDebit? bacsDebit, AuBecsDebit? auBecsDebit, Ideal? ideal, Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount, PaymentMethodType type)? $default,{required TResult orElse(),}) {final _that = this; +@optionalTypeArgs TResult maybeWhen(TResult Function( String id, String object, BillingDetails? billingDetails, String? customer, Map metadata, bool livemode, int? created, CardPaymentMethod? card, SepaDebit? sepaDebit, BacsDebit? bacsDebit, AuBecsDebit? auBecsDebit, Ideal? ideal, Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount, @JsonKey(unknownEnumValue: PaymentMethodType.unknown) PaymentMethodType type)? $default,{required TResult orElse(),}) {final _that = this; switch (_that) { case _PaymentMethod() when $default != null: return $default(_that.id,_that.object,_that.billingDetails,_that.customer,_that.metadata,_that.livemode,_that.created,_that.card,_that.sepaDebit,_that.bacsDebit,_that.auBecsDebit,_that.ideal,_that.fpx,_that.upi,_that.usBankAccount,_that.type);case _: @@ -323,7 +323,7 @@ return $default(_that.id,_that.object,_that.billingDetails,_that.customer,_that. /// } /// ``` -@optionalTypeArgs TResult when(TResult Function( String id, String object, BillingDetails? billingDetails, String? customer, Map metadata, bool livemode, int? created, CardPaymentMethod? card, SepaDebit? sepaDebit, BacsDebit? bacsDebit, AuBecsDebit? auBecsDebit, Ideal? ideal, Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount, PaymentMethodType type) $default,) {final _that = this; +@optionalTypeArgs TResult when(TResult Function( String id, String object, BillingDetails? billingDetails, String? customer, Map metadata, bool livemode, int? created, CardPaymentMethod? card, SepaDebit? sepaDebit, BacsDebit? bacsDebit, AuBecsDebit? auBecsDebit, Ideal? ideal, Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount, @JsonKey(unknownEnumValue: PaymentMethodType.unknown) PaymentMethodType type) $default,) {final _that = this; switch (_that) { case _PaymentMethod(): return $default(_that.id,_that.object,_that.billingDetails,_that.customer,_that.metadata,_that.livemode,_that.created,_that.card,_that.sepaDebit,_that.bacsDebit,_that.auBecsDebit,_that.ideal,_that.fpx,_that.upi,_that.usBankAccount,_that.type);case _: @@ -343,7 +343,7 @@ return $default(_that.id,_that.object,_that.billingDetails,_that.customer,_that. /// } /// ``` -@optionalTypeArgs TResult? whenOrNull(TResult? Function( String id, String object, BillingDetails? billingDetails, String? customer, Map metadata, bool livemode, int? created, CardPaymentMethod? card, SepaDebit? sepaDebit, BacsDebit? bacsDebit, AuBecsDebit? auBecsDebit, Ideal? ideal, Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount, PaymentMethodType type)? $default,) {final _that = this; +@optionalTypeArgs TResult? whenOrNull(TResult? Function( String id, String object, BillingDetails? billingDetails, String? customer, Map metadata, bool livemode, int? created, CardPaymentMethod? card, SepaDebit? sepaDebit, BacsDebit? bacsDebit, AuBecsDebit? auBecsDebit, Ideal? ideal, Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount, @JsonKey(unknownEnumValue: PaymentMethodType.unknown) PaymentMethodType type)? $default,) {final _that = this; switch (_that) { case _PaymentMethod() when $default != null: return $default(_that.id,_that.object,_that.billingDetails,_that.customer,_that.metadata,_that.livemode,_that.created,_that.card,_that.sepaDebit,_that.bacsDebit,_that.auBecsDebit,_that.ideal,_that.fpx,_that.upi,_that.usBankAccount,_that.type);case _: @@ -358,7 +358,7 @@ return $default(_that.id,_that.object,_that.billingDetails,_that.customer,_that. @JsonSerializable(explicitToJson: true) class _PaymentMethod implements PaymentMethod { - const _PaymentMethod({required this.id, this.object = "payment_method", this.billingDetails, this.customer, final Map metadata = const {}, this.livemode = true, this.created, this.card, this.sepaDebit, this.bacsDebit, this.auBecsDebit, this.ideal, this.fpx, this.upi, this.usBankAccount, required this.type}): _metadata = metadata; + const _PaymentMethod({required this.id, this.object = "payment_method", this.billingDetails, this.customer, final Map metadata = const {}, this.livemode = true, this.created, this.card, this.sepaDebit, this.bacsDebit, this.auBecsDebit, this.ideal, this.fpx, this.upi, this.usBankAccount, @JsonKey(unknownEnumValue: PaymentMethodType.unknown) required this.type}): _metadata = metadata; factory _PaymentMethod.fromJson(Map json) => _$PaymentMethodFromJson(json); /// Unique identifier for the object. @@ -411,7 +411,7 @@ class _PaymentMethod implements PaymentMethod { /// An additional hash is included on the PaymentMethod with a name /// matching this value. /// It contains additional information specific to the PaymentMethod type. -@override final PaymentMethodType type; +@override@JsonKey(unknownEnumValue: PaymentMethodType.unknown) final PaymentMethodType type; /// Create a copy of PaymentMethod /// with the given fields replaced by the non-null parameter values. @@ -446,7 +446,7 @@ abstract mixin class _$PaymentMethodCopyWith<$Res> implements $PaymentMethodCopy factory _$PaymentMethodCopyWith(_PaymentMethod value, $Res Function(_PaymentMethod) _then) = __$PaymentMethodCopyWithImpl; @override @useResult $Res call({ - String id, String object, BillingDetails? billingDetails, String? customer, Map metadata, bool livemode, int? created, CardPaymentMethod? card, SepaDebit? sepaDebit, BacsDebit? bacsDebit, AuBecsDebit? auBecsDebit, Ideal? ideal, Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount, PaymentMethodType type + String id, String object, BillingDetails? billingDetails, String? customer, Map metadata, bool livemode, int? created, CardPaymentMethod? card, SepaDebit? sepaDebit, BacsDebit? bacsDebit, AuBecsDebit? auBecsDebit, Ideal? ideal, Fpx? fpx, Upi? upi, UsBankAccount? usBankAccount,@JsonKey(unknownEnumValue: PaymentMethodType.unknown) PaymentMethodType type }); diff --git a/packages/stripe_js/lib/src/api/payment_methods/payment_method.g.dart b/packages/stripe_js/lib/src/api/payment_methods/payment_method.g.dart index 3b1b165d9..18c359fa9 100644 --- a/packages/stripe_js/lib/src/api/payment_methods/payment_method.g.dart +++ b/packages/stripe_js/lib/src/api/payment_methods/payment_method.g.dart @@ -50,7 +50,11 @@ _PaymentMethod _$PaymentMethodFromJson(Map json) => _PaymentMethod( : UsBankAccount.fromJson( Map.from(json['usBankAccount'] as Map), ), - type: $enumDecode(_$PaymentMethodTypeEnumMap, json['type']), + type: $enumDecode( + _$PaymentMethodTypeEnumMap, + json['type'], + unknownValue: PaymentMethodType.unknown, + ), ); Map _$PaymentMethodToJson(_PaymentMethod instance) => diff --git a/packages/stripe_platform_interface/lib/src/models/payment_methods.freezed.dart b/packages/stripe_platform_interface/lib/src/models/payment_methods.freezed.dart index 5396cdbb6..bfecdf409 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_methods.freezed.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_methods.freezed.dart @@ -3177,6 +3177,10 @@ PaymentMethodParams _$PaymentMethodParamsFromJson( return _PaymentMethodParamsUsBankAccount.fromJson( json ); + case 'Elements': + return _PaymentMethodParamsElements.fromJson( + json + ); default: throw CheckedFromJsonException( @@ -3192,8 +3196,7 @@ PaymentMethodParams _$PaymentMethodParamsFromJson( /// @nodoc mixin _$PaymentMethodParams { -/// Paymentmethod data for this paymentmethod. - Object get paymentMethodData; + /// Serializes this PaymentMethodParams to a JSON map. Map toJson(); @@ -3201,16 +3204,16 @@ mixin _$PaymentMethodParams { @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is PaymentMethodParams&&const DeepCollectionEquality().equals(other.paymentMethodData, paymentMethodData)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is PaymentMethodParams); } @JsonKey(includeFromJson: false, includeToJson: false) @override -int get hashCode => Object.hash(runtimeType,const DeepCollectionEquality().hash(paymentMethodData)); +int get hashCode => runtimeType.hashCode; @override String toString() { - return 'PaymentMethodParams(paymentMethodData: $paymentMethodData)'; + return 'PaymentMethodParams()'; } @@ -3236,7 +3239,7 @@ extension PaymentMethodParamsPatterns on PaymentMethodParams { /// } /// ``` -@optionalTypeArgs TResult maybeMap({TResult Function( _PaymentMethodParamsCard value)? card,TResult Function( _PaymentMethodParamsCardWithToken value)? cardFromToken,TResult Function( _PaymentMethodParamsCardWithMethodId value)? cardFromMethodId,TResult Function( _PaymentMethodParamsAlipay value)? alipay,TResult Function( _PaymentMethodParamsCashAppPay value)? cashAppPay,TResult Function( _PaymentMethodParamsIdeal value)? ideal,TResult Function( _PaymentMethodParamsAubecs value)? aubecs,TResult Function( _PaymentMethodParamsBankContact value)? bancontact,TResult Function( _PaymentMethodParamsGiroPay value)? giroPay,TResult Function( _PaymentMethodParamsEps value)? eps,TResult Function( _PaymentMethodParamsAffirm value)? affirm,TResult Function( _PaymentMethodParamsPay value)? grabPay,TResult Function( _PaymentMethodParamsP24 value)? p24,TResult Function( _PaymentMethodParamsFpx value)? fpx,TResult Function( _PaymentMethodParamsSepaDebit value)? sepaDebit,TResult Function( _PaymentMethodParamsAfterpayClearpay value)? afterpayClearpay,TResult Function( _PaymentMethodParamsOxxo value)? oxxo,TResult Function( _PaymentMethodParamsKlarna value)? klarna,TResult Function( _PaymentMethodParamsPayPal value)? payPal,TResult Function( _PaymentMethodParamsRevolutPay value)? revolutPay,TResult Function( _PaymentMethodParamsUsBankAccount value)? usBankAccount,required TResult orElse(),}){ +@optionalTypeArgs TResult maybeMap({TResult Function( _PaymentMethodParamsCard value)? card,TResult Function( _PaymentMethodParamsCardWithToken value)? cardFromToken,TResult Function( _PaymentMethodParamsCardWithMethodId value)? cardFromMethodId,TResult Function( _PaymentMethodParamsAlipay value)? alipay,TResult Function( _PaymentMethodParamsCashAppPay value)? cashAppPay,TResult Function( _PaymentMethodParamsIdeal value)? ideal,TResult Function( _PaymentMethodParamsAubecs value)? aubecs,TResult Function( _PaymentMethodParamsBankContact value)? bancontact,TResult Function( _PaymentMethodParamsGiroPay value)? giroPay,TResult Function( _PaymentMethodParamsEps value)? eps,TResult Function( _PaymentMethodParamsAffirm value)? affirm,TResult Function( _PaymentMethodParamsPay value)? grabPay,TResult Function( _PaymentMethodParamsP24 value)? p24,TResult Function( _PaymentMethodParamsFpx value)? fpx,TResult Function( _PaymentMethodParamsSepaDebit value)? sepaDebit,TResult Function( _PaymentMethodParamsAfterpayClearpay value)? afterpayClearpay,TResult Function( _PaymentMethodParamsOxxo value)? oxxo,TResult Function( _PaymentMethodParamsKlarna value)? klarna,TResult Function( _PaymentMethodParamsPayPal value)? payPal,TResult Function( _PaymentMethodParamsRevolutPay value)? revolutPay,TResult Function( _PaymentMethodParamsUsBankAccount value)? usBankAccount,TResult Function( _PaymentMethodParamsElements value)? elements,required TResult orElse(),}){ final _that = this; switch (_that) { case _PaymentMethodParamsCard() when card != null: @@ -3260,7 +3263,8 @@ return oxxo(_that);case _PaymentMethodParamsKlarna() when klarna != null: return klarna(_that);case _PaymentMethodParamsPayPal() when payPal != null: return payPal(_that);case _PaymentMethodParamsRevolutPay() when revolutPay != null: return revolutPay(_that);case _PaymentMethodParamsUsBankAccount() when usBankAccount != null: -return usBankAccount(_that);case _: +return usBankAccount(_that);case _PaymentMethodParamsElements() when elements != null: +return elements(_that);case _: return orElse(); } @@ -3278,7 +3282,7 @@ return usBankAccount(_that);case _: /// } /// ``` -@optionalTypeArgs TResult map({required TResult Function( _PaymentMethodParamsCard value) card,required TResult Function( _PaymentMethodParamsCardWithToken value) cardFromToken,required TResult Function( _PaymentMethodParamsCardWithMethodId value) cardFromMethodId,required TResult Function( _PaymentMethodParamsAlipay value) alipay,required TResult Function( _PaymentMethodParamsCashAppPay value) cashAppPay,required TResult Function( _PaymentMethodParamsIdeal value) ideal,required TResult Function( _PaymentMethodParamsAubecs value) aubecs,required TResult Function( _PaymentMethodParamsBankContact value) bancontact,required TResult Function( _PaymentMethodParamsGiroPay value) giroPay,required TResult Function( _PaymentMethodParamsEps value) eps,required TResult Function( _PaymentMethodParamsAffirm value) affirm,required TResult Function( _PaymentMethodParamsPay value) grabPay,required TResult Function( _PaymentMethodParamsP24 value) p24,required TResult Function( _PaymentMethodParamsFpx value) fpx,required TResult Function( _PaymentMethodParamsSepaDebit value) sepaDebit,required TResult Function( _PaymentMethodParamsAfterpayClearpay value) afterpayClearpay,required TResult Function( _PaymentMethodParamsOxxo value) oxxo,required TResult Function( _PaymentMethodParamsKlarna value) klarna,required TResult Function( _PaymentMethodParamsPayPal value) payPal,required TResult Function( _PaymentMethodParamsRevolutPay value) revolutPay,required TResult Function( _PaymentMethodParamsUsBankAccount value) usBankAccount,}){ +@optionalTypeArgs TResult map({required TResult Function( _PaymentMethodParamsCard value) card,required TResult Function( _PaymentMethodParamsCardWithToken value) cardFromToken,required TResult Function( _PaymentMethodParamsCardWithMethodId value) cardFromMethodId,required TResult Function( _PaymentMethodParamsAlipay value) alipay,required TResult Function( _PaymentMethodParamsCashAppPay value) cashAppPay,required TResult Function( _PaymentMethodParamsIdeal value) ideal,required TResult Function( _PaymentMethodParamsAubecs value) aubecs,required TResult Function( _PaymentMethodParamsBankContact value) bancontact,required TResult Function( _PaymentMethodParamsGiroPay value) giroPay,required TResult Function( _PaymentMethodParamsEps value) eps,required TResult Function( _PaymentMethodParamsAffirm value) affirm,required TResult Function( _PaymentMethodParamsPay value) grabPay,required TResult Function( _PaymentMethodParamsP24 value) p24,required TResult Function( _PaymentMethodParamsFpx value) fpx,required TResult Function( _PaymentMethodParamsSepaDebit value) sepaDebit,required TResult Function( _PaymentMethodParamsAfterpayClearpay value) afterpayClearpay,required TResult Function( _PaymentMethodParamsOxxo value) oxxo,required TResult Function( _PaymentMethodParamsKlarna value) klarna,required TResult Function( _PaymentMethodParamsPayPal value) payPal,required TResult Function( _PaymentMethodParamsRevolutPay value) revolutPay,required TResult Function( _PaymentMethodParamsUsBankAccount value) usBankAccount,required TResult Function( _PaymentMethodParamsElements value) elements,}){ final _that = this; switch (_that) { case _PaymentMethodParamsCard(): @@ -3302,7 +3306,8 @@ return oxxo(_that);case _PaymentMethodParamsKlarna(): return klarna(_that);case _PaymentMethodParamsPayPal(): return payPal(_that);case _PaymentMethodParamsRevolutPay(): return revolutPay(_that);case _PaymentMethodParamsUsBankAccount(): -return usBankAccount(_that);case _: +return usBankAccount(_that);case _PaymentMethodParamsElements(): +return elements(_that);case _: throw StateError('Unexpected subclass'); } @@ -3319,7 +3324,7 @@ return usBankAccount(_that);case _: /// } /// ``` -@optionalTypeArgs TResult? mapOrNull({TResult? Function( _PaymentMethodParamsCard value)? card,TResult? Function( _PaymentMethodParamsCardWithToken value)? cardFromToken,TResult? Function( _PaymentMethodParamsCardWithMethodId value)? cardFromMethodId,TResult? Function( _PaymentMethodParamsAlipay value)? alipay,TResult? Function( _PaymentMethodParamsCashAppPay value)? cashAppPay,TResult? Function( _PaymentMethodParamsIdeal value)? ideal,TResult? Function( _PaymentMethodParamsAubecs value)? aubecs,TResult? Function( _PaymentMethodParamsBankContact value)? bancontact,TResult? Function( _PaymentMethodParamsGiroPay value)? giroPay,TResult? Function( _PaymentMethodParamsEps value)? eps,TResult? Function( _PaymentMethodParamsAffirm value)? affirm,TResult? Function( _PaymentMethodParamsPay value)? grabPay,TResult? Function( _PaymentMethodParamsP24 value)? p24,TResult? Function( _PaymentMethodParamsFpx value)? fpx,TResult? Function( _PaymentMethodParamsSepaDebit value)? sepaDebit,TResult? Function( _PaymentMethodParamsAfterpayClearpay value)? afterpayClearpay,TResult? Function( _PaymentMethodParamsOxxo value)? oxxo,TResult? Function( _PaymentMethodParamsKlarna value)? klarna,TResult? Function( _PaymentMethodParamsPayPal value)? payPal,TResult? Function( _PaymentMethodParamsRevolutPay value)? revolutPay,TResult? Function( _PaymentMethodParamsUsBankAccount value)? usBankAccount,}){ +@optionalTypeArgs TResult? mapOrNull({TResult? Function( _PaymentMethodParamsCard value)? card,TResult? Function( _PaymentMethodParamsCardWithToken value)? cardFromToken,TResult? Function( _PaymentMethodParamsCardWithMethodId value)? cardFromMethodId,TResult? Function( _PaymentMethodParamsAlipay value)? alipay,TResult? Function( _PaymentMethodParamsCashAppPay value)? cashAppPay,TResult? Function( _PaymentMethodParamsIdeal value)? ideal,TResult? Function( _PaymentMethodParamsAubecs value)? aubecs,TResult? Function( _PaymentMethodParamsBankContact value)? bancontact,TResult? Function( _PaymentMethodParamsGiroPay value)? giroPay,TResult? Function( _PaymentMethodParamsEps value)? eps,TResult? Function( _PaymentMethodParamsAffirm value)? affirm,TResult? Function( _PaymentMethodParamsPay value)? grabPay,TResult? Function( _PaymentMethodParamsP24 value)? p24,TResult? Function( _PaymentMethodParamsFpx value)? fpx,TResult? Function( _PaymentMethodParamsSepaDebit value)? sepaDebit,TResult? Function( _PaymentMethodParamsAfterpayClearpay value)? afterpayClearpay,TResult? Function( _PaymentMethodParamsOxxo value)? oxxo,TResult? Function( _PaymentMethodParamsKlarna value)? klarna,TResult? Function( _PaymentMethodParamsPayPal value)? payPal,TResult? Function( _PaymentMethodParamsRevolutPay value)? revolutPay,TResult? Function( _PaymentMethodParamsUsBankAccount value)? usBankAccount,TResult? Function( _PaymentMethodParamsElements value)? elements,}){ final _that = this; switch (_that) { case _PaymentMethodParamsCard() when card != null: @@ -3343,7 +3348,8 @@ return oxxo(_that);case _PaymentMethodParamsKlarna() when klarna != null: return klarna(_that);case _PaymentMethodParamsPayPal() when payPal != null: return payPal(_that);case _PaymentMethodParamsRevolutPay() when revolutPay != null: return revolutPay(_that);case _PaymentMethodParamsUsBankAccount() when usBankAccount != null: -return usBankAccount(_that);case _: +return usBankAccount(_that);case _PaymentMethodParamsElements() when elements != null: +return elements(_that);case _: return null; } @@ -3360,7 +3366,7 @@ return usBankAccount(_that);case _: /// } /// ``` -@optionalTypeArgs TResult maybeWhen({TResult Function( PaymentMethodData paymentMethodData)? card,TResult Function( PaymentMethodDataCardFromToken paymentMethodData)? cardFromToken,TResult Function( PaymentMethodDataCardFromMethod paymentMethodData)? cardFromMethodId,TResult Function( PaymentMethodData paymentMethodData)? alipay,TResult Function( PaymentMethodData paymentMethodData)? cashAppPay,TResult Function( PaymentMethodDataIdeal paymentMethodData)? ideal,TResult Function( PaymentMethodDataAubecs paymentMethodData)? aubecs,TResult Function( PaymentMethodData paymentMethodData)? bancontact,TResult Function( PaymentMethodData paymentMethodData)? giroPay,TResult Function( PaymentMethodData paymentMethodData)? eps,TResult Function( PaymentMethodData paymentMethodData)? affirm,TResult Function( PaymentMethodData paymentMethodData)? grabPay,TResult Function( PaymentMethodData paymentMethodData)? p24,TResult Function( PaymentMethodDataFpx paymentMethodData)? fpx,TResult Function( PaymentMethodDataSepa paymentMethodData)? sepaDebit,TResult Function( PaymentMethodDataAfterPay paymentMethodData)? afterpayClearpay,TResult Function( PaymentMethodData paymentMethodData)? oxxo,TResult Function( PaymentMethodData paymentMethodData)? klarna,TResult Function( PaymentMethodData paymentMethodData)? payPal,TResult Function( PaymentMethodData paymentMethodData)? revolutPay,TResult Function( PaymentMethodDataUsBank paymentMethodData)? usBankAccount,required TResult orElse(),}) {final _that = this; +@optionalTypeArgs TResult maybeWhen({TResult Function( PaymentMethodData paymentMethodData)? card,TResult Function( PaymentMethodDataCardFromToken paymentMethodData)? cardFromToken,TResult Function( PaymentMethodDataCardFromMethod paymentMethodData)? cardFromMethodId,TResult Function( PaymentMethodData paymentMethodData)? alipay,TResult Function( PaymentMethodData paymentMethodData)? cashAppPay,TResult Function( PaymentMethodDataIdeal paymentMethodData)? ideal,TResult Function( PaymentMethodDataAubecs paymentMethodData)? aubecs,TResult Function( PaymentMethodData paymentMethodData)? bancontact,TResult Function( PaymentMethodData paymentMethodData)? giroPay,TResult Function( PaymentMethodData paymentMethodData)? eps,TResult Function( PaymentMethodData paymentMethodData)? affirm,TResult Function( PaymentMethodData paymentMethodData)? grabPay,TResult Function( PaymentMethodData paymentMethodData)? p24,TResult Function( PaymentMethodDataFpx paymentMethodData)? fpx,TResult Function( PaymentMethodDataSepa paymentMethodData)? sepaDebit,TResult Function( PaymentMethodDataAfterPay paymentMethodData)? afterpayClearpay,TResult Function( PaymentMethodData paymentMethodData)? oxxo,TResult Function( PaymentMethodData paymentMethodData)? klarna,TResult Function( PaymentMethodData paymentMethodData)? payPal,TResult Function( PaymentMethodData paymentMethodData)? revolutPay,TResult Function( PaymentMethodDataUsBank paymentMethodData)? usBankAccount,TResult Function()? elements,required TResult orElse(),}) {final _that = this; switch (_that) { case _PaymentMethodParamsCard() when card != null: return card(_that.paymentMethodData);case _PaymentMethodParamsCardWithToken() when cardFromToken != null: @@ -3383,7 +3389,8 @@ return oxxo(_that.paymentMethodData);case _PaymentMethodParamsKlarna() when klar return klarna(_that.paymentMethodData);case _PaymentMethodParamsPayPal() when payPal != null: return payPal(_that.paymentMethodData);case _PaymentMethodParamsRevolutPay() when revolutPay != null: return revolutPay(_that.paymentMethodData);case _PaymentMethodParamsUsBankAccount() when usBankAccount != null: -return usBankAccount(_that.paymentMethodData);case _: +return usBankAccount(_that.paymentMethodData);case _PaymentMethodParamsElements() when elements != null: +return elements();case _: return orElse(); } @@ -3401,7 +3408,7 @@ return usBankAccount(_that.paymentMethodData);case _: /// } /// ``` -@optionalTypeArgs TResult when({required TResult Function( PaymentMethodData paymentMethodData) card,required TResult Function( PaymentMethodDataCardFromToken paymentMethodData) cardFromToken,required TResult Function( PaymentMethodDataCardFromMethod paymentMethodData) cardFromMethodId,required TResult Function( PaymentMethodData paymentMethodData) alipay,required TResult Function( PaymentMethodData paymentMethodData) cashAppPay,required TResult Function( PaymentMethodDataIdeal paymentMethodData) ideal,required TResult Function( PaymentMethodDataAubecs paymentMethodData) aubecs,required TResult Function( PaymentMethodData paymentMethodData) bancontact,required TResult Function( PaymentMethodData paymentMethodData) giroPay,required TResult Function( PaymentMethodData paymentMethodData) eps,required TResult Function( PaymentMethodData paymentMethodData) affirm,required TResult Function( PaymentMethodData paymentMethodData) grabPay,required TResult Function( PaymentMethodData paymentMethodData) p24,required TResult Function( PaymentMethodDataFpx paymentMethodData) fpx,required TResult Function( PaymentMethodDataSepa paymentMethodData) sepaDebit,required TResult Function( PaymentMethodDataAfterPay paymentMethodData) afterpayClearpay,required TResult Function( PaymentMethodData paymentMethodData) oxxo,required TResult Function( PaymentMethodData paymentMethodData) klarna,required TResult Function( PaymentMethodData paymentMethodData) payPal,required TResult Function( PaymentMethodData paymentMethodData) revolutPay,required TResult Function( PaymentMethodDataUsBank paymentMethodData) usBankAccount,}) {final _that = this; +@optionalTypeArgs TResult when({required TResult Function( PaymentMethodData paymentMethodData) card,required TResult Function( PaymentMethodDataCardFromToken paymentMethodData) cardFromToken,required TResult Function( PaymentMethodDataCardFromMethod paymentMethodData) cardFromMethodId,required TResult Function( PaymentMethodData paymentMethodData) alipay,required TResult Function( PaymentMethodData paymentMethodData) cashAppPay,required TResult Function( PaymentMethodDataIdeal paymentMethodData) ideal,required TResult Function( PaymentMethodDataAubecs paymentMethodData) aubecs,required TResult Function( PaymentMethodData paymentMethodData) bancontact,required TResult Function( PaymentMethodData paymentMethodData) giroPay,required TResult Function( PaymentMethodData paymentMethodData) eps,required TResult Function( PaymentMethodData paymentMethodData) affirm,required TResult Function( PaymentMethodData paymentMethodData) grabPay,required TResult Function( PaymentMethodData paymentMethodData) p24,required TResult Function( PaymentMethodDataFpx paymentMethodData) fpx,required TResult Function( PaymentMethodDataSepa paymentMethodData) sepaDebit,required TResult Function( PaymentMethodDataAfterPay paymentMethodData) afterpayClearpay,required TResult Function( PaymentMethodData paymentMethodData) oxxo,required TResult Function( PaymentMethodData paymentMethodData) klarna,required TResult Function( PaymentMethodData paymentMethodData) payPal,required TResult Function( PaymentMethodData paymentMethodData) revolutPay,required TResult Function( PaymentMethodDataUsBank paymentMethodData) usBankAccount,required TResult Function() elements,}) {final _that = this; switch (_that) { case _PaymentMethodParamsCard(): return card(_that.paymentMethodData);case _PaymentMethodParamsCardWithToken(): @@ -3424,7 +3431,8 @@ return oxxo(_that.paymentMethodData);case _PaymentMethodParamsKlarna(): return klarna(_that.paymentMethodData);case _PaymentMethodParamsPayPal(): return payPal(_that.paymentMethodData);case _PaymentMethodParamsRevolutPay(): return revolutPay(_that.paymentMethodData);case _PaymentMethodParamsUsBankAccount(): -return usBankAccount(_that.paymentMethodData);case _: +return usBankAccount(_that.paymentMethodData);case _PaymentMethodParamsElements(): +return elements();case _: throw StateError('Unexpected subclass'); } @@ -3441,7 +3449,7 @@ return usBankAccount(_that.paymentMethodData);case _: /// } /// ``` -@optionalTypeArgs TResult? whenOrNull({TResult? Function( PaymentMethodData paymentMethodData)? card,TResult? Function( PaymentMethodDataCardFromToken paymentMethodData)? cardFromToken,TResult? Function( PaymentMethodDataCardFromMethod paymentMethodData)? cardFromMethodId,TResult? Function( PaymentMethodData paymentMethodData)? alipay,TResult? Function( PaymentMethodData paymentMethodData)? cashAppPay,TResult? Function( PaymentMethodDataIdeal paymentMethodData)? ideal,TResult? Function( PaymentMethodDataAubecs paymentMethodData)? aubecs,TResult? Function( PaymentMethodData paymentMethodData)? bancontact,TResult? Function( PaymentMethodData paymentMethodData)? giroPay,TResult? Function( PaymentMethodData paymentMethodData)? eps,TResult? Function( PaymentMethodData paymentMethodData)? affirm,TResult? Function( PaymentMethodData paymentMethodData)? grabPay,TResult? Function( PaymentMethodData paymentMethodData)? p24,TResult? Function( PaymentMethodDataFpx paymentMethodData)? fpx,TResult? Function( PaymentMethodDataSepa paymentMethodData)? sepaDebit,TResult? Function( PaymentMethodDataAfterPay paymentMethodData)? afterpayClearpay,TResult? Function( PaymentMethodData paymentMethodData)? oxxo,TResult? Function( PaymentMethodData paymentMethodData)? klarna,TResult? Function( PaymentMethodData paymentMethodData)? payPal,TResult? Function( PaymentMethodData paymentMethodData)? revolutPay,TResult? Function( PaymentMethodDataUsBank paymentMethodData)? usBankAccount,}) {final _that = this; +@optionalTypeArgs TResult? whenOrNull({TResult? Function( PaymentMethodData paymentMethodData)? card,TResult? Function( PaymentMethodDataCardFromToken paymentMethodData)? cardFromToken,TResult? Function( PaymentMethodDataCardFromMethod paymentMethodData)? cardFromMethodId,TResult? Function( PaymentMethodData paymentMethodData)? alipay,TResult? Function( PaymentMethodData paymentMethodData)? cashAppPay,TResult? Function( PaymentMethodDataIdeal paymentMethodData)? ideal,TResult? Function( PaymentMethodDataAubecs paymentMethodData)? aubecs,TResult? Function( PaymentMethodData paymentMethodData)? bancontact,TResult? Function( PaymentMethodData paymentMethodData)? giroPay,TResult? Function( PaymentMethodData paymentMethodData)? eps,TResult? Function( PaymentMethodData paymentMethodData)? affirm,TResult? Function( PaymentMethodData paymentMethodData)? grabPay,TResult? Function( PaymentMethodData paymentMethodData)? p24,TResult? Function( PaymentMethodDataFpx paymentMethodData)? fpx,TResult? Function( PaymentMethodDataSepa paymentMethodData)? sepaDebit,TResult? Function( PaymentMethodDataAfterPay paymentMethodData)? afterpayClearpay,TResult? Function( PaymentMethodData paymentMethodData)? oxxo,TResult? Function( PaymentMethodData paymentMethodData)? klarna,TResult? Function( PaymentMethodData paymentMethodData)? payPal,TResult? Function( PaymentMethodData paymentMethodData)? revolutPay,TResult? Function( PaymentMethodDataUsBank paymentMethodData)? usBankAccount,TResult? Function()? elements,}) {final _that = this; switch (_that) { case _PaymentMethodParamsCard() when card != null: return card(_that.paymentMethodData);case _PaymentMethodParamsCardWithToken() when cardFromToken != null: @@ -3464,7 +3472,8 @@ return oxxo(_that.paymentMethodData);case _PaymentMethodParamsKlarna() when klar return klarna(_that.paymentMethodData);case _PaymentMethodParamsPayPal() when payPal != null: return payPal(_that.paymentMethodData);case _PaymentMethodParamsRevolutPay() when revolutPay != null: return revolutPay(_that.paymentMethodData);case _PaymentMethodParamsUsBankAccount() when usBankAccount != null: -return usBankAccount(_that.paymentMethodData);case _: +return usBankAccount(_that.paymentMethodData);case _PaymentMethodParamsElements() when elements != null: +return elements();case _: return null; } @@ -3480,7 +3489,7 @@ class _PaymentMethodParamsCard implements PaymentMethodParams { factory _PaymentMethodParamsCard.fromJson(Map json) => _$PaymentMethodParamsCardFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -3563,7 +3572,7 @@ class _PaymentMethodParamsCardWithToken implements PaymentMethodParams { factory _PaymentMethodParamsCardWithToken.fromJson(Map json) => _$PaymentMethodParamsCardWithTokenFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodDataCardFromToken paymentMethodData; + final PaymentMethodDataCardFromToken paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -3646,7 +3655,7 @@ class _PaymentMethodParamsCardWithMethodId implements PaymentMethodParams { factory _PaymentMethodParamsCardWithMethodId.fromJson(Map json) => _$PaymentMethodParamsCardWithMethodIdFromJson(json); /// Payment method data object for card from payment method. -@override final PaymentMethodDataCardFromMethod paymentMethodData; + final PaymentMethodDataCardFromMethod paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -3729,7 +3738,7 @@ class _PaymentMethodParamsAlipay implements PaymentMethodParams { factory _PaymentMethodParamsAlipay.fromJson(Map json) => _$PaymentMethodParamsAlipayFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -3812,7 +3821,7 @@ class _PaymentMethodParamsCashAppPay implements PaymentMethodParams { factory _PaymentMethodParamsCashAppPay.fromJson(Map json) => _$PaymentMethodParamsCashAppPayFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -3895,7 +3904,7 @@ class _PaymentMethodParamsIdeal implements PaymentMethodParams { factory _PaymentMethodParamsIdeal.fromJson(Map json) => _$PaymentMethodParamsIdealFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodDataIdeal paymentMethodData; + final PaymentMethodDataIdeal paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -3978,7 +3987,7 @@ class _PaymentMethodParamsAubecs implements PaymentMethodParams { factory _PaymentMethodParamsAubecs.fromJson(Map json) => _$PaymentMethodParamsAubecsFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodDataAubecs paymentMethodData; + final PaymentMethodDataAubecs paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4061,7 +4070,7 @@ class _PaymentMethodParamsBankContact implements PaymentMethodParams { factory _PaymentMethodParamsBankContact.fromJson(Map json) => _$PaymentMethodParamsBankContactFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4144,7 +4153,7 @@ class _PaymentMethodParamsGiroPay implements PaymentMethodParams { factory _PaymentMethodParamsGiroPay.fromJson(Map json) => _$PaymentMethodParamsGiroPayFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4227,7 +4236,7 @@ class _PaymentMethodParamsEps implements PaymentMethodParams { factory _PaymentMethodParamsEps.fromJson(Map json) => _$PaymentMethodParamsEpsFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4310,7 +4319,7 @@ class _PaymentMethodParamsAffirm implements PaymentMethodParams { factory _PaymentMethodParamsAffirm.fromJson(Map json) => _$PaymentMethodParamsAffirmFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4393,7 +4402,7 @@ class _PaymentMethodParamsPay implements PaymentMethodParams { factory _PaymentMethodParamsPay.fromJson(Map json) => _$PaymentMethodParamsPayFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4476,7 +4485,7 @@ class _PaymentMethodParamsP24 implements PaymentMethodParams { factory _PaymentMethodParamsP24.fromJson(Map json) => _$PaymentMethodParamsP24FromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4559,7 +4568,7 @@ class _PaymentMethodParamsFpx implements PaymentMethodParams { factory _PaymentMethodParamsFpx.fromJson(Map json) => _$PaymentMethodParamsFpxFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodDataFpx paymentMethodData; + final PaymentMethodDataFpx paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4642,7 +4651,7 @@ class _PaymentMethodParamsSepaDebit implements PaymentMethodParams { factory _PaymentMethodParamsSepaDebit.fromJson(Map json) => _$PaymentMethodParamsSepaDebitFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodDataSepa paymentMethodData; + final PaymentMethodDataSepa paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4724,7 +4733,7 @@ class _PaymentMethodParamsAfterpayClearpay implements PaymentMethodParams { const _PaymentMethodParamsAfterpayClearpay({required this.paymentMethodData, final String? $type}): $type = $type ?? 'AfterpayClearpay'; factory _PaymentMethodParamsAfterpayClearpay.fromJson(Map json) => _$PaymentMethodParamsAfterpayClearpayFromJson(json); -@override final PaymentMethodDataAfterPay paymentMethodData; + final PaymentMethodDataAfterPay paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4807,7 +4816,7 @@ class _PaymentMethodParamsOxxo implements PaymentMethodParams { factory _PaymentMethodParamsOxxo.fromJson(Map json) => _$PaymentMethodParamsOxxoFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4893,7 +4902,7 @@ class _PaymentMethodParamsKlarna implements PaymentMethodParams { /// /// Make sure to add an email and country (part of the address) in the /// billingdetails which is required for using Klarna. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -4976,7 +4985,7 @@ class _PaymentMethodParamsPayPal implements PaymentMethodParams { factory _PaymentMethodParamsPayPal.fromJson(Map json) => _$PaymentMethodParamsPayPalFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -5059,7 +5068,7 @@ class _PaymentMethodParamsRevolutPay implements PaymentMethodParams { factory _PaymentMethodParamsRevolutPay.fromJson(Map json) => _$PaymentMethodParamsRevolutPayFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodData paymentMethodData; + final PaymentMethodData paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -5142,7 +5151,7 @@ class _PaymentMethodParamsUsBankAccount implements PaymentMethodParams { factory _PaymentMethodParamsUsBankAccount.fromJson(Map json) => _$PaymentMethodParamsUsBankAccountFromJson(json); /// Paymentmethod data for this paymentmethod. -@override final PaymentMethodDataUsBank paymentMethodData; + final PaymentMethodDataUsBank paymentMethodData; @JsonKey(name: 'paymentMethodType') final String $type; @@ -5217,6 +5226,45 @@ $PaymentMethodDataUsBankCopyWith<$Res> get paymentMethodData { } } +/// @nodoc + +@JsonSerializable(explicitToJson: true) +class _PaymentMethodParamsElements implements PaymentMethodParams { + const _PaymentMethodParamsElements({final String? $type}): $type = $type ?? 'Elements'; + factory _PaymentMethodParamsElements.fromJson(Map json) => _$PaymentMethodParamsElementsFromJson(json); + + + +@JsonKey(name: 'paymentMethodType') +final String $type; + + + +@override +Map toJson() { + return _$PaymentMethodParamsElementsToJson(this, ); +} + +@override +bool operator ==(Object other) { + return identical(this, other) || (other.runtimeType == runtimeType&&other is _PaymentMethodParamsElements); +} + +@JsonKey(includeFromJson: false, includeToJson: false) +@override +int get hashCode => runtimeType.hashCode; + +@override +String toString() { + return 'PaymentMethodParams.elements()'; +} + + +} + + + + /// @nodoc mixin _$PaymentMethodData { diff --git a/packages/stripe_platform_interface/lib/src/models/payment_methods.g.dart b/packages/stripe_platform_interface/lib/src/models/payment_methods.g.dart index cc33d1b64..52bce68d2 100644 --- a/packages/stripe_platform_interface/lib/src/models/payment_methods.g.dart +++ b/packages/stripe_platform_interface/lib/src/models/payment_methods.g.dart @@ -545,6 +545,14 @@ Map _$PaymentMethodParamsUsBankAccountToJson( 'paymentMethodType': instance.$type, }; +_PaymentMethodParamsElements _$PaymentMethodParamsElementsFromJson( + Map json, +) => _PaymentMethodParamsElements($type: json['paymentMethodType'] as String?); + +Map _$PaymentMethodParamsElementsToJson( + _PaymentMethodParamsElements instance, +) => {'paymentMethodType': instance.$type}; + _PaymentMethodData _$PaymentMethodDataFromJson(Map json) => _PaymentMethodData( billingDetails: json['billingDetails'] == null