#Yegor-google-pay
1 messages · Page 1 of 1 (latest)
Can you give an example/instance of another payment processor using a different browser with Google Pay? Do you have a URL to a payments page that allows for this?
Sure, try NordVPN for example: https://nordcheckout.com/?product_group=nordvpn&cart_id=6cec4b9c-5c28-48b2-a5cb-f731f470cabe
Google Pay always shows up, in all browsers, and asks you to sign in into a Google account.
In fact, your integration works like this too, if you "trick it" (see video). So Stripe explicitly went out of the way to prevent this type of flow, and Im puzzled why. We're literally missing out on sales from users who don't use Chrome.
Notice the 2nd tab was opened while I was logged in into Chrome. It correctly asked me to sign in. If I refresh the page, then I'll be greeted with a "Either your browser does not support the Payment Request API, or you do not have a saved payment method. " message.
That's a valid mention. We definitely track feature requests, so if you'd like, you;re welcome to open a thread with support to have them send the feedback to the product team: https://support.stripe.com/contact/email
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
I reported this issue to your support, exactly 1 year ago (June 14th 2021), they reproduced it. Yet absolutely nothing changed. I was told:
I checked with the Stripe.js team and they explained that currently, PaymentRequest Button is only intended to show when a user is correctly set up for Google or Apple Pay (i.e. logged in to the browser and having a card set up).
They're considering the "log in" edge case that you demonstrated as a bug or rather, a non intended edge case "feature" and are going to keep the existing behavior for now.
That... makes no sense. Why would you discourage users from paying?
Especially since it all works. I can login using this "trick" and make a successful payment.
This has to do ultimately with the browser's implementation of the PaymentRequest API https://developer.chrome.com/blog/payment-request-updates/#canmakepayment google only returns true if payment methods are actively available.
If google pay was available but no payment methods were there or you'd need to log in you could see worse conversion rates than just by not offering it (since people often hate clicking something only to be told to do more work)
But that doesn't seem to be the case. This demo works in all browsers, and regardless of Google Account state.
https://developers.google.com/pay/api/web/guides/resources/demos
that isn't a PaymentRequest implementation of Google Pay though
This is where Google naming is amazing
I'm not exactly sure what the difference is between the 2, but the example on Google site clearly works as expected, in all browsers. Why isn't stripe following these conventions?
Just always showing the Google Pay button instead of doing the check makes it work, as demoed in the video.
The PaymentRequest button (https://stripe.com/docs/stripe-js/elements/payment-request-button) refers to Stripe's ability to process payments by obtaining card information directly from browser APIs, so in Chrome its Google Pay in Safari its Apple Pay, etc. These are APIs the browser itself exposes to provide payment information
I understand, but Google Pay works even without those APIs, by simply logging in into a Google Account in any other browser. Why is your integration so limited, when it doesn't have to be?
and is there anything we can do to do a direct integration with Google Pay, while still using stripe as a processor?
https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist
The Google Pay API supports Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Edge, Opera, and UCWeb UC Browser.
The PaymentRequestButton follows the industry web standards for how these buttons should work so that users are provided with the button that most likely applies to them. That said https://developers.google.com/pay/api/web/guides/tutorial#tokenization talks a bit about how to specify your payment provider and do tokenization
https://www.w3.org/TR/payment-request/ (the standard the Payment Request button implements)
This specification standardizes an API to allow merchants (i.e. web
sites selling physical or digital goods) to utilize one or more payment
methods with minimal integration. User agents (e.g., browsers)
facilitate the payment flow between merchant and user.
I just checked the docs you sent earlier, they litreally state:
canMakePayment
In addition to the API availability, you can check to see if a user has an active payment method before invoking the Payment Request API. Remember that this is optional as users can still add a new payment method on the payment UI.
This step is optional as per the docs, for the exact problem Im trying to work around.
Even if you skipped that check, the payment request api calls the browser's payment api which would be specific to the payment implementation the browser supports (so you would never get Google Pay on safari)
That, is not true. Google Docs say this exactly:
The Google Pay API supports Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Edge, Opera, and UCWeb UC Browser.
Yes, but we're talking about two different things. The Google Pay direct javascript integration and the Payment Request API (which is what Stripe supports)
For a variety of reasons, the integration available via Elements / Stripe js is a wrapper on the Payment Request API
So you're saying there is absolutely no way to use Google Pay with Stripe using any other browser, except Chrome? If we wanted to do that, we have to get a new payment processor, is that correct?
and there is no other way to integrate it?
This talks about integrating directly with Google and being able to specify your payment processor https://developers.google.com/pay/api/web/guides/tutorial#tokenization
So this is the only way to support all browsers, while still using Stripe?
To my knowledge, yes
Though you'd want to measure the potential conversion risks of overloading customers with payment options (theres been a few different studies on this)
Its not really overloading, its as simple as "Im on a Mac using Safari, and I wanna pay for your service using Google Pay - button isn't showing up"
and we gotta tell the customers "Install Chrome, login, and then you can use GPay". Nobody is doing this, and they're moving on.
Many people prefer not to be signed in into their Google account, even while using Chrome, especially privacy conscious individuals. These folks can't pay either.
The takeaway here is that you should update your integration. We're gonna spend dev time doing a direct one, but this should have been unnecessary.