Releases: stripe/stripe-android
Releases · stripe/stripe-android
stripe-android v13.0.0
This release includes several breaking changes.
See the migration guide for more details.
- #1950 Add idempotency key for
Stripe
API POST methodsclass MyActivity : AppCompatActivity() { private fun createPaymentMethod( params: PaymentMethodCreateParams, idempotencyKey: String? ) { stripe.createPaymentMethod( params = params, idempotencyKey = idempotencyKey, callback = object : ApiResultCallback<PaymentMethod> { override fun onSuccess(result: PaymentMethod) { } override fun onError(e: Exception) { } } ) } }
- #1993 Remove deprecated methods from
PaymentSession
- See the Migration Guide for more details
- #1994 Enable postal code field in
CardInputWidget
by default - #1995 Enable Google Pay option in Basic Integration and Stripe Activities
-
PaymentSession
PaymentSessionConfig.Builder() // other settings .setShouldShowGooglePay(true) .build()
-
PaymentMethodsActivity
PaymentMethodsActivityStarter.Args.Builder() // other settings .setShouldShowGooglePay(true) .build()
-
- #1996 Update postal code logic for
CardMultilineWidget
- Default to showing postal code (i.e.
shouldShowPostalCode = true
) - Postal code is now optional when displayed
- Remove validation on postal code field
- Change postal code field hint text to "Postal Code"
- Remove
CardInputListener.onPostalCodeComplete()
- Default to showing postal code (i.e.
- #1998 Use
CardBrand
enum to represent card brands- Change the type of
Card#brand
andSourceCardData#brand
properties fromString?
toCardBrand
- Remove
Card.CardBrand
- Change the type of
- #1999 Remove deprecated
BroadcastReceiver
logic fromPaymentFlowActivity
- See the Migration Guide for more details
- #2000 Pass
PaymentSessionConfig
instance toPaymentSession
constructor - #2002 Fix regression in
CardInputWidget
styling
To customize the individualEditText
fields ofCardInputWidget
, define aStripe.CardInputWidget.EditText
style
that extendsStripe.Base.CardInputWidget.EditText
. For example,<style name="Stripe.CardInputWidget.EditText" parent="Stripe.Base.CardInputWidget.EditText"> <item name="android:textSize">22sp</item> <item name="android:textColor">@android:color/holo_blue_light</item> <item name="android:textColorHint">@android:color/holo_orange_light</item> </style>
- #2003 Add support for authenticating a
Source
via in-app WebViewclass MyActivity : AppCompatActivity() { private fun authenticateSource(source: Source) { stripe.authenticateSource(this, source) } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (data != null && stripe.isAuthenticateSourceResult(requestCode, data)) { stripe.onAuthenticateSourceResult( data, object : ApiResultCallback<Source> { override fun onSuccess(result: Source) { } override fun onError(e: Exception) { } } ) } } }
- #2006 Create
TokenizationMethod
enum- Change the type of
Card#tokenizationMethod
andSourceCardData#tokenizationMethod
fromString?
toTokenizationMethod?
- Change the type of
- #2013 Populate shipping address country from pre-populated shipping info
- #2015 Update
PaymentSessionConfig
's defaultBillingAddressFields
toPostalCode
- #2020 Change
PaymentMethod.type
fromString?
toPaymentMethod.Type?
- #2028 Update
SourceParams
fields- Update
setOwner()
to takeOwnerParams
instead ofMap
- Remove
setRedirect()
, usesetReturnUrl()
instead - Update some setters to take null values, simplifying usage
- Update comments
- Update
- #2029 Update
CardInputWidget
to useTextInputLayout
- Make
StripeEditText
extendTextInputEditText
- Make
- #2038 Update
CardInputWidget
to focus on first error field when validating - #2039 Add support for creating a person token
- Add
Stripe#createPersonToken()
andStripe#createPersonTokenSynchronous()
- Add
- #2040 Add support for CVC recollection in PaymentIntents
- Update
ConfirmPaymentIntentParams.createWithPaymentMethodId()
with optionalPaymentMethodOptionsParams?
argument
- Update
- #2042 Create
AccountParams.BusinessTypeParams
BusinessTypeParams.Company
andBusinessTypeParams.Individual
model the parameters for creating a
company or
individual
account token.
Use these instead of creating raw maps representing the data.AccountParams.createAccountParams()
is now deprecated. Use the appropriateAccountParams.create()
method.
stripe-android v12.8.2
stripe-android v12.8.1
- #1968 Upgrade 3DS2 SDK to
2.2.7
- Downgrade to
com.google.android.material:material:1.0.0
- Downgrade to
stripe-android v12.8.0
- #1947 Allow setting of window flags on Stripe Activities
-
Basic Integration
PaymentSessionConfig.Builder() .setWindowFlags(WindowManager.LayoutParams.FLAG_SECURE) .build()
-
Custom Integration
AddPaymentMethodActivityStarter.Args.Builder() .setWindowFlags(WindowManager.LayoutParams.FLAG_SECURE) .build()
-
- #1956 Add support for configuring billing address fields on
AddPaymentMethodActivity
-
Basic Integration
PaymentSessionConfig.Builder() .setBillingAddressFields(BillingAddressFields.Full) .build()
-
Custom Integration
AddPaymentMethodActivityStarter.Args.Builder() .setBillingAddressFields(BillingAddressFields.Full) .build()
-
- #1957 Enable
PaymentSessionConfig.ShippingInformationValidator
andPaymentSessionConfig.ShippingMethodsFactory
- #1958 Add validation for PaymentIntent and SetupIntent client secrets
- #1959 Upgrade 3DS2 SDK to
2.2.6
stripe-android v12.7.0
- #1915 Update API version to 2019-12-03
- #1928 Make Payment Method
Wallet
a sealed class - #1930 Update text size for
CardInputWidget
fields - #1939 Update Android Gradle Plugin to
3.5.3
- #1946 Upgrade 3DS2 SDK to
2.2.5
- Upgrade to
com.google.android.material:material:1.2.0-alpha2
- Upgrade to
- #1949 Catch
NullPointerException
when callingStripeEditText.setHint()
.
This is a workaround for a known issue on some Samsung devices. - #1951 Expose ability to enable postal code on
CardInputWidget
- Enable via layout
<com.stripe.android.view.CardInputWidget android:id="@+id/card_input_widget" android:layout_width="match_parent" android:layout_height="wrap_content" app:shouldShowPostalCode="true" />
- Enable via code
- Java:
cardInputWidget.setPostalCodeEnabled(true)
- Kotlin:
cardInputWidget.postalCodeEnabled = true
- Java:
- Enable via layout
stripe-android v12.6.1
- #1897 Upgrade 3DS2 SDK to 2.2.4
- Fix crash when using Instant App
stripe-android v12.6.0
- #1859 Create
GooglePayJsonFactory
, a factory for generating Google Pay JSON request objects - #1860 Namespace drawables with
stripe_
prefix - #1861 Create
GooglePayResult
to parse and model Google Pay Payment Data response - #1863 Complete migration of SDK code to Kotlin 🎉
- #1864 Make Klarna Source creation methods public and create example
- See
SourceParams.createKlarna()
- See
- #1865 Make all model classes implement
Parcelable
- #1871 Simplify configuration of example app
- Example app can be configured via
$HOME/.gradle/gradle.properties
instead ofSettings.kt
STRIPE_EXAMPLE_BACKEND_URL=https://hidden-beach-12345.herokuapp.com/ STRIPE_EXAMPLE_PUBLISHABLE_KEY=pk_test_12345 STRIPE_ACCOUNT_ID=
- Example app can be configured via
- #1883 Enable
PaymentSessionConfig.ShippingInformationValidator
andPaymentSessionConfig.ShippingMethodsFactory
- See the Migration Guide for an example of how to use the new interfaces
- #1884 Mark
PaymentFlowExtras
as deprecated - #1885 Create
Stripe#retrieveSource()
for asynchronousSource
retrieval - #1890 Upgrade 3DS2 SDK to 2.2.3
- Fix crash when using Instant App
stripe-android v12.5.0
- #1836 Add support for statement_descriptor field to
Source
model viaSource#statementDescriptor
- #1837 Add support for source_order param via
SourceOrderParams
- #1839 Add support for source_order field to
Source
model viaSource#sourceOrder
- #1842 Add
PaymentSessionConfig.Builder.setAllowedShippingCountryCodes()
. Used to specify an allowed set of countries when collecting the customer's shipping address viaPaymentSession
.// Example PaymentSessionConfig.Builder() // only allowed US and Canada shipping addresses .setAllowedShippingCountryCodes(setOf("US", "CA")) .build()
- #1845 Fix country code validation in
PaymentFlowActivity
's shipping information screen- Require that the customer submits a country that exists in the autocomplete dropdown
- Show error UI when the submitted country fails validation
- #1857 Fix crash related to Kotlin Coroutines
- Downgrade
kotlinx-coroutines
from1.3.2
to1.3.0
- Add Proguard rules
- Downgrade
stripe-android v12.4.0
- #1792 Remove default selection of a Payment Method from
PaymentMethodsActivity
- #1797 Document
StripeDefaultTheme
style - #1799 Document
Stripe3DS2Theme
and related styles - #1809 Update to Gradle 6.0
- #1810 Update API version to 2019-11-05
- #1812 Upgrade 3DS2 SDK to 2.2.2
- #1813 Don't select a new PaymentMethod after deleting one in
PaymentMethodsActivity
- #1820 Update
PaymentMethodsActivity
result andPaymentSession.handlePaymentData()
logicPaymentMethodsActivity
returns result code ofActivity.RESULT_OK
when the user selected a Payment MethodPaymentMethodsActivity
returns result code ofActivity.RESULT_CANCELED
when the user taps back via the toolbar or device back buttonPaymentSession#handlePaymentData()
now callsPaymentSessionListener#onPaymentSessionDataChanged()
for any result fromPaymentMethodsActivity
stripe-android v12.3.0
- #1775 Add support for idempotency key on Stripe Token API requests
- #1777 Make
Card
implementParcelable
- #1781 Mark
Stripe#createToken()
as@Deprecated
; replace withStripe#createCardToken()
- #1782 Mark
Stripe#authenticatePayment()
andStripe#authenticateSetup()
as@Deprecated
; replace withStripe#handleNextActionForPayment()
andStripe#handleNextActionForSetupIntent()
, respectively - #1784 Update API version to 2019-10-17
- #1787 Fix
CardNumberEditText
performance - #1788 Fix
ExpiryDateEditText
performance