Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add klarna for web #1294

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ void main() async {
WidgetsFlutterBinding.ensureInitialized();
Stripe.publishableKey = stripePublishableKey;
Stripe.merchantIdentifier = 'merchant.flutter.stripe.test';
Stripe.urlScheme = 'flutterstripe';
jamesblasco marked this conversation as resolved.
Show resolved Hide resolved
await Stripe.instance.applySettings();
runApp(const App());
}
Expand Down
1 change: 0 additions & 1 deletion example/lib/screens/screens.dart
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,6 @@ class Example extends StatelessWidget {
width: 48,
),
builder: (contex) => KlarnaScreen(),
platformsSupported: [DevicePlatform.android, DevicePlatform.ios],
),
Example(
title: 'PayPal',
Expand Down
1 change: 1 addition & 0 deletions packages/stripe/lib/src/stripe.dart
Original file line number Diff line number Diff line change
Expand Up @@ -709,5 +709,6 @@ class Stripe {
ValueNotifier<bool>? _isPlatformPaySupported;

// Internal use only
@internal
static final buildWebCard = _platform.buildCard;
}
5 changes: 5 additions & 0 deletions packages/stripe_js/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 3.2.0
**Features**
- Adds support for Klarna on web
- Adds support for retrievePaymentIntent on web

## 3.1.0
- Makes WebStripe a singleton accessible by WebStripe.instance
- Allows to change the layout for the payment element. Closes [#1260](https://github.com/flutter-stripe/flutter_stripe/pull/1270#:~:text=Makes%20a%20singleton,flow%C2%A0%231075)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,13 +174,14 @@ class PaymentElementFields with _$PaymentElementFields {
@freezed
class BillingDetailsFields with _$BillingDetailsFields {
const factory BillingDetailsFields({
@Default(PaymentElementFieldRequired.auto) PaymentElementFieldRequired name,
@Default(PaymentElementFieldRequired.auto)
PaymentElementFieldRequired email,
PaymentElementFieldRequired name,
@Default(PaymentElementFieldRequired.auto)
PaymentElementFieldRequired phone,
PaymentElementFieldRequired email,
@Default(PaymentElementFieldRequired.auto)
PaymentElementFieldRequired phone,
@Default(PaymentElementAddressFields.auto)
PaymentElementAddressFields address,
PaymentElementAddressFields address,
}) = _BillingDetailsFields;

static const auto = BillingDetailsFields();
Expand All @@ -193,16 +194,17 @@ class BillingDetailsFields with _$BillingDetailsFields {
class PaymentElementAddressFields with _$PaymentElementAddressFields {
const factory PaymentElementAddressFields({
@Default(PaymentElementFieldRequired.auto)
PaymentElementFieldRequired line1,
PaymentElementFieldRequired line1,
@Default(PaymentElementFieldRequired.auto)
PaymentElementFieldRequired line2,
@Default(PaymentElementFieldRequired.auto)
PaymentElementFieldRequired line2,
@Default(PaymentElementFieldRequired.auto) PaymentElementFieldRequired city,
PaymentElementFieldRequired city,
@Default(PaymentElementFieldRequired.auto)
PaymentElementFieldRequired state,
PaymentElementFieldRequired state,
@Default(PaymentElementFieldRequired.auto)
PaymentElementFieldRequired country,
PaymentElementFieldRequired country,
@Default(PaymentElementFieldRequired.auto)
PaymentElementFieldRequired postalCode,
PaymentElementFieldRequired postalCode,
}) = _PaymentElementAddressFields;

static const auto = PaymentElementAddressFields();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,21 @@ class ConfirmCardPaymentData with _$ConfirmCardPaymentData {
/// Either the id of an existing PaymentMethod, or an object containing
/// data to create a PaymentMethod with.
/// See the use case sections below for details.
@paymentMethodDetailJsonKey CardPaymentMethodDetails? paymentMethod,
@paymentMethodDetailJsonKey
CardPaymentMethodDetails? paymentMethod,

/// The shipping details for the payment, if collected.
ShippingDetails? shipping,

/// If you are handling next actions yourself, pass in a return_url.
/// If the subsequent action is redirect_to_url,
/// this URL will be used on the return path for the redirect.
@JsonKey(name: "return_url") String? returnUrl,
@JsonKey(name: "return_url")
String? returnUrl,

/// Email address that the receipt for the resulting payment will be sent to.
@JsonKey(name: "receipt_email") String? receiptEmail,
@JsonKey(name: "receipt_email")
String? receiptEmail,

/// Indicates that you intend to make future payments with this
/// PaymentIntent's payment method.
Expand All @@ -38,11 +41,12 @@ class ConfirmCardPaymentData with _$ConfirmCardPaymentData {
/// and comply with regional legislation and network rules. For example, if
/// your customer is impacted by SCA, using off_session will ensure that they are authenticated while processing this PaymentIntent. You will then be able to collect off-session payments for this customer.
@JsonKey(name: "setup_future_usage")
PaymentIntentSetupFutureUsage? setupFutureUsage,
PaymentIntentSetupFutureUsage? setupFutureUsage,

/// An object containing payment-method-specific configuration to
/// confirm the PaymentIntent with.
@JsonKey(name: "payment_method_options") dynamic paymentMethodOptions,
@JsonKey(name: "payment_method_options")
dynamic paymentMethodOptions,
}) = _ConfirmCardPaymentData;

factory ConfirmCardPaymentData.fromJson(Map<String, dynamic> json) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,17 @@ abstract class $ConfirmCardPaymentDataCopyWith<$Res> {
_$ConfirmCardPaymentDataCopyWithImpl<$Res, ConfirmCardPaymentData>;
@useResult
$Res call(
{@paymentMethodDetailJsonKey CardPaymentMethodDetails? paymentMethod,
{@paymentMethodDetailJsonKey
CardPaymentMethodDetails? paymentMethod,
ShippingDetails? shipping,
@JsonKey(name: "return_url") String? returnUrl,
@JsonKey(name: "receipt_email") String? receiptEmail,
@JsonKey(name: "return_url")
String? returnUrl,
@JsonKey(name: "receipt_email")
String? receiptEmail,
@JsonKey(name: "setup_future_usage")
PaymentIntentSetupFutureUsage? setupFutureUsage,
@JsonKey(name: "payment_method_options") dynamic paymentMethodOptions});
PaymentIntentSetupFutureUsage? setupFutureUsage,
@JsonKey(name: "payment_method_options")
dynamic paymentMethodOptions});

$CardPaymentMethodDetailsCopyWith<$Res>? get paymentMethod;
$ShippingDetailsCopyWith<$Res>? get shipping;
Expand Down Expand Up @@ -173,13 +177,17 @@ abstract class _$$_ConfirmCardPaymentDataCopyWith<$Res>
@override
@useResult
$Res call(
{@paymentMethodDetailJsonKey CardPaymentMethodDetails? paymentMethod,
{@paymentMethodDetailJsonKey
CardPaymentMethodDetails? paymentMethod,
ShippingDetails? shipping,
@JsonKey(name: "return_url") String? returnUrl,
@JsonKey(name: "receipt_email") String? receiptEmail,
@JsonKey(name: "return_url")
String? returnUrl,
@JsonKey(name: "receipt_email")
String? receiptEmail,
@JsonKey(name: "setup_future_usage")
PaymentIntentSetupFutureUsage? setupFutureUsage,
@JsonKey(name: "payment_method_options") dynamic paymentMethodOptions});
PaymentIntentSetupFutureUsage? setupFutureUsage,
@JsonKey(name: "payment_method_options")
dynamic paymentMethodOptions});

@override
$CardPaymentMethodDetailsCopyWith<$Res>? get paymentMethod;
Expand Down Expand Up @@ -349,14 +357,16 @@ class _$_ConfirmCardPaymentData implements _ConfirmCardPaymentData {
abstract class _ConfirmCardPaymentData implements ConfirmCardPaymentData {
const factory _ConfirmCardPaymentData(
{@paymentMethodDetailJsonKey
final CardPaymentMethodDetails? paymentMethod,
final CardPaymentMethodDetails? paymentMethod,
final ShippingDetails? shipping,
@JsonKey(name: "return_url") final String? returnUrl,
@JsonKey(name: "receipt_email") final String? receiptEmail,
@JsonKey(name: "return_url")
final String? returnUrl,
@JsonKey(name: "receipt_email")
final String? receiptEmail,
@JsonKey(name: "setup_future_usage")
final PaymentIntentSetupFutureUsage? setupFutureUsage,
final PaymentIntentSetupFutureUsage? setupFutureUsage,
@JsonKey(name: "payment_method_options")
final dynamic paymentMethodOptions}) = _$_ConfirmCardPaymentData;
final dynamic paymentMethodOptions}) = _$_ConfirmCardPaymentData;

factory _ConfirmCardPaymentData.fromJson(Map<String, dynamic> json) =
_$_ConfirmCardPaymentData.fromJson;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,20 @@ class ConfirmIdealPaymentData with _$ConfirmIdealPaymentData {
/// Either the id of an existing PaymentMethod, or an object containing
/// data to create a PaymentMethod with.
/// See the use case sections below for details.
@paymentMethodDetailJsonKey IdealPaymentMethodDetails? paymentMethod,
@paymentMethodDetailJsonKey
IdealPaymentMethodDetails? paymentMethod,

/// The url your customer will be directed to after they complete authentication.
@JsonKey(name: "return_url") String? returnUrl,
@JsonKey(name: "return_url")
String? returnUrl,

/// To set up a SEPA Direct Debit payment method using the bank details
/// from this iDEAL payment, set this parameter to off_session.
/// When using this parameter, a customer will need to be set on the
/// PaymentIntent. The newly created SEPA Direct Debit PaymentMethod
/// will be attached to this customer.
@JsonKey(name: "setup_future_usage")
PaymentIntentSetupFutureUsage? setupFutureUsage,
PaymentIntentSetupFutureUsage? setupFutureUsage,
}) = _ConfirmIdealPaymentData;

factory ConfirmIdealPaymentData.fromJson(Map<String, dynamic> json) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,12 @@ abstract class $ConfirmIdealPaymentDataCopyWith<$Res> {
_$ConfirmIdealPaymentDataCopyWithImpl<$Res, ConfirmIdealPaymentData>;
@useResult
$Res call(
{@paymentMethodDetailJsonKey IdealPaymentMethodDetails? paymentMethod,
@JsonKey(name: "return_url") String? returnUrl,
{@paymentMethodDetailJsonKey
IdealPaymentMethodDetails? paymentMethod,
@JsonKey(name: "return_url")
String? returnUrl,
@JsonKey(name: "setup_future_usage")
PaymentIntentSetupFutureUsage? setupFutureUsage});
PaymentIntentSetupFutureUsage? setupFutureUsage});

$IdealPaymentMethodDetailsCopyWith<$Res>? get paymentMethod;
}
Expand Down Expand Up @@ -119,10 +121,12 @@ abstract class _$$_ConfirmIdealPaymentDataCopyWith<$Res>
@override
@useResult
$Res call(
{@paymentMethodDetailJsonKey IdealPaymentMethodDetails? paymentMethod,
@JsonKey(name: "return_url") String? returnUrl,
{@paymentMethodDetailJsonKey
IdealPaymentMethodDetails? paymentMethod,
@JsonKey(name: "return_url")
String? returnUrl,
@JsonKey(name: "setup_future_usage")
PaymentIntentSetupFutureUsage? setupFutureUsage});
PaymentIntentSetupFutureUsage? setupFutureUsage});

@override
$IdealPaymentMethodDetailsCopyWith<$Res>? get paymentMethod;
Expand Down Expand Up @@ -235,10 +239,11 @@ class _$_ConfirmIdealPaymentData implements _ConfirmIdealPaymentData {
abstract class _ConfirmIdealPaymentData implements ConfirmIdealPaymentData {
const factory _ConfirmIdealPaymentData(
{@paymentMethodDetailJsonKey
final IdealPaymentMethodDetails? paymentMethod,
@JsonKey(name: "return_url") final String? returnUrl,
final IdealPaymentMethodDetails? paymentMethod,
@JsonKey(name: "return_url")
final String? returnUrl,
@JsonKey(name: "setup_future_usage")
final PaymentIntentSetupFutureUsage? setupFutureUsage}) =
final PaymentIntentSetupFutureUsage? setupFutureUsage}) =
_$_ConfirmIdealPaymentData;

factory _ConfirmIdealPaymentData.fromJson(Map<String, dynamic> json) =
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:stripe_js/stripe_api.dart';

part 'confirm_klarna_payment_data.freezed.dart';
part 'confirm_klarna_payment_data.g.dart';

@freezed
class ConfirmKlarnaPaymentData with _$ConfirmKlarnaPaymentData {
const factory ConfirmKlarnaPaymentData({
/// Either the id of an existing PaymentMethod, or an object containing
/// data to create a PaymentMethod with.
/// See the use case sections below for details.
@paymentMethodDetailJsonKey KlarnaPaymentMethodDetails? paymentMethod,

/// The url your customer will be directed to after they complete authentication.
@JsonKey(name: "return_url") String? returnUrl,
}) = _ConfirmKlarnaPaymentData;

factory ConfirmKlarnaPaymentData.fromJson(Map<String, dynamic> json) =>
_$ConfirmKlarnaPaymentDataFromJson(json);
}
Loading
Loading