Skip to main content
Solved

Can I ignore or delete a lifetime purchase made in the App Store sandbox?

  • September 27, 2021
  • 3 replies
  • 1001 views

Forum|alt.badge.img+4

Hello! We’re about to release an app using RevenueCat (via the React Native SDK) on iOS. Our app has options for monthly and annual renewing subscriptions, plus a lifetime purchase option. The lifetime option is implemented as a non-consumable purchase in the App Store.

The issue we’re having is that once a user has purchased a lifetime subscription in the sandbox, there seems to be no way to ignore that purchase in the future without also ignoring other purchases with the same entitlement. I can manually grant an entitlement for a user, but when I call getPurchaserInfo() in my app, entitlements.active.xyz will contain the sandbox purchase, not the one I granted - the sandbox purchase seems to be taking priority. So either I have to treat sandbox lifetime purchases as valid, or add client code to ignore lifetime purchases made in the sandbox. But if I ignore sandbox purchases, this would seem to have the affect of also ignoring non-sandbox purchases for the same entitlement.

This is a concern for us because we’re currently running a public beta, and we don’t want our users’ accounts to end up in a weird state if they make test purchases. The subscription purchases are not a problem because these get automatically expired by Apple so they don’t stick around after testing is over.

Any advice is appreciated! Thanks!

Best answer by ryan

 

Develop and Fix wrote:

I think we will just have to disable the lifetime purchase option in our public beta build, that will be the safest option.

I agree! If you have that as an option, then you won’t need to worry about removing the lifetime access later. You can do your own internal QA that the lifetime purchase works as expected, then you’d at least only have a few internal test customers to delete.

View original
Did this post help you find an answer to your question?

3 replies

ryan
RevenueCat Staff
Forum|alt.badge.img+9
  • RevenueCat Staff
  • 391 replies
  • September 28, 2021

The only way to delete the sandbox transactions would be to delete the entire customer from RevenueCat. 

If you need to remove all of these customers after testing and expiring the TestFlight build, you could create a Customer List of all the sandbox customers with a lifetime purchase and use the REST API or manually delete them from RevenueCat.


Forum|alt.badge.img+4

Thanks Ryan! That’s good to know. I think we will just have to disable the lifetime purchase option in our public beta build, that will be the safest option.


ryan
RevenueCat Staff
Forum|alt.badge.img+9
  • RevenueCat Staff
  • 391 replies
  • Answer
  • September 28, 2021

 

Develop and Fix wrote:

I think we will just have to disable the lifetime purchase option in our public beta build, that will be the safest option.

I agree! If you have that as an option, then you won’t need to worry about removing the lifetime access later. You can do your own internal QA that the lifetime purchase works as expected, then you’d at least only have a few internal test customers to delete.


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings