Releases: braintree/braintree_android
Releases · braintree/braintree_android
5.2.0
- GooglePay
- Fix a crash being caused on API 33 devices. It is recommended that merchants not use 5.1.0 for GooglePay.
- Shopper Insights (BETA)
- For analytics, send
experiment
as a parameter togetRecommendedPaymentMethods
method - For analytics, send
experiment
andpaymentMethodsDisplayed
analytic metrics to FPTI via the button presented event methods
- For analytics, send
5.1.0
- PayPal
- Add
PayPalRecurringBillingDetails
andPayPalRecurringBillingPlanType
opt-in request objects. Including these details will provide transparency to users on their billing schedule, dates, and amounts, as well as launch a modernized checkout UI. - Add
userPhoneNumber
property toPayPalVaultRequest
andPayPalCheckoutRequest
- Add
5.0.0
-
PayPal
- Add PayPal App Switch vault flow (BETA)
- Add
enablePayPalAppSwitch
property toPayPalVaultRequest
for App Switch support - Require
PayPalVaultRequest.userAuthenticationEmail
for App Switch support - Require
PayPalClient.appLinkReturnUrl
for App Switch support - Send
link_type
andpaypal_installed
inevent_params
when available to PayPal's analytics service (FPTI) - Note: This feature is currently in beta and may change or be removed in future releases.
- Add
- Add PayPal App Switch vault flow (BETA)
-
GooglePay
- Upgrade
play-services-wallet
to19.4.0
- Upgrade
-
Breaking Changes
- Venmo
- Convert
VenmoPaymentMethodUsage
to an enum - Convert
VenmoLineItemKind
to an enum - Make
VenmoPaymentAuthRequestParams
internal - Remove
VenmoPaymentAuthResultInfo
- Convert
- BraintreeCore
- Remove
BraintreeDeepLinkActivity
- Remove
authorizationFingerprint
fromClientToken
- Remove
- GooglePay
- Make
GooglePayPaymentAuthRequestParams
internal - Make
GooglePayPaymentAuthResult
parameters internal - Update
GooglePayLauncher.launch
to take aGooglePayPaymentAuthRequest.ReadyToLaunch
parameter - Remove
GooglePayRequest.setTransactionInfo
and replace withcurrencyCode
,totalPrice, and
totalPriceStatus` parameters - Change
GooglePayRequest.billingAddressFormat
toGooglePayBillingAddressFormat
enum - Change
GooglePayRequest.shippingAddressRequirements
toGooglePayRequest.shippingAddressParameters
- Make
- PayPal
- Make
PayPalPaymentAuthRequestParams
internal - Remove
PayPalPaymentAuthResultInfo
- Rename
PayPalLauncher.handleReturnToAppFromBrowser()
toPayPalLauncher.handleReturnToApp()
- Make
- SEPADirectDebit
- Make
SEPADirectDebitPaymentAuthRequestParams
internal - Remove
SEPADirectDebitPaymentAuthResultInfo
- Rename
SEPADirectDebitLauncher.handleReturnToAppFromBrowser()
toSEPADirectDebitLauncher.handleReturnToApp()
- Make
- ThreeDSecure
- Make
ThreeDSecureParams
internal - Make
ThreeDSecurePaymentAuthResult
parameters internal - Remove
ThreeDSecurePaymentAuthResultInfo
- Make
- LocalPayment
- Remove
LocalPaymentAuthResultInfo
- Make
LocalPaymentAuthRequestParams
internal - Rename
LocalPaymentLauncher.handleReturnToAppFromBrowser()
toLocalPaymentLauncher.handleReturnToApp()
- Remove
- Venmo
Note: Includes all changes in 5.0.0-beta2 and 5.0.0-beta1
5.0.0-beta2
- All Modules
- Upgrade Gradle version to
8.5.2
- Upgrade
compileSdkVersion
andtargetSdkVersion
to API 35 - Bump target Java version to Java 17
- Upgrade Gradle version to
- BraintreeCore
- Update
endpoint
syntax sent to FPTI for 3D Secure and Venmo flows
- Update
- ThreeDSecure
- Update
ThreeDSecureActivity
theme attributes to prevent the Action Bar title from displaying and enforce transparency properly with AppCompat theme attributes
- Update
- Breaking Changes
- All Modules
countryCodeAlpha2
now returns a 2 character country code instead of a 3 character country code
- PayPal
- Remove
appLinkEnabled
fromPayPalRequest
as Android app links are now required - Update
PayPalCreditFinancing.hasPayerAcceptance()
togetHasPayerAcceptance()
(Java) - Change
PayPalPaymentIntent
to an enum - Change
PayPalLandingPageType
to an enum - Change
PayPalPaymentUserAction
to an enum - Update
PayPalRequest.hasUserLocationConsent()
togetHasUserLocationConsent()
(Java) - Change
PayPalLineItem.desc()
tosetDescription()
- Change
PayPalLineItemKind
to an enum - Rename
PayPalLineItemKind.KIND_CREDIT
toCREDIT
- Rename
PayPalLineItemKind.KIND_DEBIT
toDEBIT
- Update
ThreeDSSecureInfo.isLiabilityShifted()
toThreeDSSecureInfo.getLiabilityShifted()
- Update
ThreeDSSecureInfo.isLiabilityShiftPossible()
toThreeDSSecureInfo.getLiabilityShiftPossible()
- Update
ThreeDSSecureInfo.wasVerified()
toThreeDSSecureInfo.getWasVerified()
- Update
ThreeDSecurePaymentAuthResult.getThreeSecureResult()
toThreeDSecurePaymentAuthResult.getThreeDSecureParams()
- Update
ThreeDSecurePaymentAuthResult.getJWT()
toThreeDSecurePaymentAuthResult.getJwt()
- Change
ThreeDSecureShippingMethod
to an enum - Change
ThreeDSecureAccountType
to an enum - Change
ThreeDSecureRenderType
to an enum - Change
ThreeDSecureRequestedExemptionType
to an enum - Change
ThreeDSecureUiType
to an enum - Update
ThreeDSecureRequest.isChallengeRequested()
toThreeDSecureRequest.getChallengeRequested()
- Update
ThreeDSecureRequest.isDataOnlyRequested()
toThreeDSecureRequest.getDataOnlyRequested()
- Update
ThreeDSecureRequest.isExemptionRequested()
toThreeDSecureRequest.getDataOnlyRequested()
- Update
ThreeDSecureRequest.isCardAddChallengeRequested()
toThreeDSecureRequest.getCardAddChallengeRequested()
- Remove
- ThreeDSecure
* SplitThreeDSecureV2UiCustomization.setButtonCustomization()
tosetButtonCustomization()
andsetButtonType()
* ChangeThreeDSecureV2ButtonType
to an enum
- All Modules
5.0.0-beta1
- Breaking Changes
- All Modules
- Bump
minSdkVersion
to API 23 - Bump target Java version to Java 11
- Upgrade Kotlin version to 1.9.10
- Upgrade to Android Gradle Plugin 8
- Bump
- BraintreeCore
- Update package name to
com.braintreepayments.api.core
- Remove
BraintreeClient
public constructors - Remove
deliverBrowserSwitchResult
anddeliverBrowserSwitchResultFromNewTask
fromBraintreeClient
- Remove
ClientTokenProvider
- Update payment method constructor parameters from
braintreeClient
tocontext
and
authorization
- Remove
BraintreeSharedPreferencesException
- Convert
PostalAddress
to data class - Remove
open
modifier onConfiguration
- Remove
UserCanceledException.isExplicitCancelation
- Update package name to
- UnionPay
- Remove
union-pay
module- UnionPay cards can now be processed as regular cards (through the
card
module) due to their partnership with Discover
- UnionPay cards can now be processed as regular cards (through the
- Remove
- BraintreeDataCollector
- Update package name to
com.braintreepayments.api.datacollector
- Replace
DataCollector#collectDeviceData(context, merchantId, callback)
with
DataCollector#collectDeviceData(context, riskCorrelationId, callback)
- Add
DataCollectorResult
and updateDataCollectorCallback
parameters
- Update package name to
- PayPalDataCollector
- Remove
paypal-data-collector
module (usedata-collector
)
- Remove
- Venmo
- Update package name to
com.braintreepayments.api.venmo
- Remove
setFallbackToWeb()
fromVenmoRequest
- fallback to web is default behavior now - Remove
VenmoListener
,VenmoTokenizeAccountCallback
, andVenmoResultCallback
- Add
VenmoLauncher
,VenmoPaymentAuthRequest
,VenmoPaymentAuthRequestCallback
,
VenmoPaymentAuthResult
,VenmoResult
,VenmoTokenizeCallback
, and
VenmoLauncherCallback
- Rename
VenmoOnActivityResultCallback
toVenmoResultCallback
- Remove overload constructors,
setListener
, andonActivityResult
fromVenmoClient
- Change
VenmoClient#tokenizeVenmoAccount
parameters and rename to
VenmoClient#tokenize
- Remove
VenmoIsReadyToPayCallback
- Add
VenmoClient#createPaymentAuthRequest
- Move
showVenmoInGooglePlayStore
toVenmoLauncher
- Remove
isVenmoAppSwitchAvailable
andisReadyToPay
(no longer required as Venmo flow will fallback to web if app is not installed)
- Update package name to
- GooglePay
- Update package name to
com.braintreepayments.api.googlepay
- Remove
GooglePayListener
andGooglePayRequestPaymentCallback
- Add
GooglePayLauncher
,GooglePayPaymentAuthRequest
,
GooglePayPaymentAuthRequestCallback
,GooglePayPaymentAuthResult
,
GooglePayTokenizeCallback
,GooglePayTokenizationParameters
andGooglePayLauncherCallback
- Remove overload constructors,
setListener, and
onActivityResultfrom
GooglePayClient` - Change
GooglePayClient#requestPayment
parameters and rename to
GooglePayClient#createPaymentAuthRequest
- Change
GooglePayClient#isReadyToPay
andGooglePayIsReadyToPayCallback
parameters - Add
GooglePayClient#tokenize
- Remove
merchantId
fromGooglePayRequest
- Change
GooglePayGetTokenizationParametersCallback
parameters - Rename
GooglePayLauncherCallback#onResult
to
GooglePayLauncherCallback#onGooglePayLauncherResult
- Update package name to
- ThreeDSecure
- Remove
ThreeDSecureListener
- Add
ThreeDSecureLauncher
,ThreeDSecurePaymentAuthResult
,
ThreeDSecureTokenizeCallback
,ThreeDSecurePaymentAuthRequest
,
ThreeDSecurePaymentAuthRequestCallback
,ThreeDSecurePrepareLookupResult
,
ThreeDSecurePrepareLookupCallback
, andThreeDSecureLancherCallback
- Remove overload constructors,
setListener
,continuePerformVerification
,onBrowserSwitchResult
andonActivityResult
fromThreeDSecureClient
- Change
ThreeDSecureClient#initializeChallengeWithLookupResponse
parameters - Convert
ThreeDSecureResult
into sealed class - Add
ThreeDSecureClient#tokenize
- Rename
ThreeDSecureClient#performVerification
to
ThreeDSecureClient#createPaymentAuthRequest
and change parameters - Remove
versionRequested
fromThreeDSecureRequest
- Add
ThreeDSecureNonce
class - Rename
ThreeDSecureResult#tokenizedCard
toThreeDSecureResult#threeDSecureNonce
- Remove
ThreeDSecureV1UICustomization
- Remove
versionRequesed
fromThreeDSecureRequest
as version 1 is no longer supported - Remove
ThreeDSecureV2BaseCustomization
- Remove
CardinalValidateReceiver
fromThreeDSecureActivity
- Make empty
ThreeDSecureLookup
constructor package-private
- Remove
- PayPal
- Update package name to
com.braintreepayments.api.paypal
- Require Android App Links to return to merchant app from PayPal flows
- Remove
PayPalListener
- Add
PayPalLauncher
,PayPalPaymentAuthRequest
,PayPalPendingRequest
,PayPalPaymentAuthResult
,
PayPalPaymentAuthCallback
,PayPalTokenizeCallback
, andPayPalResult
- Remove
PayPalFlowStartedCallback
- Remove overload constructors,
setListener
,parseBrowserSwitchResult
,
clearActiveBrowserSwitchResult
,requestOneTimePayment
, andrequestBillingAgreement
from
PayPalClient
- Rename
PayPalClient#tokenizePayPalAccount
toPayPalClient#createPaymentAuthRequest
and
change parameters - Rename
PayPalClient#onBrowserSwitchResult
toPayPalCient#tokenize
and change parameters
- Update package name to
- LocalPayment
- Remove
LocalPaymentListener
- Add
LocalPaymentLauncher
,LocalPaymentPendingRequest
,LocalPaymentTokenizeCallback
,
LocalPaymentAuthRequest
,LocalPaymentAuthRequestCallback
andLocalPaymentAuthResult
- Change
LocalPaymentResult
type - Remove overload constructors,
setListener
,parseBrowserSwitchResult
,
clearActiveBrowserSwitchResult
,approveLocalPayment
, andapprovePayment
from
LocalPaymentClient
- Rename
LocalPaymentClient#startPayment
toLocalPaymentClient#creatPaymentAuthRequest
and change parameters - Rename
LocalPaymentClient#onBrowserSwithResult
toLocalPaymentClient#tokenize
and
change parameters - Update package name to
com.braintreepayments.api.localpayment
- Remove
- Card
- Update package name to
com.braintreepayments.api.card
- Remove
threeDSecureInfo
fromCardNonce
- Move
ThreeDSecureInfo
tothree-d-secure
module - Add
CardResult
object - Change
CardTokenizeCallback
parameters
- Update package name to
- SEPA Direct Debit
- Update package name to
com.braintreepayments.api.sepadirectdebit
- Remove
SEPADirectDebitLifecycleObserver
andSEPADirectDebitListener
- Add
SEPADirectDebitLauncher
,SEPADirectDebitPendingRequest
,
SEPADirectDebitPaymentAuthRequestCallback
,SEPADirectDebitPaymentAuthRequest
,
SEPADirectDebitResult
,SEPADirectDebitPaymentAuthRequestParams
and
SEPADirectDebitTokenizeCallback
- Remove Fragment or Activity requirement from
SEPADirectDebitClient
constructor - Replace
SEPADirectDebitClient#onBrowserSwitchResult
withSEPADirectDebitClient#tokenize
and
modify parameters - Replace
SEPADirectDebitClient#tokenize
withSEPADirectDebitClient#createPaymentAuthRequest
and modify parameters - Rename
SEPADirectDebitPaymentAuthRequestCallback#onResult
to
SEPADirectDebitPaymentAuthRequestCallback#onSEPADirectDebitPaymentAuthResult
- Update package name to
- Visa Checkout
- Visa checkout is not yet available for v5
- American Express
- Update package name to
com.braintreepayments.api.americanexpress
- Change parameters of
AmericanExpressGetRewardsBalanceCallback
- Add
AmericanExpressResult
- Update package name to
- Samsung Pay
- Remove entire Samsung Pay module
- PayPal Native Checkout
- Remove entire PayPal Native Checkout module
- SharedUtils
- Update package name to
com.braintreepayments.api.sharedutils
- Update package name to
- PayPal Messaging (BETA)
- Remove
BraintreeClient
from constructor - Update package name to
com.braintreepayments.api.paypalmessaging
- Remove
- Shopper Insights (BETA)
- Remove
BraintreeClient
from constructor - Update package name to
com.braintreepayments.api.shopperinsights
- Remove
- All Modules
4.49.1
- PayPal
- Fix issue that causes a JSON parsing error when Pay Later is selected during checkout.
- ShopperInsights (BETA)
- Add error when using an invalid authorization type
4.49.0
- PayPalNativeCheckout (DEPRECATED)
- NOTE: This module is being deprecated and will be removed in the future version of the SDK
- Add deprecated warning message to all public classes and methods
- ThreeDSecure
- Add customFields param to ThreeDSecureRequest
4.48.0
- PayPal
- Fix
PayPalAccountNonce
Null Pointer Exception by ensuring that all@NonNull
values are initialized with a non-null value.
- Fix
- PayPalNativeCheckout
- Fix
PayPalNativeCheckoutAccountNonce
Null Pointer Exception by ensuring that all@NonNull
values are initialized with a non-null value.
- Fix
- BraintreeCore
- Use TLS 1.3 for all HTTP requests, when available
- Refactor TLSCertificatePinning
certInputStream
property to initialize aByteArrayInputStream
once instead of every time the property is accessed.
- ThreeDSecure
- Move Cardinal cleanup from SDK internals into
ThreeDSecureActivity
.
- Move Cardinal cleanup from SDK internals into
4.47.0
- BraintreeCore
- Add
appLinkReturnUri
toBraintreeClient
constructors for Android App Link support (for PayPal web flows only) - Bump
browser-switch
version to2.7.0
- Add
- PayPal
- Add
appLinkEnabled
property toPayPalRequest
for Android App Link support - Add optional property
PayPalCheckoutRequest.setUserAuthenticationEmail()
- Add
- ShopperInsights (BETA)
- Requires opt in -
@OptIn(ExperimentalBetaApi::class)
- Add
ShopperInsightsClient.getRecommendedPaymentMethods()
for returning recommendations based on the buyer
- Requires opt in -
- ThreeDSecure
- Fix issue that causes a black screen to display after successful 3DS validation.
- Venmo
- Send
link_type
inevent_params
to PayPal's analytics service (FPTI)
- Send
4.46.0
- PayPalMessaging (BETA)
- Add
PayPalMessagingRequest
,PayPalMessagingColor
,PayPalMessagingLogoType
,PayPalMessagingOfferType
,PayPalMessagingPageType
,PayPalMessagingTextAlignment
, andPayPalMessagingListener
- Add
PayPalMessagingView(BraintreeClient, Context)
to display PayPal messages to promote offers such as Pay Later and PayPal Credit to customers.- To get started call
PayPalMessagingView#start()
with an optionalPayPalMessagingRequest
- To get started call
- Add