Search code examples
androidin-app-purchasemultiple-accounts

Android in-app purchases with multiple accounts


I am adding in-app purchases to my app, which is working. I have a device that has two accounts on it. One is my primary account--which I use to publish apps--and the other is a dev account that I use to test purchases.

Before the user can purchase, they are required to sign in using their google credentials:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
    .requestEmail()
    .build();

mGoogleApiClient = new GoogleApiClient.Builder(mainActivity)
    .enableAutoManage(mainActivity, this)
    .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
    .build();

Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
mainActivity.startActivityForResult(signInIntent, RC_SIGN_IN);

At this point, I choose my dev account

enter image description here

Even though I choose my dev account, when I attempt to make a purchase, it appears to use my primary account and does not allow me to make a purchase.

enter image description here

I cannot determine a way to specify which Google account is to be used when making an in-app purchase.

My main concern is that if a user has multiple accounts on their device, will my app make a purchase on the wrong account?

Can anyone provide any insight on this?

Note: If I sign in to my device using the Dev account and I sign in to the app, I am only given the option to choose my Dev Google account. Doing this makes in-app purchases work perfectly.


Solution

  • The in-app purchases account is not related to the signed in account, it's related to the user that installed the app on the device. The best way to force a different user is by uninstalling the app from the device and then re-install it from the web version of google play on your PC. Make sure you're signed in with the correct account there and install the app. In-app purchases will be made with that account.