From 6933a88e122a5e1a72422e348babf78e66038bb3 Mon Sep 17 00:00:00 2001 From: Chen Cen Date: Wed, 17 Mar 2021 13:05:51 -0700 Subject: [PATCH 01/10] Add support for blik payment intent and payment method --- .../model/ConfirmPaymentIntentParams.kt | 19 ++++++ .../com/stripe/android/model/PaymentMethod.kt | 3 +- .../model/PaymentMethodCreateParams.kt | 16 ++++- .../model/PaymentMethodOptionsParams.kt | 15 +++++ .../com/stripe/android/model/StripeIntent.kt | 19 +++++- .../model/parsers/NextActionDataParser.kt | 9 +++ .../java/com/stripe/android/ApiKeyFixtures.kt | 1 + .../android/PaymentMethodEndToEndTest.kt | 10 +++ .../model/ConfirmPaymentIntentParamsTest.kt | 27 +++++++- .../android/model/PaymentIntentFixtures.kt | 66 +++++++++++++++++++ .../stripe/android/model/PaymentIntentTest.kt | 18 ++++- .../model/PaymentMethodOptionsParamsTest.kt | 16 +++++ 12 files changed, 213 insertions(+), 6 deletions(-) diff --git a/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt b/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt index d4b9a36eb26..4248fe0d576 100644 --- a/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt +++ b/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt @@ -521,5 +521,24 @@ data class ConfirmPaymentIntentParams internal constructor( returnUrl = "stripe://return_url" ) } + + + /** + * Create the parameters necessary for confirming a [PaymentIntent] with Blik + * + * @param blikCode code generated from blik mobile banking app + * @param clientSecret client secret from the PaymentIntent that is to be confirmed + * + */ + @JvmStatic + fun createBlik( + blikCode: String, + clientSecret: String + ): ConfirmPaymentIntentParams { + return ConfirmPaymentIntentParams( + clientSecret = clientSecret, + paymentMethodCreateParams = PaymentMethodCreateParams.createBlik(), + ) + } } } diff --git a/stripe/src/main/java/com/stripe/android/model/PaymentMethod.kt b/stripe/src/main/java/com/stripe/android/model/PaymentMethod.kt index a20feb8b152..2b694c667cc 100644 --- a/stripe/src/main/java/com/stripe/android/model/PaymentMethod.kt +++ b/stripe/src/main/java/com/stripe/android/model/PaymentMethod.kt @@ -141,7 +141,8 @@ data class PaymentMethod internal constructor( GrabPay("grabpay", isReusable = false), PayPal("paypal", isReusable = false), AfterpayClearpay("afterpay_clearpay", isReusable = false), - Netbanking("netbanking", isReusable = false); + Netbanking("netbanking", isReusable = false), + Blik("blik", isReusable = false); override fun toString(): String { return code diff --git a/stripe/src/main/java/com/stripe/android/model/PaymentMethodCreateParams.kt b/stripe/src/main/java/com/stripe/android/model/PaymentMethodCreateParams.kt index db6e833fc7e..52d5c9681d4 100644 --- a/stripe/src/main/java/com/stripe/android/model/PaymentMethodCreateParams.kt +++ b/stripe/src/main/java/com/stripe/android/model/PaymentMethodCreateParams.kt @@ -199,7 +199,8 @@ data class PaymentMethodCreateParams internal constructor( PayPal("paypal"), AfterpayClearpay("afterpay_clearpay"), Upi("upi"), - Netbanking("netbanking") + Netbanking("netbanking"), + Blik("blik") } @Parcelize @@ -752,5 +753,18 @@ data class PaymentMethodCreateParams internal constructor( ) ) } + + @JvmStatic + @JvmOverloads + fun createBlik( + billingDetails: PaymentMethod.BillingDetails? = null, + metadata: Map? = null + ): PaymentMethodCreateParams { + return PaymentMethodCreateParams( + type = Type.Blik, + billingDetails = billingDetails, + metadata = metadata + ) + } } } diff --git a/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt b/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt index 3c8ba722b97..9bb3afe4daf 100644 --- a/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt +++ b/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt @@ -39,4 +39,19 @@ sealed class PaymentMethodOptionsParams( private const val PARAM_NETWORK = "network" } } + + @Parcelize + data class Blik( + var code: String? = null, + ) : PaymentMethodOptionsParams(PaymentMethod.Type.Blik) { + override fun createTypeParams(): List> { + return listOf( + PARAM_CODE to code, + ) + } + + companion object { + const val PARAM_CODE = "code" + } + } } diff --git a/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt b/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt index 2087fe99abd..bd0c45c8e0c 100644 --- a/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt +++ b/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt @@ -1,6 +1,7 @@ package com.stripe.android.model import android.net.Uri +import android.os.Parcel import android.os.Parcelable import com.stripe.android.utils.StripeUrlUtils import kotlinx.parcelize.Parcelize @@ -61,7 +62,8 @@ interface StripeIntent : StripeModel { RedirectToUrl("redirect_to_url"), UseStripeSdk("use_stripe_sdk"), DisplayOxxoDetails("display_oxxo_details"), - AlipayRedirect("alipay_handle_redirect"); + AlipayRedirect("alipay_handle_redirect"), + BlikAuthorize("blik_authorize"); override fun toString(): String { return code @@ -130,7 +132,10 @@ interface StripeIntent : StripeModel { } } - sealed class NextActionData : StripeModel { + sealed class NextActionData() : StripeModel { + constructor(parcel: Parcel) : this() { + } + @Parcelize data class DisplayOxxoDetails( /** @@ -220,5 +225,15 @@ interface StripeIntent : StripeModel { ) : Parcelable } } + + @Parcelize + object BlikAuthorize : NextActionData() { + override fun hashCode(): Int { + return 0 + } + override fun equals(other: Any?): Boolean { + return true + } + } } } diff --git a/stripe/src/main/java/com/stripe/android/model/parsers/NextActionDataParser.kt b/stripe/src/main/java/com/stripe/android/model/parsers/NextActionDataParser.kt index e972189535b..00e45447a36 100644 --- a/stripe/src/main/java/com/stripe/android/model/parsers/NextActionDataParser.kt +++ b/stripe/src/main/java/com/stripe/android/model/parsers/NextActionDataParser.kt @@ -18,6 +18,7 @@ internal class NextActionDataParser : ModelJsonParser RedirectToUrlParser() StripeIntent.NextActionType.UseStripeSdk -> SdkDataJsonParser() StripeIntent.NextActionType.AlipayRedirect -> AlipayRedirectParser() + StripeIntent.NextActionType.BlikAuthorize -> BlikAuthorizeParser() else -> return null } return parser.parse(json.optJSONObject(nextActionType.code) ?: JSONObject()) @@ -142,6 +143,14 @@ internal class NextActionDataParser : ModelJsonParser { + override fun parse(json: JSONObject): StripeIntent.NextActionData.BlikAuthorize { + return StripeIntent.NextActionData.BlikAuthorize + } + } + + private companion object { private const val FIELD_NEXT_ACTION_TYPE = "type" } diff --git a/stripe/src/test/java/com/stripe/android/ApiKeyFixtures.kt b/stripe/src/test/java/com/stripe/android/ApiKeyFixtures.kt index 26e11ae4e44..4db2c108c71 100644 --- a/stripe/src/test/java/com/stripe/android/ApiKeyFixtures.kt +++ b/stripe/src/test/java/com/stripe/android/ApiKeyFixtures.kt @@ -23,4 +23,5 @@ internal object ApiKeyFixtures { const val AFTERPAY_PUBLISHABLE_KEY = "pk_test_vOo1umqsYxSrP5UXfOeL3ecm" const val UPI_PUBLISHABLE_KEY = "pk_test_51H7wmsBte6TMTRd4gph9Wm7gnQOKJwdVTCj30AhtB8MhWtlYj6v9xDn1vdCtKYGAE7cybr6fQdbQQtgvzBihE9cl00tOnrTpL9" const val NETBANKING_PUBLISHABLE_KEY = "pk_test_51H7wmsBte6TMTRd4gph9Wm7gnQOKJwdVTCj30AhtB8MhWtlYj6v9xDn1vdCtKYGAE7cybr6fQdbQQtgvzBihE9cl00tOnrTpL9" + const val BLIK_PUBLISHABLE_KEY = "pk_test_ErsyMEOTudSjQR8hh0VrQr5X008sBXGOu6" // mobile-payments-sdk-ci@stripe.com } diff --git a/stripe/src/test/java/com/stripe/android/PaymentMethodEndToEndTest.kt b/stripe/src/test/java/com/stripe/android/PaymentMethodEndToEndTest.kt index 3dfc036b332..264bf206c2b 100644 --- a/stripe/src/test/java/com/stripe/android/PaymentMethodEndToEndTest.kt +++ b/stripe/src/test/java/com/stripe/android/PaymentMethodEndToEndTest.kt @@ -314,4 +314,14 @@ internal class PaymentMethodEndToEndTest { assertThat(missingAddressException.message) .isEqualTo("Missing required param: billing_details[address][line1].") } + + @Test + fun createPaymentMethod_withBlik_shouldCreateObject() { + val params = PaymentMethodCreateParams.createBlik() + val paymentMethod = + Stripe(context, ApiKeyFixtures.BLIK_PUBLISHABLE_KEY) + .createPaymentMethodSynchronous(params) + assertThat(paymentMethod?.type) + .isEqualTo(PaymentMethod.Type.Blik) + } } diff --git a/stripe/src/test/java/com/stripe/android/model/ConfirmPaymentIntentParamsTest.kt b/stripe/src/test/java/com/stripe/android/model/ConfirmPaymentIntentParamsTest.kt index d26a373f059..8a1506af8b7 100644 --- a/stripe/src/test/java/com/stripe/android/model/ConfirmPaymentIntentParamsTest.kt +++ b/stripe/src/test/java/com/stripe/android/model/ConfirmPaymentIntentParamsTest.kt @@ -305,7 +305,7 @@ class ConfirmPaymentIntentParamsTest { } @Test - fun toParamMap_withPaymentMethodOptions_shouldCreateExpectedMap() { + fun toParamMap_withCardPaymentMethodOptions_shouldCreateExpectedMap() { assertThat( ConfirmPaymentIntentParams( paymentMethodId = "pm_123", @@ -324,6 +324,31 @@ class ConfirmPaymentIntentParamsTest { ) } + @Test + fun toParamMap_withBlikPaymentMethodOptions_shouldCreateExpectedMap() { + val blikCode = "123456" + assertThat( + ConfirmPaymentIntentParams( + paymentMethodId = "pm_123", + paymentMethodOptions = PaymentMethodOptionsParams.Blik( + code = blikCode + ), + clientSecret = CLIENT_SECRET + ).toParamMap() + ).isEqualTo( + mapOf( + "payment_method" to "pm_123", + "payment_method_options" to mapOf( + PaymentMethod.Type.Blik.code to mapOf( + PaymentMethodOptionsParams.Blik.PARAM_CODE to blikCode + ) + ), + "client_secret" to CLIENT_SECRET, + "use_stripe_sdk" to false + ) + ) + } + @Test fun toParamMap_withReceiptEmail_shouldCreateExpectedMap() { assertThat( diff --git a/stripe/src/test/java/com/stripe/android/model/PaymentIntentFixtures.kt b/stripe/src/test/java/com/stripe/android/model/PaymentIntentFixtures.kt index 0687abf831e..0f4aee3fcfd 100644 --- a/stripe/src/test/java/com/stripe/android/model/PaymentIntentFixtures.kt +++ b/stripe/src/test/java/com/stripe/android/model/PaymentIntentFixtures.kt @@ -872,4 +872,70 @@ internal object PaymentIntentFixtures { ) val ALIPAY_TEST_MODE = PARSER.parse(ALIPAY_TEST_MODE_JSON)!! + + val PI_REQUIRES_BLIK_AUTHORIZE_JSON = JSONObject( + """ + { + "id": "pi_1IVmwXFY0qyl6XeWwxGWA04D", + "object": "payment_intent", + "amount": 1099, + "amount_capturable": 0, + "amount_received": 0, + "amount_subtotal": 1099, + "application": null, + "application_fee_amount": null, + "canceled_at": null, + "cancellation_reason": null, + "capture_method": "automatic", + "charges": { + "object": "list", + "data": [ + + ], + "has_more": false, + "total_count": 0, + "url": "/v1/charges?payment_intent=pi_1IVmwXFY0qyl6XeWwxGWA04D" + }, + "client_secret": "pi_1IVmwXFY0qyl6XeWwxGWA04D_secret_4U8cSCdPefr8LHtPsKvA3mcQz", + "confirmation_method": "automatic", + "created": 1615939737, + "currency": "pln", + "customer": null, + "description": null, + "invoice": null, + "last_payment_error": null, + "livemode": false, + "metadata": { + }, + "next_action": { + "type": "blik_authorize" + }, + "on_behalf_of": null, + "payment_method": "pm_1IVnI3FY0qyl6XeWxJFdBh2g", + "payment_method_options": { + "blik": { + } + }, + "payment_method_types": [ + "blik" + ], + "receipt_email": null, + "review": null, + "setup_future_usage": null, + "shipping": null, + "source": null, + "statement_descriptor": null, + "statement_descriptor_suffix": null, + "status": "requires_action", + "total_details": { + "amount_discount": 0, + "amount_tax": 0 + }, + "transfer_data": null, + "transfer_group": null + } + """.trimIndent() + ) + + val PI_REQUIRES_BLIK_AUTHORIZE = PARSER.parse(PI_REQUIRES_BLIK_AUTHORIZE_JSON)!! } diff --git a/stripe/src/test/java/com/stripe/android/model/PaymentIntentTest.kt b/stripe/src/test/java/com/stripe/android/model/PaymentIntentTest.kt index e15e83d608a..5db4d2c1bc7 100644 --- a/stripe/src/test/java/com/stripe/android/model/PaymentIntentTest.kt +++ b/stripe/src/test/java/com/stripe/android/model/PaymentIntentTest.kt @@ -19,7 +19,7 @@ class PaymentIntentTest { } @Test - fun parsePaymentIntentWithPaymentMethods() { + fun parsePaymentIntentWith3DS2PaymentMethods() { val paymentIntent = PaymentIntentFixtures.PI_REQUIRES_MASTERCARD_3DS2 assertThat(paymentIntent.requiresAction()) .isTrue() @@ -39,6 +39,15 @@ class PaymentIntentTest { .isNull() } + @Test + fun parsePaymentIntentWithBlikPaymentMethods() { + val paymentIntent = PaymentIntentFixtures.PI_REQUIRES_BLIK_AUTHORIZE + assertThat(paymentIntent.requiresAction()) + .isTrue() + assertThat(paymentIntent.paymentMethodTypes) + .containsExactly("blik") + } + @Test fun getNextActionData_whenUseStripeSdkWith3ds2() { val paymentIntent = PaymentIntentFixtures.PI_REQUIRES_MASTERCARD_3DS2 @@ -74,6 +83,13 @@ class PaymentIntentTest { .isEqualTo("stripe://deeplink") } + @Test + fun getNextActionData_whenBlikAuthorize() { + val paymentIntent = PaymentIntentFixtures.PI_REQUIRES_BLIK_AUTHORIZE + assertThat(paymentIntent.nextActionData) + .isInstanceOf(StripeIntent.NextActionData.BlikAuthorize::class.java) + } + @Test fun getLastPaymentError_parsesCorrectly() { val lastPaymentError = diff --git a/stripe/src/test/java/com/stripe/android/model/PaymentMethodOptionsParamsTest.kt b/stripe/src/test/java/com/stripe/android/model/PaymentMethodOptionsParamsTest.kt index 3a368dee40a..636e341dcaf 100644 --- a/stripe/src/test/java/com/stripe/android/model/PaymentMethodOptionsParamsTest.kt +++ b/stripe/src/test/java/com/stripe/android/model/PaymentMethodOptionsParamsTest.kt @@ -20,6 +20,22 @@ class PaymentMethodOptionsParamsTest { ) } + @Test + fun blikToParamMap_withCode_includeCode() { + val blikCode = "123456" + assertThat( + PaymentMethodOptionsParams.Blik( + code = blikCode + ).toParamMap() + ).isEqualTo( + mapOf( + PaymentMethod.Type.Blik.code to mapOf( + PaymentMethodOptionsParams.Blik.PARAM_CODE to blikCode + ) + ) + ) + } + @Test fun cardToParamMap_withNoData_shouldHaveEmptyParams() { assertThat( From 8fce0d078c89e3de5a7c8ea1d04061cee93f45fd Mon Sep 17 00:00:00 2001 From: Chen Cen Date: Wed, 17 Mar 2021 13:30:55 -0700 Subject: [PATCH 02/10] make blik code non-null --- .../java/com/stripe/android/model/PaymentMethodOptionsParams.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt b/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt index 9bb3afe4daf..6e98663be98 100644 --- a/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt +++ b/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt @@ -42,7 +42,7 @@ sealed class PaymentMethodOptionsParams( @Parcelize data class Blik( - var code: String? = null, + var code: String, ) : PaymentMethodOptionsParams(PaymentMethod.Type.Blik) { override fun createTypeParams(): List> { return listOf( From 0349844cae6e0b61ee9d60f674e053d50d18b4f5 Mon Sep 17 00:00:00 2001 From: Chen Cen Date: Wed, 17 Mar 2021 13:34:12 -0700 Subject: [PATCH 03/10] remove redundant code --- stripe/src/main/java/com/stripe/android/model/StripeIntent.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt b/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt index bd0c45c8e0c..9852d2ffa2b 100644 --- a/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt +++ b/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt @@ -133,8 +133,6 @@ interface StripeIntent : StripeModel { } sealed class NextActionData() : StripeModel { - constructor(parcel: Parcel) : this() { - } @Parcelize data class DisplayOxxoDetails( From 7051f39e3ff6ca9b3372f46182e08c7ad0af610d Mon Sep 17 00:00:00 2001 From: Chen Cen Date: Wed, 17 Mar 2021 13:38:52 -0700 Subject: [PATCH 04/10] update equals function --- stripe/src/main/java/com/stripe/android/model/StripeIntent.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt b/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt index 9852d2ffa2b..f5edb6b8544 100644 --- a/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt +++ b/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt @@ -230,7 +230,7 @@ interface StripeIntent : StripeModel { return 0 } override fun equals(other: Any?): Boolean { - return true + return this === other } } } From d953fe0d283fd3788e135468c2cee5d98c38637c Mon Sep 17 00:00:00 2001 From: Chen Cen Date: Wed, 17 Mar 2021 13:43:01 -0700 Subject: [PATCH 05/10] fix lint --- .../java/com/stripe/android/model/ConfirmPaymentIntentParams.kt | 1 - stripe/src/main/java/com/stripe/android/model/StripeIntent.kt | 1 - .../com/stripe/android/model/parsers/NextActionDataParser.kt | 1 - 3 files changed, 3 deletions(-) diff --git a/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt b/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt index 4248fe0d576..53ab448e515 100644 --- a/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt +++ b/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt @@ -522,7 +522,6 @@ data class ConfirmPaymentIntentParams internal constructor( ) } - /** * Create the parameters necessary for confirming a [PaymentIntent] with Blik * diff --git a/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt b/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt index f5edb6b8544..28214637482 100644 --- a/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt +++ b/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt @@ -1,7 +1,6 @@ package com.stripe.android.model import android.net.Uri -import android.os.Parcel import android.os.Parcelable import com.stripe.android.utils.StripeUrlUtils import kotlinx.parcelize.Parcelize diff --git a/stripe/src/main/java/com/stripe/android/model/parsers/NextActionDataParser.kt b/stripe/src/main/java/com/stripe/android/model/parsers/NextActionDataParser.kt index 00e45447a36..5413a66d524 100644 --- a/stripe/src/main/java/com/stripe/android/model/parsers/NextActionDataParser.kt +++ b/stripe/src/main/java/com/stripe/android/model/parsers/NextActionDataParser.kt @@ -150,7 +150,6 @@ internal class NextActionDataParser : ModelJsonParser Date: Wed, 17 Mar 2021 13:44:17 -0700 Subject: [PATCH 06/10] remove email --- stripe/src/test/java/com/stripe/android/ApiKeyFixtures.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stripe/src/test/java/com/stripe/android/ApiKeyFixtures.kt b/stripe/src/test/java/com/stripe/android/ApiKeyFixtures.kt index 4db2c108c71..b8d07bed0da 100644 --- a/stripe/src/test/java/com/stripe/android/ApiKeyFixtures.kt +++ b/stripe/src/test/java/com/stripe/android/ApiKeyFixtures.kt @@ -23,5 +23,5 @@ internal object ApiKeyFixtures { const val AFTERPAY_PUBLISHABLE_KEY = "pk_test_vOo1umqsYxSrP5UXfOeL3ecm" const val UPI_PUBLISHABLE_KEY = "pk_test_51H7wmsBte6TMTRd4gph9Wm7gnQOKJwdVTCj30AhtB8MhWtlYj6v9xDn1vdCtKYGAE7cybr6fQdbQQtgvzBihE9cl00tOnrTpL9" const val NETBANKING_PUBLISHABLE_KEY = "pk_test_51H7wmsBte6TMTRd4gph9Wm7gnQOKJwdVTCj30AhtB8MhWtlYj6v9xDn1vdCtKYGAE7cybr6fQdbQQtgvzBihE9cl00tOnrTpL9" - const val BLIK_PUBLISHABLE_KEY = "pk_test_ErsyMEOTudSjQR8hh0VrQr5X008sBXGOu6" // mobile-payments-sdk-ci@stripe.com + const val BLIK_PUBLISHABLE_KEY = "pk_test_ErsyMEOTudSjQR8hh0VrQr5X008sBXGOu6" } From 52f6e1cdc8886a301cb72545bdd8fe20e81886b1 Mon Sep 17 00:00:00 2001 From: Chen Cen Date: Wed, 17 Mar 2021 15:11:23 -0700 Subject: [PATCH 07/10] resolve comments --- .../model/ConfirmPaymentIntentParams.kt | 18 ------------------ .../com/stripe/android/model/StripeIntent.kt | 2 +- 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt b/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt index 53ab448e515..d4b9a36eb26 100644 --- a/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt +++ b/stripe/src/main/java/com/stripe/android/model/ConfirmPaymentIntentParams.kt @@ -521,23 +521,5 @@ data class ConfirmPaymentIntentParams internal constructor( returnUrl = "stripe://return_url" ) } - - /** - * Create the parameters necessary for confirming a [PaymentIntent] with Blik - * - * @param blikCode code generated from blik mobile banking app - * @param clientSecret client secret from the PaymentIntent that is to be confirmed - * - */ - @JvmStatic - fun createBlik( - blikCode: String, - clientSecret: String - ): ConfirmPaymentIntentParams { - return ConfirmPaymentIntentParams( - clientSecret = clientSecret, - paymentMethodCreateParams = PaymentMethodCreateParams.createBlik(), - ) - } } } diff --git a/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt b/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt index 28214637482..bca929a9076 100644 --- a/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt +++ b/stripe/src/main/java/com/stripe/android/model/StripeIntent.kt @@ -131,7 +131,7 @@ interface StripeIntent : StripeModel { } } - sealed class NextActionData() : StripeModel { + sealed class NextActionData : StripeModel { @Parcelize data class DisplayOxxoDetails( From 33952869ac648f72d26b377edcde331ea60f7da5 Mon Sep 17 00:00:00 2001 From: Chen Cen Date: Wed, 17 Mar 2021 15:16:49 -0700 Subject: [PATCH 08/10] dump api --- stripe/api/stripe.api | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/stripe/api/stripe.api b/stripe/api/stripe.api index 754685d663e..27718e7dbf2 100644 --- a/stripe/api/stripe.api +++ b/stripe/api/stripe.api @@ -2939,6 +2939,7 @@ public final class com/stripe/android/model/PaymentMethod$Type : java/lang/Enum, public static final field AuBecsDebit Lcom/stripe/android/model/PaymentMethod$Type; public static final field BacsDebit Lcom/stripe/android/model/PaymentMethod$Type; public static final field Bancontact Lcom/stripe/android/model/PaymentMethod$Type; + public static final field Blik Lcom/stripe/android/model/PaymentMethod$Type; public static final field CREATOR Landroid/os/Parcelable$Creator; public static final field Card Lcom/stripe/android/model/PaymentMethod$Type; public static final field CardPresent Lcom/stripe/android/model/PaymentMethod$Type; @@ -3042,6 +3043,9 @@ public final class com/stripe/android/model/PaymentMethodCreateParams : android/ public static final fun createAlipay (Ljava/util/Map;)Lcom/stripe/android/model/PaymentMethodCreateParams; public static final fun createBancontact (Lcom/stripe/android/model/PaymentMethod$BillingDetails;)Lcom/stripe/android/model/PaymentMethodCreateParams; public static final fun createBancontact (Lcom/stripe/android/model/PaymentMethod$BillingDetails;Ljava/util/Map;)Lcom/stripe/android/model/PaymentMethodCreateParams; + public static final fun createBlik ()Lcom/stripe/android/model/PaymentMethodCreateParams; + public static final fun createBlik (Lcom/stripe/android/model/PaymentMethod$BillingDetails;)Lcom/stripe/android/model/PaymentMethodCreateParams; + public static final fun createBlik (Lcom/stripe/android/model/PaymentMethod$BillingDetails;Ljava/util/Map;)Lcom/stripe/android/model/PaymentMethodCreateParams; public static final fun createCard (Lcom/stripe/android/model/CardParams;)Lcom/stripe/android/model/PaymentMethodCreateParams; public static final fun createEps (Lcom/stripe/android/model/PaymentMethod$BillingDetails;)Lcom/stripe/android/model/PaymentMethodCreateParams; public static final fun createEps (Lcom/stripe/android/model/PaymentMethod$BillingDetails;Ljava/util/Map;)Lcom/stripe/android/model/PaymentMethodCreateParams; @@ -3201,6 +3205,10 @@ public final class com/stripe/android/model/PaymentMethodCreateParams$Companion public final fun createBancontact (Lcom/stripe/android/model/PaymentMethod$BillingDetails;)Lcom/stripe/android/model/PaymentMethodCreateParams; public final fun createBancontact (Lcom/stripe/android/model/PaymentMethod$BillingDetails;Ljava/util/Map;)Lcom/stripe/android/model/PaymentMethodCreateParams; public static synthetic fun createBancontact$default (Lcom/stripe/android/model/PaymentMethodCreateParams$Companion;Lcom/stripe/android/model/PaymentMethod$BillingDetails;Ljava/util/Map;ILjava/lang/Object;)Lcom/stripe/android/model/PaymentMethodCreateParams; + public final fun createBlik ()Lcom/stripe/android/model/PaymentMethodCreateParams; + public final fun createBlik (Lcom/stripe/android/model/PaymentMethod$BillingDetails;)Lcom/stripe/android/model/PaymentMethodCreateParams; + public final fun createBlik (Lcom/stripe/android/model/PaymentMethod$BillingDetails;Ljava/util/Map;)Lcom/stripe/android/model/PaymentMethodCreateParams; + public static synthetic fun createBlik$default (Lcom/stripe/android/model/PaymentMethodCreateParams$Companion;Lcom/stripe/android/model/PaymentMethod$BillingDetails;Ljava/util/Map;ILjava/lang/Object;)Lcom/stripe/android/model/PaymentMethodCreateParams; public final fun createCard (Lcom/stripe/android/model/CardParams;)Lcom/stripe/android/model/PaymentMethodCreateParams; public final fun createEps (Lcom/stripe/android/model/PaymentMethod$BillingDetails;)Lcom/stripe/android/model/PaymentMethodCreateParams; public final fun createEps (Lcom/stripe/android/model/PaymentMethod$BillingDetails;Ljava/util/Map;)Lcom/stripe/android/model/PaymentMethodCreateParams; @@ -3393,6 +3401,34 @@ public abstract class com/stripe/android/model/PaymentMethodOptionsParams : andr public fun toParamMap ()Ljava/util/Map; } +public final class com/stripe/android/model/PaymentMethodOptionsParams$Blik : com/stripe/android/model/PaymentMethodOptionsParams { + public static final field CREATOR Landroid/os/Parcelable$Creator; + public static final field Companion Lcom/stripe/android/model/PaymentMethodOptionsParams$Blik$Companion; + public static final field PARAM_CODE Ljava/lang/String; + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lcom/stripe/android/model/PaymentMethodOptionsParams$Blik; + public static synthetic fun copy$default (Lcom/stripe/android/model/PaymentMethodOptionsParams$Blik;Ljava/lang/String;ILjava/lang/Object;)Lcom/stripe/android/model/PaymentMethodOptionsParams$Blik; + public fun describeContents ()I + public fun equals (Ljava/lang/Object;)Z + public final fun getCode ()Ljava/lang/String; + public fun hashCode ()I + public final fun setCode (Ljava/lang/String;)V + public fun toString ()Ljava/lang/String; + public fun writeToParcel (Landroid/os/Parcel;I)V +} + +public final class com/stripe/android/model/PaymentMethodOptionsParams$Blik$Companion { +} + +public class com/stripe/android/model/PaymentMethodOptionsParams$Blik$Creator : android/os/Parcelable$Creator { + public fun ()V + public final fun createFromParcel (Landroid/os/Parcel;)Lcom/stripe/android/model/PaymentMethodOptionsParams$Blik; + public synthetic fun createFromParcel (Landroid/os/Parcel;)Ljava/lang/Object; + public final fun newArray (I)[Lcom/stripe/android/model/PaymentMethodOptionsParams$Blik; + public synthetic fun newArray (I)[Ljava/lang/Object; +} + public final class com/stripe/android/model/PaymentMethodOptionsParams$Card : com/stripe/android/model/PaymentMethodOptionsParams { public static final field CREATOR Landroid/os/Parcelable$Creator; public fun ()V @@ -4613,6 +4649,23 @@ public abstract interface class com/stripe/android/model/StripeIntent : com/stri public abstract class com/stripe/android/model/StripeIntent$NextActionData : com/stripe/android/model/StripeModel { } +public final class com/stripe/android/model/StripeIntent$NextActionData$BlikAuthorize : com/stripe/android/model/StripeIntent$NextActionData { + public static final field CREATOR Landroid/os/Parcelable$Creator; + public static final field INSTANCE Lcom/stripe/android/model/StripeIntent$NextActionData$BlikAuthorize; + public fun describeContents ()I + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public fun writeToParcel (Landroid/os/Parcel;I)V +} + +public class com/stripe/android/model/StripeIntent$NextActionData$BlikAuthorize$Creator : android/os/Parcelable$Creator { + public fun ()V + public final fun createFromParcel (Landroid/os/Parcel;)Lcom/stripe/android/model/StripeIntent$NextActionData$BlikAuthorize; + public synthetic fun createFromParcel (Landroid/os/Parcel;)Ljava/lang/Object; + public final fun newArray (I)[Lcom/stripe/android/model/StripeIntent$NextActionData$BlikAuthorize; + public synthetic fun newArray (I)[Ljava/lang/Object; +} + public final class com/stripe/android/model/StripeIntent$NextActionData$DisplayOxxoDetails : com/stripe/android/model/StripeIntent$NextActionData { public static final field CREATOR Landroid/os/Parcelable$Creator; public fun ()V @@ -4748,6 +4801,7 @@ public class com/stripe/android/model/StripeIntent$NextActionData$SdkData$Use3DS public final class com/stripe/android/model/StripeIntent$NextActionType : java/lang/Enum { public static final field AlipayRedirect Lcom/stripe/android/model/StripeIntent$NextActionType; + public static final field BlikAuthorize Lcom/stripe/android/model/StripeIntent$NextActionType; public static final field Companion Lcom/stripe/android/model/StripeIntent$NextActionType$Companion; public static final field DisplayOxxoDetails Lcom/stripe/android/model/StripeIntent$NextActionType; public static final field RedirectToUrl Lcom/stripe/android/model/StripeIntent$NextActionType; From bf47efbf4c5375adb1e5e8ac896ebb0a5e0fbd4c Mon Sep 17 00:00:00 2001 From: Chen Cen Date: Wed, 17 Mar 2021 16:30:38 -0700 Subject: [PATCH 09/10] make PARAM_CODE internal --- .../java/com/stripe/android/model/PaymentMethodOptionsParams.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt b/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt index 6e98663be98..8fab450f575 100644 --- a/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt +++ b/stripe/src/main/java/com/stripe/android/model/PaymentMethodOptionsParams.kt @@ -50,7 +50,7 @@ sealed class PaymentMethodOptionsParams( ) } - companion object { + internal companion object { const val PARAM_CODE = "code" } } From d5677e078b68184d3f6dd129b8c54a5438da8a67 Mon Sep 17 00:00:00 2001 From: Chen Cen Date: Wed, 17 Mar 2021 19:39:37 -0700 Subject: [PATCH 10/10] dump --- stripe/api/stripe.api | 3 --- 1 file changed, 3 deletions(-) diff --git a/stripe/api/stripe.api b/stripe/api/stripe.api index 27718e7dbf2..babacf68c0f 100644 --- a/stripe/api/stripe.api +++ b/stripe/api/stripe.api @@ -3418,9 +3418,6 @@ public final class com/stripe/android/model/PaymentMethodOptionsParams$Blik : co public fun writeToParcel (Landroid/os/Parcel;I)V } -public final class com/stripe/android/model/PaymentMethodOptionsParams$Blik$Companion { -} - public class com/stripe/android/model/PaymentMethodOptionsParams$Blik$Creator : android/os/Parcelable$Creator { public fun ()V public final fun createFromParcel (Landroid/os/Parcel;)Lcom/stripe/android/model/PaymentMethodOptionsParams$Blik;