1

I have the following example snippet code where I hope to find out if a user has or is subscribed to an app on iOS:

private boolean isAnewUser()
{
     if (inappPurchase.wasPurchased(SKU))
          return false;

     return true;
}

I want to do something different based on the boolean return. Specifically, I want to process an introductory offer for new users and promotional offers for users that are not new.

We can check and know based off of our own database if a user is new or not, but what determines eligibility for the offers is the Apple ID they will be using to process the payment for a subscription. So, validation on our end does not help.

I was hoping that the wasPurchased(String sku) method would have solve this. From this source, "it seems that Purchase.wasPurchased only returns true if the product has been bought on the very device." From trying it out too, it just seems that this method will not provide the solution to what we need.


So, is there a way to know if a user's Apple ID that they will use for payment have been subscribed before to an app?

Thank you.

Renz
  • 81
  • 6

1 Answers1

0

Unfortunately it seems that this is not possible based on this answer. Not even a consistent anonymized ID. The only way is to handle your own registration process collecting emails/phone numbers and verifying them independently.

This adds friction to the process though so I get the problem.

Shai Almog
  • 51,749
  • 5
  • 35
  • 65