diff --git a/paymentsheet/src/main/java/com/stripe/android/paymentsheet/forms/PaymentMethodRequirements.kt b/paymentsheet/src/main/java/com/stripe/android/paymentsheet/forms/PaymentMethodRequirements.kt index be983138d79..920ae753357 100644 --- a/paymentsheet/src/main/java/com/stripe/android/paymentsheet/forms/PaymentMethodRequirements.kt +++ b/paymentsheet/src/main/java/com/stripe/android/paymentsheet/forms/PaymentMethodRequirements.kt @@ -13,6 +13,13 @@ internal sealed interface SIRequirement : Requirement @Parcelize internal object Delayed : PIRequirement, SIRequirement +/** + * The Payment Method requires a shipping address in the Payment Intent. + * The fields required are name, address line 1, country, and postal code. + */ +@Parcelize +internal object ShippingAddress : PIRequirement + @Parcelize internal data class PaymentMethodRequirements( @@ -212,12 +219,7 @@ internal val GiropayRequirement = PaymentMethodRequirements( * This defines the requirements for usage as a Payment Method. */ internal val AfterpayClearpayRequirement = PaymentMethodRequirements( - /** - * This is null until we have after cancellation support. When we have cancellation support - * this will require Shipping name, address line 1, address country, and postal - */ - piRequirements = null, - + piRequirements = setOf(ShippingAddress), /** * SetupIntents are not supported by this payment method, in addition, * setup intents do not have shipping information diff --git a/paymentsheet/src/main/java/com/stripe/android/paymentsheet/model/SupportedPaymentMethod.kt b/paymentsheet/src/main/java/com/stripe/android/paymentsheet/model/SupportedPaymentMethod.kt index 09c1a01e2cf..c41e61db8d6 100644 --- a/paymentsheet/src/main/java/com/stripe/android/paymentsheet/model/SupportedPaymentMethod.kt +++ b/paymentsheet/src/main/java/com/stripe/android/paymentsheet/model/SupportedPaymentMethod.kt @@ -19,10 +19,12 @@ import com.stripe.android.paymentsheet.forms.GiropayRequirement import com.stripe.android.paymentsheet.forms.IdealRequirement import com.stripe.android.paymentsheet.forms.KlarnaRequirement import com.stripe.android.paymentsheet.forms.P24Requirement +import com.stripe.android.paymentsheet.forms.PIRequirement import com.stripe.android.paymentsheet.forms.PaymentMethodRequirements import com.stripe.android.paymentsheet.forms.PaypalRequirement -import com.stripe.android.paymentsheet.forms.Requirement +import com.stripe.android.paymentsheet.forms.SIRequirement import com.stripe.android.paymentsheet.forms.SepaDebitRequirement +import com.stripe.android.paymentsheet.forms.ShippingAddress import com.stripe.android.paymentsheet.forms.SofortRequirement import com.stripe.android.ui.core.elements.LayoutFormDescriptor import com.stripe.android.ui.core.elements.LayoutSpec @@ -75,6 +77,7 @@ internal sealed class SupportedPaymentMethod( SaveForFutureUseSpec(emptyList()) ) ) + @Parcelize object Bancontact : SupportedPaymentMethod( PaymentMethod.Type.Bancontact, @@ -84,6 +87,7 @@ internal sealed class SupportedPaymentMethod( BancontactParamKey, BancontactForm ) + @Parcelize object Sofort : SupportedPaymentMethod( PaymentMethod.Type.Sofort, @@ -93,6 +97,7 @@ internal sealed class SupportedPaymentMethod( SofortParamKey, SofortForm ) + @Parcelize object Ideal : SupportedPaymentMethod( PaymentMethod.Type.Ideal, @@ -102,6 +107,7 @@ internal sealed class SupportedPaymentMethod( IdealParamKey, IdealForm ) + @Parcelize object SepaDebit : SupportedPaymentMethod( PaymentMethod.Type.SepaDebit, @@ -111,6 +117,7 @@ internal sealed class SupportedPaymentMethod( SepaDebitParamKey, SepaDebitForm ) + @Parcelize object Eps : SupportedPaymentMethod( PaymentMethod.Type.Eps, @@ -120,6 +127,7 @@ internal sealed class SupportedPaymentMethod( EpsParamKey, EpsForm ) + @Parcelize object P24 : SupportedPaymentMethod( PaymentMethod.Type.P24, @@ -129,6 +137,7 @@ internal sealed class SupportedPaymentMethod( P24ParamKey, P24Form ) + @Parcelize object Giropay : SupportedPaymentMethod( PaymentMethod.Type.Giropay, @@ -138,6 +147,7 @@ internal sealed class SupportedPaymentMethod( GiropayParamKey, GiropayForm ) + @Parcelize object AfterpayClearpay : SupportedPaymentMethod( PaymentMethod.Type.AfterpayClearpay, @@ -147,6 +157,7 @@ internal sealed class SupportedPaymentMethod( AfterpayClearpayParamKey, AfterpayClearpayForm ) + @Parcelize object Klarna : SupportedPaymentMethod( PaymentMethod.Type.Klarna, @@ -156,6 +167,7 @@ internal sealed class SupportedPaymentMethod( KlarnaParamKey, KlarnaForm ) + @Parcelize object PayPal : SupportedPaymentMethod( PaymentMethod.Type.PayPal, @@ -208,7 +220,7 @@ internal sealed class SupportedPaymentMethod( return when (stripeIntent) { is PaymentIntent -> { if ((stripeIntent.isSetupFutureUsageSet())) { - if (supportsPaymentIntentSfuSet(config) + if (supportsPaymentIntentSfuSet(stripeIntent, config) ) { merchantRequestedSave } else { @@ -222,6 +234,7 @@ internal sealed class SupportedPaymentMethod( ) -> userSelectableSave supportsPaymentIntentSfuNotSettable( + stripeIntent, config ) -> oneTimeUse else -> null @@ -252,7 +265,7 @@ internal sealed class SupportedPaymentMethod( private fun supportsSetupIntent( config: PaymentSheet.Configuration? ) = requirement.confirmPMFromCustomer == true && - checkRequirements(requirement.siRequirements, config) + checkSetupIntentRequirements(requirement.siRequirements, config) /** * This checks if there is support using this payment method when SFU @@ -261,18 +274,20 @@ internal sealed class SupportedPaymentMethod( * a consistent user experience. */ private fun supportsPaymentIntentSfuSet( + paymentIntent: PaymentIntent, config: PaymentSheet.Configuration? ) = requirement.confirmPMFromCustomer == true && - checkRequirements(requirement.siRequirements, config) && - checkRequirements(requirement.piRequirements, config) + checkSetupIntentRequirements(requirement.siRequirements, config) && + checkPaymentIntentRequirements(requirement.piRequirements, paymentIntent, config) /** * This detects if there is support with using this PM with the PI * where SFU is not settable by the user. */ private fun supportsPaymentIntentSfuNotSettable( + paymentIntent: PaymentIntent, config: PaymentSheet.Configuration? - ) = checkRequirements(requirement.piRequirements, config) + ) = checkPaymentIntentRequirements(requirement.piRequirements, paymentIntent, config) /** * This checks to see if this PM is supported with the given @@ -285,23 +300,42 @@ internal sealed class SupportedPaymentMethod( * and seeing the saved PMs associate with their customer object. */ private fun supportsPaymentIntentSfuSettable( - stripeIntent: PaymentIntent, + paymentIntent: PaymentIntent, config: PaymentSheet.Configuration? ) = config?.customer != null && requirement.confirmPMFromCustomer == true && - checkRequirements(requirement.piRequirements, config) && - checkRequirements(requirement.siRequirements, config) + checkPaymentIntentRequirements(requirement.piRequirements, paymentIntent, config) && + checkSetupIntentRequirements(requirement.siRequirements, config) + + /** + * Verifies that all Setup Intent [requirements] are met. + */ + private fun checkSetupIntentRequirements( + requirements: Set?, + config: PaymentSheet.Configuration? + ) = + requirements?.map { requirement -> + when (requirement) { + Delayed -> config?.allowsDelayedPaymentMethods == true + } + }?.contains(false) == false /** - * Currently the only required requirement in the SDK is Delayed PMs + * Verifies that all Payment Intent [requirements] are met. */ - private fun checkRequirements( - requirements: Set?, + private fun checkPaymentIntentRequirements( + requirements: Set?, + paymentIntent: PaymentIntent, config: PaymentSheet.Configuration? ) = requirements?.map { requirement -> when (requirement) { Delayed -> config?.allowsDelayedPaymentMethods == true + ShippingAddress -> + paymentIntent.shipping?.name != null && + paymentIntent.shipping?.address?.line1 != null && + paymentIntent.shipping?.address?.country != null && + paymentIntent.shipping?.address?.postalCode != null } }?.contains(false) == false @@ -317,7 +351,17 @@ internal sealed class SupportedPaymentMethod( */ @VisibleForTesting internal val exposedPaymentMethods = listOf( - Card, Bancontact, Sofort, Ideal, SepaDebit, Eps, Giropay, P24, Klarna, PayPal + Card, + Bancontact, + Sofort, + Ideal, + SepaDebit, + Eps, + Giropay, + P24, + Klarna, + PayPal, + AfterpayClearpay ) /** diff --git a/paymentsheet/src/test/java/com/stripe/android/paymentsheet/model/SupportedPaymentMethodTest.kt b/paymentsheet/src/test/java/com/stripe/android/paymentsheet/model/SupportedPaymentMethodTest.kt index d6dfbf2e167..8b637f8ba41 100644 --- a/paymentsheet/src/test/java/com/stripe/android/paymentsheet/model/SupportedPaymentMethodTest.kt +++ b/paymentsheet/src/test/java/com/stripe/android/paymentsheet/model/SupportedPaymentMethodTest.kt @@ -125,28 +125,31 @@ class SupportedPaymentMethodTest { val customerStates = setOf(true, false) val setupFutureUsage = setOf(StripeIntent.Usage.OffSession, StripeIntent.Usage.OnSession, null) val allowsDelayedPayment = setOf(true, false) - - customerStates.forEach { customer -> - setupFutureUsage.forEach { usage -> - allowsDelayedPayment.forEach { delayed -> - scenarios.addAll( - listOf( - PaymentIntentTestInput( - hasCustomer = customer, - intentPMs = setOf(SupportedPaymentMethod.Card.type.code), - intentSetupFutureUsage = usage, - intentHasShipping = false, - allowsDelayedPayment = delayed - ), - PaymentIntentTestInput( - hasCustomer = customer, - intentPMs = setOf(SupportedPaymentMethod.Card.type.code, SupportedPaymentMethod.Eps.type.code), - intentSetupFutureUsage = usage, - intentHasShipping = false, - allowsDelayedPayment = delayed + val hasShippingAddress = setOf(false, true) + + hasShippingAddress.forEach { hasShipping -> + customerStates.forEach { customer -> + setupFutureUsage.forEach { usage -> + allowsDelayedPayment.forEach { delayed -> + scenarios.addAll( + listOf( + PaymentIntentTestInput( + hasCustomer = customer, + intentPMs = setOf(SupportedPaymentMethod.Card.type.code), + intentSetupFutureUsage = usage, + intentHasShipping = hasShipping, + allowsDelayedPayment = delayed + ), + PaymentIntentTestInput( + hasCustomer = customer, + intentPMs = setOf(SupportedPaymentMethod.Card.type.code, SupportedPaymentMethod.Eps.type.code), + intentSetupFutureUsage = usage, + intentHasShipping = hasShipping, + allowsDelayedPayment = delayed + ) ) ) - ) + } } } } @@ -187,7 +190,8 @@ class SupportedPaymentMethodTest { fun getIntent(lpm: SupportedPaymentMethod) = when (intentHasShipping) { false -> - PaymentIntentFixtures.PI_OFF_SESSION.copy( + PaymentIntentFixtures.PI_WITH_SHIPPING.copy( + shipping = null, setupFutureUsage = intentSetupFutureUsage, paymentMethodTypes = intentPMs.plus(lpm.type.code).toList() ) diff --git a/paymentsheet/src/test/resources/afterpay_clearpay-support.csv b/paymentsheet/src/test/resources/afterpay_clearpay-support.csv index 18260128276..a1187e6d5cf 100644 --- a/paymentsheet/src/test/resources/afterpay_clearpay-support.csv +++ b/paymentsheet/src/test/resources/afterpay_clearpay-support.csv @@ -23,3 +23,27 @@ afterpay_clearpay, false, true, null, false, card/afterpay_clearpay, false, fals afterpay_clearpay, false, true, null, false, card/eps/afterpay_clearpay, false, false, not available, false afterpay_clearpay, false, false, null, false, card/afterpay_clearpay, false, false, not available, false afterpay_clearpay, false, false, null, false, card/eps/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, true, true, off_session, true, card/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, true, true, off_session, true, card/eps/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, true, false, off_session, true, card/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, true, false, off_session, true, card/eps/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, true, true, on_session, true, card/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, true, true, on_session, true, card/eps/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, true, false, on_session, true, card/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, true, false, on_session, true, card/eps/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, true, true, null, true, card/afterpay_clearpay, false, true, oneTime, true +afterpay_clearpay, true, true, null, true, card/eps/afterpay_clearpay, false, true, oneTime, true +afterpay_clearpay, true, false, null, true, card/afterpay_clearpay, false, true, oneTime, true +afterpay_clearpay, true, false, null, true, card/eps/afterpay_clearpay, false, true, oneTime, true +afterpay_clearpay, false, true, off_session, true, card/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, false, true, off_session, true, card/eps/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, false, false, off_session, true, card/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, false, false, off_session, true, card/eps/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, false, true, on_session, true, card/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, false, true, on_session, true, card/eps/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, false, false, on_session, true, card/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, false, false, on_session, true, card/eps/afterpay_clearpay, false, false, not available, false +afterpay_clearpay, false, true, null, true, card/afterpay_clearpay, false, true, oneTime, true +afterpay_clearpay, false, true, null, true, card/eps/afterpay_clearpay, false, true, oneTime, true +afterpay_clearpay, false, false, null, true, card/afterpay_clearpay, false, true, oneTime, true +afterpay_clearpay, false, false, null, true, card/eps/afterpay_clearpay, false, true, oneTime, true diff --git a/paymentsheet/src/test/resources/bancontact-support.csv b/paymentsheet/src/test/resources/bancontact-support.csv index 152209e6165..af1a3cb96fd 100644 --- a/paymentsheet/src/test/resources/bancontact-support.csv +++ b/paymentsheet/src/test/resources/bancontact-support.csv @@ -23,3 +23,27 @@ bancontact, false, true, null, false, card/bancontact, false, true, oneTime, tru bancontact, false, true, null, false, card/eps/bancontact, false, true, oneTime, true bancontact, false, false, null, false, card/bancontact, false, true, oneTime, true bancontact, false, false, null, false, card/eps/bancontact, false, true, oneTime, true +bancontact, true, true, off_session, true, card/bancontact, false, false, not available, false +bancontact, true, true, off_session, true, card/eps/bancontact, false, false, not available, false +bancontact, true, false, off_session, true, card/bancontact, false, false, not available, false +bancontact, true, false, off_session, true, card/eps/bancontact, false, false, not available, false +bancontact, true, true, on_session, true, card/bancontact, false, false, not available, false +bancontact, true, true, on_session, true, card/eps/bancontact, false, false, not available, false +bancontact, true, false, on_session, true, card/bancontact, false, false, not available, false +bancontact, true, false, on_session, true, card/eps/bancontact, false, false, not available, false +bancontact, true, true, null, true, card/bancontact, false, true, oneTime, true +bancontact, true, true, null, true, card/eps/bancontact, false, true, oneTime, true +bancontact, true, false, null, true, card/bancontact, false, true, oneTime, true +bancontact, true, false, null, true, card/eps/bancontact, false, true, oneTime, true +bancontact, false, true, off_session, true, card/bancontact, false, false, not available, false +bancontact, false, true, off_session, true, card/eps/bancontact, false, false, not available, false +bancontact, false, false, off_session, true, card/bancontact, false, false, not available, false +bancontact, false, false, off_session, true, card/eps/bancontact, false, false, not available, false +bancontact, false, true, on_session, true, card/bancontact, false, false, not available, false +bancontact, false, true, on_session, true, card/eps/bancontact, false, false, not available, false +bancontact, false, false, on_session, true, card/bancontact, false, false, not available, false +bancontact, false, false, on_session, true, card/eps/bancontact, false, false, not available, false +bancontact, false, true, null, true, card/bancontact, false, true, oneTime, true +bancontact, false, true, null, true, card/eps/bancontact, false, true, oneTime, true +bancontact, false, false, null, true, card/bancontact, false, true, oneTime, true +bancontact, false, false, null, true, card/eps/bancontact, false, true, oneTime, true diff --git a/paymentsheet/src/test/resources/card-support.csv b/paymentsheet/src/test/resources/card-support.csv index bbb1a6faff9..f5505a97d4a 100644 --- a/paymentsheet/src/test/resources/card-support.csv +++ b/paymentsheet/src/test/resources/card-support.csv @@ -23,3 +23,27 @@ card, false, true, null, false, card, true, true, oneTime, true card, false, true, null, false, card/eps, true, true, oneTime, true card, false, false, null, false, card, true, true, oneTime, true card, false, false, null, false, card/eps, true, true, oneTime, true +card, true, true, off_session, true, card, true, true, merchantRequiredSave, true +card, true, true, off_session, true, card/eps, true, true, merchantRequiredSave, true +card, true, false, off_session, true, card, true, true, merchantRequiredSave, true +card, true, false, off_session, true, card/eps, true, true, merchantRequiredSave, true +card, true, true, on_session, true, card, true, true, merchantRequiredSave, true +card, true, true, on_session, true, card/eps, true, true, merchantRequiredSave, true +card, true, false, on_session, true, card, true, true, merchantRequiredSave, true +card, true, false, on_session, true, card/eps, true, true, merchantRequiredSave, true +card, true, true, null, true, card, true, true, userSelectedSave, true +card, true, true, null, true, card/eps, true, true, userSelectedSave, true +card, true, false, null, true, card, true, true, userSelectedSave, true +card, true, false, null, true, card/eps, true, true, userSelectedSave, true +card, false, true, off_session, true, card, true, true, merchantRequiredSave, true +card, false, true, off_session, true, card/eps, true, true, merchantRequiredSave, true +card, false, false, off_session, true, card, true, true, merchantRequiredSave, true +card, false, false, off_session, true, card/eps, true, true, merchantRequiredSave, true +card, false, true, on_session, true, card, true, true, merchantRequiredSave, true +card, false, true, on_session, true, card/eps, true, true, merchantRequiredSave, true +card, false, false, on_session, true, card, true, true, merchantRequiredSave, true +card, false, false, on_session, true, card/eps, true, true, merchantRequiredSave, true +card, false, true, null, true, card, true, true, oneTime, true +card, false, true, null, true, card/eps, true, true, oneTime, true +card, false, false, null, true, card, true, true, oneTime, true +card, false, false, null, true, card/eps, true, true, oneTime, true diff --git a/paymentsheet/src/test/resources/eps-support.csv b/paymentsheet/src/test/resources/eps-support.csv index fc00f19c7a2..f4c07fae189 100644 --- a/paymentsheet/src/test/resources/eps-support.csv +++ b/paymentsheet/src/test/resources/eps-support.csv @@ -23,3 +23,27 @@ eps, false, true, null, false, card/eps, false, true, oneTime, true eps, false, true, null, false, card/eps, false, true, oneTime, true eps, false, false, null, false, card/eps, false, true, oneTime, true eps, false, false, null, false, card/eps, false, true, oneTime, true +eps, true, true, off_session, true, card/eps, false, false, not available, false +eps, true, true, off_session, true, card/eps, false, false, not available, false +eps, true, false, off_session, true, card/eps, false, false, not available, false +eps, true, false, off_session, true, card/eps, false, false, not available, false +eps, true, true, on_session, true, card/eps, false, false, not available, false +eps, true, true, on_session, true, card/eps, false, false, not available, false +eps, true, false, on_session, true, card/eps, false, false, not available, false +eps, true, false, on_session, true, card/eps, false, false, not available, false +eps, true, true, null, true, card/eps, false, true, oneTime, true +eps, true, true, null, true, card/eps, false, true, oneTime, true +eps, true, false, null, true, card/eps, false, true, oneTime, true +eps, true, false, null, true, card/eps, false, true, oneTime, true +eps, false, true, off_session, true, card/eps, false, false, not available, false +eps, false, true, off_session, true, card/eps, false, false, not available, false +eps, false, false, off_session, true, card/eps, false, false, not available, false +eps, false, false, off_session, true, card/eps, false, false, not available, false +eps, false, true, on_session, true, card/eps, false, false, not available, false +eps, false, true, on_session, true, card/eps, false, false, not available, false +eps, false, false, on_session, true, card/eps, false, false, not available, false +eps, false, false, on_session, true, card/eps, false, false, not available, false +eps, false, true, null, true, card/eps, false, true, oneTime, true +eps, false, true, null, true, card/eps, false, true, oneTime, true +eps, false, false, null, true, card/eps, false, true, oneTime, true +eps, false, false, null, true, card/eps, false, true, oneTime, true diff --git a/paymentsheet/src/test/resources/giropay-support.csv b/paymentsheet/src/test/resources/giropay-support.csv index c8c62fc21b6..fa073d4caa9 100644 --- a/paymentsheet/src/test/resources/giropay-support.csv +++ b/paymentsheet/src/test/resources/giropay-support.csv @@ -23,3 +23,27 @@ giropay, false, true, null, false, card/giropay, false, true, oneTime, true giropay, false, true, null, false, card/eps/giropay, false, true, oneTime, true giropay, false, false, null, false, card/giropay, false, true, oneTime, true giropay, false, false, null, false, card/eps/giropay, false, true, oneTime, true +giropay, true, true, off_session, true, card/giropay, false, false, not available, false +giropay, true, true, off_session, true, card/eps/giropay, false, false, not available, false +giropay, true, false, off_session, true, card/giropay, false, false, not available, false +giropay, true, false, off_session, true, card/eps/giropay, false, false, not available, false +giropay, true, true, on_session, true, card/giropay, false, false, not available, false +giropay, true, true, on_session, true, card/eps/giropay, false, false, not available, false +giropay, true, false, on_session, true, card/giropay, false, false, not available, false +giropay, true, false, on_session, true, card/eps/giropay, false, false, not available, false +giropay, true, true, null, true, card/giropay, false, true, oneTime, true +giropay, true, true, null, true, card/eps/giropay, false, true, oneTime, true +giropay, true, false, null, true, card/giropay, false, true, oneTime, true +giropay, true, false, null, true, card/eps/giropay, false, true, oneTime, true +giropay, false, true, off_session, true, card/giropay, false, false, not available, false +giropay, false, true, off_session, true, card/eps/giropay, false, false, not available, false +giropay, false, false, off_session, true, card/giropay, false, false, not available, false +giropay, false, false, off_session, true, card/eps/giropay, false, false, not available, false +giropay, false, true, on_session, true, card/giropay, false, false, not available, false +giropay, false, true, on_session, true, card/eps/giropay, false, false, not available, false +giropay, false, false, on_session, true, card/giropay, false, false, not available, false +giropay, false, false, on_session, true, card/eps/giropay, false, false, not available, false +giropay, false, true, null, true, card/giropay, false, true, oneTime, true +giropay, false, true, null, true, card/eps/giropay, false, true, oneTime, true +giropay, false, false, null, true, card/giropay, false, true, oneTime, true +giropay, false, false, null, true, card/eps/giropay, false, true, oneTime, true diff --git a/paymentsheet/src/test/resources/ideal-support.csv b/paymentsheet/src/test/resources/ideal-support.csv index fcb3081a133..de39e507d0d 100644 --- a/paymentsheet/src/test/resources/ideal-support.csv +++ b/paymentsheet/src/test/resources/ideal-support.csv @@ -23,3 +23,27 @@ ideal, false, true, null, false, card/ideal, false, true, oneTime, true ideal, false, true, null, false, card/eps/ideal, false, true, oneTime, true ideal, false, false, null, false, card/ideal, false, true, oneTime, true ideal, false, false, null, false, card/eps/ideal, false, true, oneTime, true +ideal, true, true, off_session, true, card/ideal, false, false, not available, false +ideal, true, true, off_session, true, card/eps/ideal, false, false, not available, false +ideal, true, false, off_session, true, card/ideal, false, false, not available, false +ideal, true, false, off_session, true, card/eps/ideal, false, false, not available, false +ideal, true, true, on_session, true, card/ideal, false, false, not available, false +ideal, true, true, on_session, true, card/eps/ideal, false, false, not available, false +ideal, true, false, on_session, true, card/ideal, false, false, not available, false +ideal, true, false, on_session, true, card/eps/ideal, false, false, not available, false +ideal, true, true, null, true, card/ideal, false, true, oneTime, true +ideal, true, true, null, true, card/eps/ideal, false, true, oneTime, true +ideal, true, false, null, true, card/ideal, false, true, oneTime, true +ideal, true, false, null, true, card/eps/ideal, false, true, oneTime, true +ideal, false, true, off_session, true, card/ideal, false, false, not available, false +ideal, false, true, off_session, true, card/eps/ideal, false, false, not available, false +ideal, false, false, off_session, true, card/ideal, false, false, not available, false +ideal, false, false, off_session, true, card/eps/ideal, false, false, not available, false +ideal, false, true, on_session, true, card/ideal, false, false, not available, false +ideal, false, true, on_session, true, card/eps/ideal, false, false, not available, false +ideal, false, false, on_session, true, card/ideal, false, false, not available, false +ideal, false, false, on_session, true, card/eps/ideal, false, false, not available, false +ideal, false, true, null, true, card/ideal, false, true, oneTime, true +ideal, false, true, null, true, card/eps/ideal, false, true, oneTime, true +ideal, false, false, null, true, card/ideal, false, true, oneTime, true +ideal, false, false, null, true, card/eps/ideal, false, true, oneTime, true diff --git a/paymentsheet/src/test/resources/klarna-support.csv b/paymentsheet/src/test/resources/klarna-support.csv index 1d66f989e10..f563a74b1c4 100644 --- a/paymentsheet/src/test/resources/klarna-support.csv +++ b/paymentsheet/src/test/resources/klarna-support.csv @@ -23,3 +23,27 @@ klarna, false, true, null, false, card/klarna, false, true, oneTime, true klarna, false, true, null, false, card/eps/klarna, false, true, oneTime, true klarna, false, false, null, false, card/klarna, false, true, oneTime, true klarna, false, false, null, false, card/eps/klarna, false, true, oneTime, true +klarna, true, true, off_session, true, card/klarna, false, false, not available, false +klarna, true, true, off_session, true, card/eps/klarna, false, false, not available, false +klarna, true, false, off_session, true, card/klarna, false, false, not available, false +klarna, true, false, off_session, true, card/eps/klarna, false, false, not available, false +klarna, true, true, on_session, true, card/klarna, false, false, not available, false +klarna, true, true, on_session, true, card/eps/klarna, false, false, not available, false +klarna, true, false, on_session, true, card/klarna, false, false, not available, false +klarna, true, false, on_session, true, card/eps/klarna, false, false, not available, false +klarna, true, true, null, true, card/klarna, false, true, oneTime, true +klarna, true, true, null, true, card/eps/klarna, false, true, oneTime, true +klarna, true, false, null, true, card/klarna, false, true, oneTime, true +klarna, true, false, null, true, card/eps/klarna, false, true, oneTime, true +klarna, false, true, off_session, true, card/klarna, false, false, not available, false +klarna, false, true, off_session, true, card/eps/klarna, false, false, not available, false +klarna, false, false, off_session, true, card/klarna, false, false, not available, false +klarna, false, false, off_session, true, card/eps/klarna, false, false, not available, false +klarna, false, true, on_session, true, card/klarna, false, false, not available, false +klarna, false, true, on_session, true, card/eps/klarna, false, false, not available, false +klarna, false, false, on_session, true, card/klarna, false, false, not available, false +klarna, false, false, on_session, true, card/eps/klarna, false, false, not available, false +klarna, false, true, null, true, card/klarna, false, true, oneTime, true +klarna, false, true, null, true, card/eps/klarna, false, true, oneTime, true +klarna, false, false, null, true, card/klarna, false, true, oneTime, true +klarna, false, false, null, true, card/eps/klarna, false, true, oneTime, true diff --git a/paymentsheet/src/test/resources/p24-support.csv b/paymentsheet/src/test/resources/p24-support.csv index b34301ba6e5..5d14e023bbc 100644 --- a/paymentsheet/src/test/resources/p24-support.csv +++ b/paymentsheet/src/test/resources/p24-support.csv @@ -23,3 +23,27 @@ p24, false, true, null, false, card/p24, false, true, oneTime, true p24, false, true, null, false, card/eps/p24, false, true, oneTime, true p24, false, false, null, false, card/p24, false, true, oneTime, true p24, false, false, null, false, card/eps/p24, false, true, oneTime, true +p24, true, true, off_session, true, card/p24, false, false, not available, false +p24, true, true, off_session, true, card/eps/p24, false, false, not available, false +p24, true, false, off_session, true, card/p24, false, false, not available, false +p24, true, false, off_session, true, card/eps/p24, false, false, not available, false +p24, true, true, on_session, true, card/p24, false, false, not available, false +p24, true, true, on_session, true, card/eps/p24, false, false, not available, false +p24, true, false, on_session, true, card/p24, false, false, not available, false +p24, true, false, on_session, true, card/eps/p24, false, false, not available, false +p24, true, true, null, true, card/p24, false, true, oneTime, true +p24, true, true, null, true, card/eps/p24, false, true, oneTime, true +p24, true, false, null, true, card/p24, false, true, oneTime, true +p24, true, false, null, true, card/eps/p24, false, true, oneTime, true +p24, false, true, off_session, true, card/p24, false, false, not available, false +p24, false, true, off_session, true, card/eps/p24, false, false, not available, false +p24, false, false, off_session, true, card/p24, false, false, not available, false +p24, false, false, off_session, true, card/eps/p24, false, false, not available, false +p24, false, true, on_session, true, card/p24, false, false, not available, false +p24, false, true, on_session, true, card/eps/p24, false, false, not available, false +p24, false, false, on_session, true, card/p24, false, false, not available, false +p24, false, false, on_session, true, card/eps/p24, false, false, not available, false +p24, false, true, null, true, card/p24, false, true, oneTime, true +p24, false, true, null, true, card/eps/p24, false, true, oneTime, true +p24, false, false, null, true, card/p24, false, true, oneTime, true +p24, false, false, null, true, card/eps/p24, false, true, oneTime, true diff --git a/paymentsheet/src/test/resources/paypal-support.csv b/paymentsheet/src/test/resources/paypal-support.csv index e32c3eca270..ca65e1840f7 100644 --- a/paymentsheet/src/test/resources/paypal-support.csv +++ b/paymentsheet/src/test/resources/paypal-support.csv @@ -23,3 +23,27 @@ paypal, false, true, null, false, card/paypal, false, true, oneTime, true paypal, false, true, null, false, card/eps/paypal, false, true, oneTime, true paypal, false, false, null, false, card/paypal, false, true, oneTime, true paypal, false, false, null, false, card/eps/paypal, false, true, oneTime, true +paypal, true, true, off_session, true, card/paypal, false, false, not available, false +paypal, true, true, off_session, true, card/eps/paypal, false, false, not available, false +paypal, true, false, off_session, true, card/paypal, false, false, not available, false +paypal, true, false, off_session, true, card/eps/paypal, false, false, not available, false +paypal, true, true, on_session, true, card/paypal, false, false, not available, false +paypal, true, true, on_session, true, card/eps/paypal, false, false, not available, false +paypal, true, false, on_session, true, card/paypal, false, false, not available, false +paypal, true, false, on_session, true, card/eps/paypal, false, false, not available, false +paypal, true, true, null, true, card/paypal, false, true, oneTime, true +paypal, true, true, null, true, card/eps/paypal, false, true, oneTime, true +paypal, true, false, null, true, card/paypal, false, true, oneTime, true +paypal, true, false, null, true, card/eps/paypal, false, true, oneTime, true +paypal, false, true, off_session, true, card/paypal, false, false, not available, false +paypal, false, true, off_session, true, card/eps/paypal, false, false, not available, false +paypal, false, false, off_session, true, card/paypal, false, false, not available, false +paypal, false, false, off_session, true, card/eps/paypal, false, false, not available, false +paypal, false, true, on_session, true, card/paypal, false, false, not available, false +paypal, false, true, on_session, true, card/eps/paypal, false, false, not available, false +paypal, false, false, on_session, true, card/paypal, false, false, not available, false +paypal, false, false, on_session, true, card/eps/paypal, false, false, not available, false +paypal, false, true, null, true, card/paypal, false, true, oneTime, true +paypal, false, true, null, true, card/eps/paypal, false, true, oneTime, true +paypal, false, false, null, true, card/paypal, false, true, oneTime, true +paypal, false, false, null, true, card/eps/paypal, false, true, oneTime, true diff --git a/paymentsheet/src/test/resources/sepa_debit-support.csv b/paymentsheet/src/test/resources/sepa_debit-support.csv index 117ea8ae7dc..3d77303fd1a 100644 --- a/paymentsheet/src/test/resources/sepa_debit-support.csv +++ b/paymentsheet/src/test/resources/sepa_debit-support.csv @@ -23,3 +23,27 @@ sepa_debit, false, true, null, false, card/sepa_debit, false, true, oneTime, tru sepa_debit, false, true, null, false, card/eps/sepa_debit, false, true, oneTime, true sepa_debit, false, false, null, false, card/sepa_debit, false, false, not available, false sepa_debit, false, false, null, false, card/eps/sepa_debit, false, false, not available, false +sepa_debit, true, true, off_session, true, card/sepa_debit, false, false, not available, false +sepa_debit, true, true, off_session, true, card/eps/sepa_debit, false, false, not available, false +sepa_debit, true, false, off_session, true, card/sepa_debit, false, false, not available, false +sepa_debit, true, false, off_session, true, card/eps/sepa_debit, false, false, not available, false +sepa_debit, true, true, on_session, true, card/sepa_debit, false, false, not available, false +sepa_debit, true, true, on_session, true, card/eps/sepa_debit, false, false, not available, false +sepa_debit, true, false, on_session, true, card/sepa_debit, false, false, not available, false +sepa_debit, true, false, on_session, true, card/eps/sepa_debit, false, false, not available, false +sepa_debit, true, true, null, true, card/sepa_debit, false, true, oneTime, true +sepa_debit, true, true, null, true, card/eps/sepa_debit, false, true, oneTime, true +sepa_debit, true, false, null, true, card/sepa_debit, false, false, not available, false +sepa_debit, true, false, null, true, card/eps/sepa_debit, false, false, not available, false +sepa_debit, false, true, off_session, true, card/sepa_debit, false, false, not available, false +sepa_debit, false, true, off_session, true, card/eps/sepa_debit, false, false, not available, false +sepa_debit, false, false, off_session, true, card/sepa_debit, false, false, not available, false +sepa_debit, false, false, off_session, true, card/eps/sepa_debit, false, false, not available, false +sepa_debit, false, true, on_session, true, card/sepa_debit, false, false, not available, false +sepa_debit, false, true, on_session, true, card/eps/sepa_debit, false, false, not available, false +sepa_debit, false, false, on_session, true, card/sepa_debit, false, false, not available, false +sepa_debit, false, false, on_session, true, card/eps/sepa_debit, false, false, not available, false +sepa_debit, false, true, null, true, card/sepa_debit, false, true, oneTime, true +sepa_debit, false, true, null, true, card/eps/sepa_debit, false, true, oneTime, true +sepa_debit, false, false, null, true, card/sepa_debit, false, false, not available, false +sepa_debit, false, false, null, true, card/eps/sepa_debit, false, false, not available, false diff --git a/paymentsheet/src/test/resources/sofort-support.csv b/paymentsheet/src/test/resources/sofort-support.csv index d4c5e51e1c6..5d775656ae0 100644 --- a/paymentsheet/src/test/resources/sofort-support.csv +++ b/paymentsheet/src/test/resources/sofort-support.csv @@ -23,3 +23,27 @@ sofort, false, true, null, false, card/sofort, false, true, oneTime, true sofort, false, true, null, false, card/eps/sofort, false, true, oneTime, true sofort, false, false, null, false, card/sofort, false, false, not available, false sofort, false, false, null, false, card/eps/sofort, false, false, not available, false +sofort, true, true, off_session, true, card/sofort, false, false, not available, false +sofort, true, true, off_session, true, card/eps/sofort, false, false, not available, false +sofort, true, false, off_session, true, card/sofort, false, false, not available, false +sofort, true, false, off_session, true, card/eps/sofort, false, false, not available, false +sofort, true, true, on_session, true, card/sofort, false, false, not available, false +sofort, true, true, on_session, true, card/eps/sofort, false, false, not available, false +sofort, true, false, on_session, true, card/sofort, false, false, not available, false +sofort, true, false, on_session, true, card/eps/sofort, false, false, not available, false +sofort, true, true, null, true, card/sofort, false, true, oneTime, true +sofort, true, true, null, true, card/eps/sofort, false, true, oneTime, true +sofort, true, false, null, true, card/sofort, false, false, not available, false +sofort, true, false, null, true, card/eps/sofort, false, false, not available, false +sofort, false, true, off_session, true, card/sofort, false, false, not available, false +sofort, false, true, off_session, true, card/eps/sofort, false, false, not available, false +sofort, false, false, off_session, true, card/sofort, false, false, not available, false +sofort, false, false, off_session, true, card/eps/sofort, false, false, not available, false +sofort, false, true, on_session, true, card/sofort, false, false, not available, false +sofort, false, true, on_session, true, card/eps/sofort, false, false, not available, false +sofort, false, false, on_session, true, card/sofort, false, false, not available, false +sofort, false, false, on_session, true, card/eps/sofort, false, false, not available, false +sofort, false, true, null, true, card/sofort, false, true, oneTime, true +sofort, false, true, null, true, card/eps/sofort, false, true, oneTime, true +sofort, false, false, null, true, card/sofort, false, false, not available, false +sofort, false, false, null, true, card/eps/sofort, false, false, not available, false