Skip to content

Releases: braintree/braintree_android

5.2.0

30 Oct 18:45
Compare
Choose a tag to compare
  • 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 to getRecommendedPaymentMethods method
    • For analytics, send experiment and paymentMethodsDisplayed analytic metrics to FPTI via the button presented event methods

5.1.0

15 Oct 16:09
Compare
Choose a tag to compare
  • PayPal
    • Add PayPalRecurringBillingDetails and PayPalRecurringBillingPlanType 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 to PayPalVaultRequest and PayPalCheckoutRequest

5.0.0

30 Sep 19:11
Compare
Choose a tag to compare
  • PayPal

    • Add PayPal App Switch vault flow (BETA)
      • Add enablePayPalAppSwitch property to PayPalVaultRequest for App Switch support
      • Require PayPalVaultRequest.userAuthenticationEmail for App Switch support
      • Require PayPalClient.appLinkReturnUrl for App Switch support
      • Send link_type and paypal_installed in event_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.
  • GooglePay

    • Upgrade play-services-wallet to 19.4.0
  • Breaking Changes

    • Venmo
      • Convert VenmoPaymentMethodUsage to an enum
      • Convert VenmoLineItemKind to an enum
      • Make VenmoPaymentAuthRequestParams internal
      • Remove VenmoPaymentAuthResultInfo
    • BraintreeCore
      • Remove BraintreeDeepLinkActivity
      • Remove authorizationFingerprint from ClientToken
    • GooglePay
      • Make GooglePayPaymentAuthRequestParams internal
      • Make GooglePayPaymentAuthResult parameters internal
      • Update GooglePayLauncher.launch to take a GooglePayPaymentAuthRequest.ReadyToLaunch parameter
      • Remove GooglePayRequest.setTransactionInfo and replace with currencyCode, totalPrice, and totalPriceStatus` parameters
      • Change GooglePayRequest.billingAddressFormat to GooglePayBillingAddressFormat enum
      • Change GooglePayRequest.shippingAddressRequirements to GooglePayRequest.shippingAddressParameters
    • PayPal
      • Make PayPalPaymentAuthRequestParams internal
      • Remove PayPalPaymentAuthResultInfo
      • Rename PayPalLauncher.handleReturnToAppFromBrowser() to PayPalLauncher.handleReturnToApp()
    • SEPADirectDebit
      • Make SEPADirectDebitPaymentAuthRequestParams internal
      • Remove SEPADirectDebitPaymentAuthResultInfo
      • Rename SEPADirectDebitLauncher.handleReturnToAppFromBrowser() to SEPADirectDebitLauncher.handleReturnToApp()
    • ThreeDSecure
      • Make ThreeDSecureParams internal
      • Make ThreeDSecurePaymentAuthResult parameters internal
      • Remove ThreeDSecurePaymentAuthResultInfo
    • LocalPayment
      • Remove LocalPaymentAuthResultInfo
      • Make LocalPaymentAuthRequestParams internal
      • Rename LocalPaymentLauncher.handleReturnToAppFromBrowser() to LocalPaymentLauncher.handleReturnToApp()

Note: Includes all changes in 5.0.0-beta2 and 5.0.0-beta1

5.0.0-beta2

28 Aug 21:04
Compare
Choose a tag to compare
  • All Modules
    • Upgrade Gradle version to 8.5.2
    • Upgrade compileSdkVersion and targetSdkVersion to API 35
    • Bump target Java version to Java 17
  • BraintreeCore
    • Update endpoint syntax sent to FPTI for 3D Secure and Venmo flows
  • ThreeDSecure
    • Update ThreeDSecureActivity theme attributes to prevent the Action Bar title from displaying and enforce transparency properly with AppCompat theme attributes
  • Breaking Changes
    • All Modules
      • countryCodeAlpha2 now returns a 2 character country code instead of a 3 character country code
    • PayPal
      • Remove appLinkEnabled from PayPalRequest as Android app links are now required
      • Update PayPalCreditFinancing.hasPayerAcceptance() to getHasPayerAcceptance() (Java)
      • Change PayPalPaymentIntent to an enum
      • Change PayPalLandingPageType to an enum
      • Change PayPalPaymentUserAction to an enum
      • Update PayPalRequest.hasUserLocationConsent() to getHasUserLocationConsent() (Java)
      • Change PayPalLineItem.desc() to setDescription()
      • Change PayPalLineItemKind to an enum
      • Rename PayPalLineItemKind.KIND_CREDIT to CREDIT
      • Rename PayPalLineItemKind.KIND_DEBIT to DEBIT
      • Update ThreeDSSecureInfo.isLiabilityShifted() to ThreeDSSecureInfo.getLiabilityShifted()
      • Update ThreeDSSecureInfo.isLiabilityShiftPossible() to ThreeDSSecureInfo.getLiabilityShiftPossible()
      • Update ThreeDSSecureInfo.wasVerified() to ThreeDSSecureInfo.getWasVerified()
      • Update ThreeDSecurePaymentAuthResult.getThreeSecureResult() to ThreeDSecurePaymentAuthResult.getThreeDSecureParams()
      • Update ThreeDSecurePaymentAuthResult.getJWT() to ThreeDSecurePaymentAuthResult.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() to ThreeDSecureRequest.getChallengeRequested()
      • Update ThreeDSecureRequest.isDataOnlyRequested() to ThreeDSecureRequest.getDataOnlyRequested()
      • Update ThreeDSecureRequest.isExemptionRequested() to ThreeDSecureRequest.getDataOnlyRequested()
      • Update ThreeDSecureRequest.isCardAddChallengeRequested() to ThreeDSecureRequest.getCardAddChallengeRequested()
    • ThreeDSecure
      * Split ThreeDSecureV2UiCustomization.setButtonCustomization() to setButtonCustomization() and setButtonType()
      * Change ThreeDSecureV2ButtonType to an enum

5.0.0-beta1

23 Jul 14:59
Compare
Choose a tag to compare
  • 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
    • BraintreeCore
      • Update package name to com.braintreepayments.api.core
      • Remove BraintreeClient public constructors
      • Remove deliverBrowserSwitchResult and deliverBrowserSwitchResultFromNewTask from BraintreeClient
      • Remove ClientTokenProvider
      • Update payment method constructor parameters from braintreeClient to context and
        authorization
      • Remove BraintreeSharedPreferencesException
      • Convert PostalAddress to data class
      • Remove open modifier on Configuration
      • Remove UserCanceledException.isExplicitCancelation
    • UnionPay
      • Remove union-pay module
        • UnionPay cards can now be processed as regular cards (through the card module) due to their partnership with Discover
    • BraintreeDataCollector
      • Update package name to com.braintreepayments.api.datacollector
      • Replace DataCollector#collectDeviceData(context, merchantId, callback) with
        DataCollector#collectDeviceData(context, riskCorrelationId, callback)
      • Add DataCollectorResult and update DataCollectorCallback parameters
    • PayPalDataCollector
      • Remove paypal-data-collector module (use data-collector)
    • Venmo
      • Update package name to com.braintreepayments.api.venmo
      • Remove setFallbackToWeb() from VenmoRequest - fallback to web is default behavior now
      • Remove VenmoListener, VenmoTokenizeAccountCallback, and VenmoResultCallback
      • Add VenmoLauncher, VenmoPaymentAuthRequest, VenmoPaymentAuthRequestCallback,
        VenmoPaymentAuthResult, VenmoResult, VenmoTokenizeCallback, and
        VenmoLauncherCallback
      • Rename VenmoOnActivityResultCallback to VenmoResultCallback
      • Remove overload constructors, setListener, and onActivityResult from VenmoClient
      • Change VenmoClient#tokenizeVenmoAccount parameters and rename to
        VenmoClient#tokenize
      • Remove VenmoIsReadyToPayCallback
      • Add VenmoClient#createPaymentAuthRequest
      • Move showVenmoInGooglePlayStore to VenmoLauncher
      • Remove isVenmoAppSwitchAvailable and isReadyToPay (no longer required as Venmo flow will fallback to web if app is not installed)
    • GooglePay
      • Update package name to com.braintreepayments.api.googlepay
      • Remove GooglePayListener and GooglePayRequestPaymentCallback
      • Add GooglePayLauncher, GooglePayPaymentAuthRequest,
        GooglePayPaymentAuthRequestCallback, GooglePayPaymentAuthResult,
        GooglePayTokenizeCallback, GooglePayTokenizationParameters and GooglePayLauncherCallback
      • Remove overload constructors, setListener, and onActivityResultfromGooglePayClient`
      • Change GooglePayClient#requestPayment parameters and rename to
        GooglePayClient#createPaymentAuthRequest
      • Change GooglePayClient#isReadyToPay and GooglePayIsReadyToPayCallback parameters
      • Add GooglePayClient#tokenize
      • Remove merchantId from GooglePayRequest
      • Change GooglePayGetTokenizationParametersCallback parameters
      • Rename GooglePayLauncherCallback#onResult to
        GooglePayLauncherCallback#onGooglePayLauncherResult
    • ThreeDSecure
      • Remove ThreeDSecureListener
      • Add ThreeDSecureLauncher, ThreeDSecurePaymentAuthResult,
        ThreeDSecureTokenizeCallback, ThreeDSecurePaymentAuthRequest,
        ThreeDSecurePaymentAuthRequestCallback, ThreeDSecurePrepareLookupResult,
        ThreeDSecurePrepareLookupCallback, and ThreeDSecureLancherCallback
      • Remove overload constructors, setListener, continuePerformVerification, onBrowserSwitchResult and onActivityResult from ThreeDSecureClient
      • Change ThreeDSecureClient#initializeChallengeWithLookupResponse parameters
      • Convert ThreeDSecureResult into sealed class
      • Add ThreeDSecureClient#tokenize
      • Rename ThreeDSecureClient#performVerification to
        ThreeDSecureClient#createPaymentAuthRequest and change parameters
      • Remove versionRequested from ThreeDSecureRequest
      • Add ThreeDSecureNonce class
      • Rename ThreeDSecureResult#tokenizedCard to ThreeDSecureResult#threeDSecureNonce
      • Remove ThreeDSecureV1UICustomization
      • Remove versionRequesed from ThreeDSecureRequest as version 1 is no longer supported
      • Remove ThreeDSecureV2BaseCustomization
      • Remove CardinalValidateReceiver from ThreeDSecureActivity
      • Make empty ThreeDSecureLookup constructor package-private
    • 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, and PayPalResult
      • RemovePayPalFlowStartedCallback
      • Remove overload constructors, setListener, parseBrowserSwitchResult,
        clearActiveBrowserSwitchResult, requestOneTimePayment, and requestBillingAgreement from
        PayPalClient
      • Rename PayPalClient#tokenizePayPalAccount to PayPalClient#createPaymentAuthRequest and
        change parameters
      • Rename PayPalClient#onBrowserSwitchResult to PayPalCient#tokenize and change parameters
    • LocalPayment
      • Remove LocalPaymentListener
      • Add LocalPaymentLauncher, LocalPaymentPendingRequest, LocalPaymentTokenizeCallback,
        LocalPaymentAuthRequest, LocalPaymentAuthRequestCallback and LocalPaymentAuthResult
      • Change LocalPaymentResult type
      • Remove overload constructors, setListener, parseBrowserSwitchResult,
        clearActiveBrowserSwitchResult, approveLocalPayment, and approvePayment from
        LocalPaymentClient
      • Rename LocalPaymentClient#startPayment to LocalPaymentClient#creatPaymentAuthRequest
        and change parameters
      • Rename LocalPaymentClient#onBrowserSwithResult to LocalPaymentClient#tokenize and
        change parameters
      • Update package name to com.braintreepayments.api.localpayment
    • Card
      • Update package name to com.braintreepayments.api.card
      • Remove threeDSecureInfo from CardNonce
      • Move ThreeDSecureInfo to three-d-secure module
      • Add CardResult object
      • Change CardTokenizeCallback parameters
    • SEPA Direct Debit
      • Update package name to com.braintreepayments.api.sepadirectdebit
      • Remove SEPADirectDebitLifecycleObserver and SEPADirectDebitListener
      • Add SEPADirectDebitLauncher, SEPADirectDebitPendingRequest,
        SEPADirectDebitPaymentAuthRequestCallback, SEPADirectDebitPaymentAuthRequest,
        SEPADirectDebitResult, SEPADirectDebitPaymentAuthRequestParams and
        SEPADirectDebitTokenizeCallback
      • Remove Fragment or Activity requirement from SEPADirectDebitClient constructor
      • Replace SEPADirectDebitClient#onBrowserSwitchResult with SEPADirectDebitClient#tokenize and
        modify parameters
      • Replace SEPADirectDebitClient#tokenize withSEPADirectDebitClient#createPaymentAuthRequest
        and modify parameters
      • Rename SEPADirectDebitPaymentAuthRequestCallback#onResult to
        SEPADirectDebitPaymentAuthRequestCallback#onSEPADirectDebitPaymentAuthResult
    • 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
    • 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
    • PayPal Messaging (BETA)
      • Remove BraintreeClient from constructor
      • Update package name to com.braintreepayments.api.paypalmessaging
    • Shopper Insights (BETA)
      • Remove BraintreeClient from constructor
      • Update package name to com.braintreepayments.api.shopperinsights

4.49.1

15 Jul 19:29
Compare
Choose a tag to compare
  • 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

08 Jul 21:18
Compare
Choose a tag to compare
  • 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

02 Jul 16:13
Compare
Choose a tag to compare
  • PayPal
    • Fix PayPalAccountNonce Null Pointer Exception by ensuring that all @NonNull values are initialized with a non-null value.
  • PayPalNativeCheckout
    • Fix PayPalNativeCheckoutAccountNonce Null Pointer Exception by ensuring that all @NonNull values are initialized with a non-null value.
  • BraintreeCore
    • Use TLS 1.3 for all HTTP requests, when available
    • Refactor TLSCertificatePinning certInputStream property to initialize a ByteArrayInputStream once instead of every time the property is accessed.
  • ThreeDSecure
    • Move Cardinal cleanup from SDK internals into ThreeDSecureActivity.

4.47.0

06 Jun 19:56
Compare
Choose a tag to compare
  • BraintreeCore
    • Add appLinkReturnUri to BraintreeClient constructors for Android App Link support (for PayPal web flows only)
    • Bump browser-switch version to 2.7.0
  • PayPal
    • Add appLinkEnabled property to PayPalRequest for Android App Link support
    • Add optional property PayPalCheckoutRequest.setUserAuthenticationEmail()
  • ShopperInsights (BETA)
    • Requires opt in - @OptIn(ExperimentalBetaApi::class)
    • Add ShopperInsightsClient.getRecommendedPaymentMethods() for returning recommendations based on the buyer
  • ThreeDSecure
    • Fix issue that causes a black screen to display after successful 3DS validation.
  • Venmo
    • Send link_type in event_params to PayPal's analytics service (FPTI)

4.46.0

30 May 16:16
Compare
Choose a tag to compare
  • PayPalMessaging (BETA)
    • Add PayPalMessagingRequest, PayPalMessagingColor, PayPalMessagingLogoType, PayPalMessagingOfferType, PayPalMessagingPageType, PayPalMessagingTextAlignment, and PayPalMessagingListener
    • 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 optional PayPalMessagingRequest