Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In-app purchases with multiple accounts #2

Closed
TonyTangAndroid opened this issue Jan 7, 2016 · 124 comments
Closed

In-app purchases with multiple accounts #2

TonyTangAndroid opened this issue Jan 7, 2016 · 124 comments

Comments

@TonyTangAndroid
Copy link

Hey there, there will be issue when users have multiple accounts added in device. This is an issue that everyone who has ever integrated android play billing is experiencing. Please refer to this link https://plus.google.com/+ChrisLacy/posts/BAahtLEw9gy or this link for more details.
http://stackoverflow.com/questions/28811490/in-app-purchases-with-multiple-accounts#

@ashughes
Copy link

We often get complaints from our users that we've "removed" their purchases. This is obviously very frustrating for both our users and us. For those users that actually email us about the issue (rather than just curse at us in a Google Play review) and follow our instructions, we're usually able to solve the issue (at least temporarily).

I've done some testing and figured out a way to reliably reproduce the Google Play missing purchases bug:

Set up: Sign into a single Google account on a device. Purchase an in-app product or subscription (I tested specifically with subscription).

Steps to reproduce:

  1. Uninstall the app that you made the purchase with.
  2. Add a second Google account to the device.
  3. Open Google Play and switch to the new Google account.
  4. Download the app you uninstalled in step 1.
  5. Open the app and query for purchases. The previous purchase is not reported.

Fix A (only works if the account used to make the purchase is the "primary" account on the device):

  1. Clear the data of the Google Play Store app.
  2. Open the Google Play Store and accept the terms.
  3. Open the app and query for purchases. The previous purchase is reported.

Fix B:

  1. Uninstall the app.
  2. Open Google Play and switch to the account used to make the purchase.
  3. Download the app you uninstalled in step 1.
  4. Open the app and query for purchases. The previous purchase is reported.

A "realistic" example of the above scenario is:

  1. A user makes a purchase in an app with account A.
  2. Sometime later the user gets a new device and signs into both account A and account B.
  3. The user installs the app on the new device while account B is selected in Google Play.
  4. Their previous purchase is not reported to the app even though they are signed into account A on the new device.

I'm sure there are other ways to reproduce this issue (and other "fixes"). I hope this helps resolve this issue.

@TonyTangAndroid
Copy link
Author

I have to say that I am disappointed with the fact that this issue has been mentioned at least three years ago(see this link and the link I attached above). And it** could be stably reproduced** and **every app developers _are experiencing with issue. And this is related to _real money, this is not an issue that users do not care that much. But still there is no fix. I have logged several android related issues in https://code.google.com/p/android/issues/list, and it usually gets fixed in the next release. I do not know what happened to the In App purchase team. Hope there will be someone who will eventually gets this fixed.

@rpattabi
Copy link

I am not clear why google has to support this scenario. As far as google play is concerned, app purchases are specific to an account. If an app is purchased using one account, it won't be possible to utilize that purchase through another account.

Google play has come up with Family Library. This could be the solution for your users with multiple accounts. However if this has to work, I think, developer shall approve the in app purchase to be allowed for family library or not.

@brnhffmnn
Copy link

@rpattabi You may be misunderstanding this issue. It's not about accounting one purchase to more than one account. But rather the correct allocation of purchases to the corresponding account, when there are multiple Google accounts set up on the device.

@kanetik
Copy link

kanetik commented Jul 18, 2016

The original issue includes this: "Open Google Play and switch to the new
Google account." And never says anything about going back to the original
account (the one the purchase was made from). Perhaps the steps are
incorrect, but based on what it says, I think @rpattabi has the correct
read.

On Mon, Jul 18, 2016, 8:40 AM Brian Hoffmann notifications@github.com
wrote:

@rpattabi https://github.com/rpattabi You may be misunderstanding this
issue. It's not about accounting one purchase to more than one account. But
rather the correct allocation of purchases to the corresponding account,
when there are multiple Google accounts set up on the device.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#2 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAwn0bIoRdYXsva2hHaNVkDPQ7J8S4iUks5qW3RXgaJpZM4HAyHj
.

@ashughes
Copy link

When a user has multiple Google accounts on their device, it should not matter which account is currently selected in Google Play. In-app purchases made with any of the signed in accounts should be reported to an app. Unfortunately, this is not the case (as I described above, and provided steps to reproduce the issue).

@kanetik
Copy link

kanetik commented Jul 18, 2016

I think I'm in the camp of "works as it should." As @rpattabi mentioned,
Family Library might help with that, but I'm not sure in-app purchases
apply to that.

On Mon, Jul 18, 2016 at 11:57 AM Andrew Hughes notifications@github.com
wrote:

When a user has multiple Google accounts on their device, it should not
matter which account is currently selected in Google Play. In-app purchases
made with any of the signed in accounts should be reported to an app.
Unfortunately, this is not the case (as I described above, and provided
steps to reproduce the issue).


You are receiving this because you commented.

Reply to this email directly, view it on GitHub
#2 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAwn0QRT1LD-pyzTUn303Lw5oePcWhK8ks5qW6J-gaJpZM4HAyHj
.

@adennie
Copy link

adennie commented Jul 18, 2016

@ashughes, I'm confused. Is there a missing step 4.5 in your steps to reproduce, where the user opens Google Play and switches back to the original Google Account? If not, why should the purchase made under the original account be visible to the app when running while logged into Google Play as the 2nd account?

@ashughes
Copy link

Sorry, but I really don't understand the "working as it should". So if I'm logged into 2 Google accounts on my device, say my personal and work. I have apps installed, some of which I've made in-app purchases with through my personal Google account, and others I've made through my work Google account. Are you saying you think the correct behavior is:

  1. My personal account is selected in Google Play.
  2. I open an app that I've made in-app purchases in with my work account.
  3. My purchases are not enabled.
  4. I open Google Play and select my work account.
  5. I open the previous app and now those purchases are enabled?

First of all, the above is not how it currently works, and it's not even what we're talking about, however this is what it sounds like you're saying is "working as intended", so I wanted to clarify. If this is what you think the correct behavior is, I absolutely disagree. This would cause so much frustration with both users and developers. Users wouldn't know to switch which account is currently selected in Google Play in order to make sure their purchases are enabled in a specific app. And even if they did, it would be annoying to remember to do this constantly if you have, for example, personal and work accounts on you device. As developers, we'd be blamed constantly for losing users purchases since they're suddenly gone when they happen to switch which account is selected in Google Play.

I also wanted to note that this issue has nothing to do with the Family Library (regardless of the fact that, as far as I am aware, in-app purchases are not part of the Family Library).

Just to reiterate, the issue that's being reported here is that if a user is signed into more than one Google account on their device, depending on certain scenarios, their purchases can stop being reported to an app when they should be. This does not always occur. It is possible to be signed into multiple Google accounts on a device, and have in-app purchases made with those different Google accounts, and have all the purchases be reported to apps. This is the correct behavior. However, when certain scenarios occur, such as the steps in my original comment (although that's not the only way), purchases from one or more accounts stop being reported to apps. This is perceived by most users as the developer "deleting" their purchases. Simply switching which account is selected in Google Play does not fix the issue.

@kanetik
Copy link

kanetik commented Jul 18, 2016

The way you explained it there makes me understand where you are coming
from differently. I was picturing multiple accounts on the device, as you
would have in a tablet shared by a family. In that case, I think it makes
sense that it would work that way.

However, now that I understand better, I do agree that in the case of
mirror play accounts signed in at once, then yes, it should work more like
you describe.

Sorry for the confusion. That said, I have no power to do anything, your
gonna haveb to convince a Googler like you convinced me :)

On Mon, Jul 18, 2016, 12:54 PM Andrew Hughes notifications@github.com
wrote:

Sorry, but I really don't understand the "working as it should". So if I'm
logged into 2 Google accounts on my device, say my personal and work. I
have apps installed, some of which I've made in-app purchases with through
my personal Google account, and others I've made through my work Google
account. Are you saying you think the correct behavior is:

  1. My personal account is selected in Google Play.
  2. I open an app that I've made in-app purchases in with my work
    account.
  3. My purchases are not enabled.
  4. I open Google Play and select my work account.
  5. I open the previous app and now those purchases are enabled?

First of all, the above is not how it currently works, and it's not even
what we're talking about, however this is what it sounds like you're saying
is "working as intended", so I wanted to clarify.
If this is what you
think the correct behavior is, I absolutely disagree. This would cause so
much frustration with both users and developers. Users wouldn't know to
switch which account is currently selected in Google Play in order to make
sure their purchases are enabled in a specific app. And even if they did,
it would be annoying to remember to do this constantly if you have, for
example, personal and work accounts on you device. As developers, we'd be
blamed constantly for losing users purchases since they're suddenly gone
when they happen to switch which account is selected in Google Play.

I also wanted to note that this issue has nothing to do with the Family
Library (regardless of the fact that, as far as I am aware, in-app
purchases are not part of the Family Library).

Just to reiterate, the issue that's being reported here is that if a user
is signed into more than one Google account on their device, depending on
certain scenarios, their purchases can stop being reported to an app when
they should be
. This does not always occur. It is possible to be signed
into multiple Google accounts on a device, and have in-app purchases made
with those different Google accounts, and have all the purchases be
reported to apps. This is the correct behavior. However, when certain
scenarios occur, such as the steps in my original comment (although that's
not the only way), purchases from one or more accounts stop being reported
to apps. This is perceived by most users as the developer "deleting" their
purchases. Simply switching which account is selected in Google Play does
not fix the issue.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#2 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAwn0TmY4EaZoBkJsyHkFIAktunn9V-Xks5qW6_UgaJpZM4HAyHj
.

@ashughes
Copy link

Glad I was able to explain it well enough. :)

I've been trying to convince a Googler. I spoke with 2 people at I/O this year, both of whom said they'd look into the issue, but I haven't heard back from either. :'(

@laurencedawson
Copy link

This issue has to be one of the longest running issues I've encounter and responsible for 90% of all complaints from my users...

@TonyTangAndroid
Copy link
Author

And I am so disappointed that In-App team has no plan to fix it.

@laurencedawson
Copy link

Has anyone made any progress with this?

Seems more common to have multiple accounts and I'm getting a lot of support emails asking why they've lost their in-app purchases.

@ashughes
Copy link

ashughes commented Oct 6, 2016

Had a very promising conversation with some Googlers on Twitter: https://twitter.com/chrisbanes/status/771708081294237696. But I haven't heard whether or not they're looking into the issue. :-/

@laurencedawson
Copy link

Thanks for the update @ashughes.

Every update I push I'm getting constant negative reviews as folk think I'm trying to charge them again. This is getting beyond annoying now...

@ashughes
Copy link

ashughes commented Oct 6, 2016

Same here... :'(

@abiemann
Copy link

this issue is 4 years old now !

see the date...
http://forums.androidcentral.com/market-help/204265-help-please-how-do-i-change-accounts-app-purchase.html

@dakdroid
Copy link

dakdroid commented Nov 8, 2016

This is so frustrating:
https://goo.gl/photos/PH7cRddzEuQYi28n8

Feel free to copy/paste my workaround (replace app name):
http://pastebin.com/xAmQACy7

@laurencedawson
Copy link

Any update on this? My users are still losing their purchases each update I push...

@chrisjenx
Copy link

I've just run into this problem, it's not funny. These three images also show how confusing it is to ME as a developer! Heck knows how a unknowing user will work this out!

https://goo.gl/photos/kzwP36B3DVFPXU3UA

If you aren't going to fix it, you need to make it REALLY clear which InAppPurchase is associated to which account.

@TonyTangAndroid
Copy link
Author

This issue is getting ridiculous. It has been existed for five years. And there is no response from the In-App pay team.

@casolorz
Copy link

casolorz commented Feb 3, 2017

Is there no way to tell the billing code to use a certain account?

This issue is such a pain. Every time I release an update I get several bad reviews and emails from people who are justifiably upset.

The issue is really bad when doing a staged rollout because if a user has multiple accounts, the one that gets "lucky" and gets the update isn't necessarily the one that they made the in-app purchase with.

@laurencedawson
Copy link

Can anyone from Google update us on this issue?

@monstermac77
Copy link

We're hitting the same problem. It has been very frustrating for us as well as our users. Our experience with In-App purchases on Android has been horrendous compared to iOS.

@Artaud
Copy link

Artaud commented May 23, 2017

Many thanks to @dakdroid I have just tested your workaround with a customer and it works!
Saving us TONS of hassle as this is the most common issue with our app.

@netomarin
Copy link

Thanks for all comments.
Because this issue is not exactly related to this sample, I'm closing the issue.
Next time you have technical question, feel free to make a question on Stackoverflow and use the tags google-play, in-app-purchase or in-app-billing. We are trying to address as much question as possible in Stackoverflow.

Best regards

@casolorz
Copy link

casolorz commented Jun 1, 2017

@netomarin this has been asked before on stackoverflow.com on multiple posts, here are two I quickly found on my phone.

https://stackoverflow.com/q/29885959
https://stackoverflow.com/q/28811490

@ashughes
Copy link

ashughes commented Feb 11, 2019 via email

@boywert
Copy link

boywert commented Jun 17, 2019

This issue hasn't been closed, has it?

@wingsuit
Copy link

wingsuit commented Aug 3, 2019

Man this issue is frustrating, I use a personal account for all my apps and ever since I added my schools google account apps have started reporting that their subscriptions are no longer valid....

Another issue related to this is the fact that in app purchases seem to default to a specific account with no way to switch, even when going to the play store and changing which account photo is selected.

@huehnerlady
Copy link

I am frustrated with this issue too.

I did buy a pro version (no subscription, one time buy) with an old account. Now using my new account I cannot see the pro features unless I actually select my old account as my default account in google play. But this in exchange means that other subscriptions won't work anymore.

I wouldn't mind it so much if there would be a possibility to move purchases to another account, but there isn't.

So please finally fix this issue that seems to be there for so long!

@arberg
Copy link

arberg commented Dec 11, 2019

Yeah I also just ran into problem. To resolve B ashughes mentioned in second post I had to Uninstall, then switch to main account, then switch back to 2nd account on Google play, then reinstall

@dnhyde
Copy link

dnhyde commented May 12, 2020

This is so frustrating... I am almost ashamed to develop on Android, no real support from the platform, most of the APIs for devs are just a nightmare... I lost countless hours on the Camera2 API a huuuuge failure!
Now I ran into the subscription flow, thinking about using external services rather than play store subs...

@LordByron1788
Copy link

This is so frustrating... I am almost ashamed to develop on Android, no real support from the platform, most of the APIs for devs are just a nightmare... I lost countless hours on the Camera2 API a huuuuge failure!
Now I ran into the subscription flow, thinking about using external services rather than play store subs...

Yes we feel the same, awful apis. You think one api is bad, only to find another that is just as worse. This billing github repo has been abandoned also. Poor attitude from Google.

@ashughes
Copy link

Here's a link to the latest version of this bug on the official Google issue tracker: https://issuetracker.google.com/issues/139597485

Please star that issue if it affects you.

@gitgeek4dx
Copy link

@netomarin One point of my doubt is why Google made such a setting: The purchases are always related to the account that was selected on Play Store app when users installed the app, and not related to the Google account currently active in Play Store when the purchase occurred. I suggest the latter is obviously more logical, so when users complain about subscription lost, we only need to tell the user, please make sure that you have selected the correct account in the Play store app, instead of telling the user to uninstall our app, and confirm you have switched the Google account to which you purchased our app, and then reinstall our app.

I don't think you can not get knowledge of which account is active currently either. If you guys don't expose the relevant interface, the developer will not be able to get the user's currently logged-in Google account, but as a Google in-app purchase team, you can definitely know which account the user logged in. It is logical to use the currently logged-in account to make a purchase.

Now the situation seems to be that you confuse multiple accounts with multiple users

@AndroidDeveloperLB
Copy link

@ashughes For some reason I can't reach the link of the issue-tracker you've shown.
I think I could do it in the past, but not now.
Maybe Google is finally working on a solution?

@casolorz
Copy link

I don't know if it the same issue but the main one discussing the update issues got marked as private. I'm guessing there has been no progress but they got tired of developers complaining.

@ashughes
Copy link

@AndroidDeveloperLB @casolorz I can't reach the link either. I actually discovered this back in March and reported it as a new issue, which I also can no longer see. I did take a screenshot of it though:

image

Unfortunately, it appears that now I can't see any issues in the Google Play Billing Library component, even those I created. ☹️

@casolorz
Copy link

I guess there were too many complaints about the multiple account bug and they made it all private.

@Kaiyusa
Copy link

Kaiyusa commented Jan 14, 2023

Hi,

I'm sorry to hear that has happened to you maybe you should try calling customer care they might be able to assist you with your queeries.

,🙂

@duanemalcolm
Copy link

I can't believe this has been a problem since 2016 and Google is shutting us out and not giving feedback or updates. It's highly frustrating having to explain this problem to users on a regular basis. I just got a user email me asking why he could not see his subscriptions and whether it's the same Google multi-account problem.

I have suggested just including a "CHECK_ALL_ACCOUNTS" flag when making Google Play Services requests.

This problem is 7 years old. As developers, what can we do? An open letter on Hacker News? Protest? Start submitting issue reports to Google everyday en-mass?

@AndroidDeveloperLB
Copy link

@duanemalcolm They have talked about it and gathered suggestions on the issue tracker, and then at some point the post on the issue tracker was closed and nobody can reach it...

@casolorz
Copy link

I can't believe this has been a problem since 2016 and Google is shutting us out and not giving feedback or updates. It's highly frustrating having to explain this problem to users on a regular basis. I just got a user email me asking why he could not see his subscriptions and whether it's the same Google multi-account problem.

I have suggested just including a "CHECK_ALL_ACCOUNTS" flag when making Google Play Services requests.

This problem is 7 years old. As developers, what can we do? An open letter on Hacker News? Protest? Start submitting issue reports to Google everyday en-mass?

It is actually much older than 2016, just this issue is from then and it isn't the first one. The issue already existed when I started using in app purchases on 2014. I suspect it has been there since in app purchases were released.

@duanemalcolm
Copy link

@AndroidDeveloperLB Yes, I know about the post on issue tracker and it was great when the Google dev was giving feedback. It felt like progress was being made. Now the post is gone private and we can't see anything. We don't know if progress is being made or will this be an issue for another 5 years. It is extremely frustrating.

As @casolorz rightly pointed, this issue is probably 10+ years old. This is just silly.

What I'm asking here is whether there is something we can do to get Google to help because it's my biggest user support issue and I can't do anything about it. I am frustrated.

@maickonn
Copy link

maickonn commented Jul 14, 2023

I've known this problem for 9 years and to this day they haven't solved it. 🙄

@berteodosio
Copy link

We should start celebrating a birthday party for this issue 🥳

@hardikbhalodi
Copy link

seems this issue will stay forever!

@ysy950803
Copy link

ysy950803 commented May 8, 2024

The bug not fixed 2024. Fuck Google!
@google

@AndroidDeveloperLB
Copy link

Can't we have some flags of how to handle it?
For example:
Automatic - choose the account that has purchases if possible. If both have, show dialog to user (which shows information of purchases for each, including when was the last time each was used).
Use latest - uses the latest account that was used with purchases.
Always ask - show dialog to user which account to use.
Default (current behavior) - uses main account.
Manual - let us query things ourselves and then show our own dialog (or of Google if that's a security risk).

Once the dialog option is chosen, we should be able to clear-data of the app and start using the selected account from this point.
Sadly though, even though the API of clear-data exists, it doesn't have the ability to start the app, but this can be "fixed" by telling Play Services to start it for us afterwards.

@Kaiyusa
Copy link

Kaiyusa commented May 14, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests