Closed costafotjet closed 1 month ago
Any other updates on getting 3.2.1 approved?
Nope. Tried com.braintreepayments.api:drop-in:5.4.2 and com.braintreepayments.api:drop-in:5.4.0. Same rejection.
Our teams are actively working with Google and investigating internally to resolve this issue and provide an updated version of the SDK. We have identified that the root cause of this violation is due to user location data access for fraud prevention purposes within an internal library. See Google’s best practices for additional information.
Version 3 of the Braintree Android SDK has been unsupported since June 2023, and we are not able to provide any updates to this version of the SDK. This fix will only be available for versions 4 and later when available. We encourage you to begin the process to upgrade to v4 of the Braintree Android SDK to be able to include the version of the SDK that includes this fix when available.
In the meantime, please file an appeal with the Play Store and request an extension to allow time to upgrade and for this fix to be released. These extensions may be allowed for 30-60 days. In the appeal please include that you are requesting an extension while a fix in the underlying Braintree/PayPal SDK with location access is being developed. If location is expected to be gathered based on the function of your app (ex: travel), please include that information in the appeal. After submitting the appeal, please reach out to Braintree Support with the package ID of your appeal request.
Hi, the upgrade of Android SDK to v4, requires any server-side updates? Because, in my case, the server-side was implemented by another company and I don't know if they could accomodate the upgrade.
Our current dependencies:
Thanks
Hi @nrferreira can you share a code snippet of your v3
data collector integration?
Hi @sshropshire, we don't have any code for data collector. We just declare this dependency:
implementation 'com.braintreepayments.api:braintree:3.21.1'
So, data-collector (and the others) are additional sub-dependencies that we don’t explicitly declare.
@nrferreira ok thanks. Your app's integration shouldn't require any server-side changes then. Have a look at our MIGRATION_GUIDE.md and the official docs site for details on upgrading to v4
.
Hello @sarahkoop,
Thank you for the update. Can I ask when do you estimate this fix could be released?
Hi @sarahkoop, thanks for the info. For us the integration of the v4 has major impacts, any updates on the v3 fix availability?
Hi all - Thanks for your patience while we worked to resolve this issue!
This fix has been released in Braintree Android 4.45.0
and Braintree Android Drop In 6.16.0
.
Version 3 of the Braintree Android SDK and version 5 of the Braintree Android Drop In SDK are unsupported, and we will not be able to update those versions - please upgrade to a supported version of the SDK for this fix.
We are in the process of updating our developer documentation with the changes, but you can find the additional parameters added in the CHANGELOG.
A new hasUserLocationConsent
parameter has been added to applicable request objects throughout the SDK.
Merchant applications are responsible for collecting user data consent. If your app has obtained consent from the user to collect location data in compliance with Google Play Developer Program policies, set hasUserLocationConsent
to true
. This flag enables PayPal to collect necessary information required for Fraud Detection and Risk Management.
Please update to the latest version of the SDK and update your integration to pass hasUserLocationConsent
where available. Make sure you have updated ALL versions of your app, package, or build before re-releasing to the Play Store. If you continue to experience this issue, please include a screenshot of the rejection email from Google including the flagged library in your comment.
So is it mandatory now to ask for consent manually and pass hasUserLocationConsent: true
in order for google to approve an app?
We upgraded to 4.45.0 without changing how SDK was executed and got same rejection as before:
![image](https://github.com/braintree/braintree_android/assets/1577804/da5ff7c5-da46-4d47-8421-9d62672ed70f)
``` > Configure project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project :ekreative_react-native-braintree +--- project :ekreative_react-native-braintree | +--- com.braintreepayments.api:data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 | | | +--- com.braintreepayments.api:browser-switch:2.6.1 | | | +--- com.braintreepayments.api:shared-utils:4.45.0 | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:google-pay:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:paypal:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | | \--- com.braintreepayments.api:paypal-data-collector:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 | | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | +--- com.braintreepayments.api:paypal:4.45.0 (*) | +--- com.braintreepayments.api:three-d-secure:4.45.0 | | +--- com.braintreepayments.api:braintree-core:4.45.0 (*) | | +--- com.braintreepayments.api:card:4.45.0 (*) | | +--- org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5 | \--- com.braintreepayments.api:card:4.45.0 (*) +--- project ekreative_react-native-braintree (n) ```
@olessavluk The version of data collector (3.21.0) included in the email from Google is from the previous Braintree SDK version - so this looks like there are still tracks or versions of your app that have not been fully updated. The below steps may help to fully update your app with the latest version:
Thanks, we got approved now 🎉 Apparently sercet was in setting roll out to 100% and not less 🤦
@sarahkoop thank you for providing the updates while we have the same issue when updating braintree SDK. We are doing an e-shop App. Now, our app dev says there will be a location permission popup to ask the user to 'Allow App to access location'. What if the user clicks 'Deny' then the SDK would never launch which means the user cannot pay. Is it how it works?
I mean as a user experience point of view by adding a location permission popup is weird before payment. And is there any way to bypass collecting user location data to allow the user to pay (launch SDK) when the user clicks 'Deny'?
Thanks
@sarahkoop thank you for providing the updates while we have the same issue when updating braintree SDK. We are doing an e-shop App. Now, our app dev says there will be a location permission popup to ask the user to 'Allow App to access location'. What if the user clicks 'Deny' then the SDK would never launch which means the user cannot pay. Is it how it works?
I mean as a user experience point of view by adding a location permission popup is weird before payment. And is there any way to bypass collecting user location data to allow the user to pay (launch SDK) when the user clicks 'Deny'?
Thanks
If your app does not have consent to collect user location data (for example, if the user has "denied" the pop-up), then pass false
for the hasUserLocationConsent
parameter. This will still allow the SDK to be used for payment, but will not allow user location data to be collected for Fraud Protection and Risk Management.
Braintree SDK Version
3.21.1
Environment
Production
Android Version & Device
No response
Braintree dependencies
com.braintreepayments.api:braintree:3.21.1
Describe the bug
We recently updated from 3.14.0 to 3.21.1. This might look similar to others, but the messaging is different from Google, I guess due to having used 3.14.0 for so long.
The messaging in https://github.com/braintree/braintree_android/issues/783 is about persistent device identifiers, which is not the case here.
We previously dismissed this issue, after reading up on similar issues here, by upgrading from 3.14.0 to 3.21.1.
We also updated all unused tracks, apks by uploading new builds that only include
com.braintreepayments.api:braintree:3.21.1
.The warning from Google is still there, referencing old builds that have been replaced in all tracks, and the deadline is moving closer. When we appealed, we were told the latest release, that definitely includes 3.21.1, is not compliant, which does not make sense.
Maybe Google is at fault here for not removing the warning yet? Looking at the diff here, the location lookup is removed between 3.14.0 and 3.21.1 - https://github.com/braintree/braintree_android/compare/3.14.0...3.21.1.
Can you confirm that 3.21.1 does not collect anything related to location?
Upgrading to v4+ is a major piece of work that is not feasible in a few days.
To reproduce
Release an app to the Play store using com.braintreepayments.api:braintree:3.21.1
Expected behavior
The app is not flagged by Google.
Screenshots