Description of the issue:
I tried making a payment on brave mobile browser using GooglePay using web intent API the details of which can be found here on this razorpay doc -> https://razorpay.com/docs/payment-methods/upi/google-pay/custom-integration/#mobile-web-integration-google-chrome .
This intent is fired if and only if the browser is chrome and the user has GooglePay installed on his mobile device. As Brave’s UserAgent string doesn’t add any signature to identify if the browser is Brave or Chrome, the GooglePay app opens up via web intent as payment starts if the user has the GooglePay app on his mobile device. Apparently GooglePay finds out if it is actually chrome or not, the payment fails with a cryptic error message that says that payment failed as payment information is invalid ( screenshot attached ).
Exact URL of the website in question:
Did the issue present with default Shields settings? (yes/no)
Does the site function as expected when Shields are turned off?
Is there a specific Shields configuration that causes the site to break? If so, tell us that configuration. (yes/no):
Does the site work as expected when using Chrome?
** Possible fix
All other browsers work fine because I can identify the browser name from UserAgent and hence not allow the GooglePay web intent feature on those browsers and provide a different method for payment but since Brave doesn’t divulge any such information in UserAgent, I am blindsided and the payment will always fail. Add something in the UserAgent or remove the web intent flow or ask google to accept web intents from brave in GooglePay.
This is critical for Brave users and they simply can’t pay due to this bug. If I know beforehand as a developer that this won’t work on Brave, I can show a different option for payment for the user./
Brave version (check
1.5.131, Chromium 80.03987.162
OS: Android 10
Phone: SM-G965F Build QP1A.190711.020