Skip to main content
Solved

Somehow charging customer unnecessarily?


Forum|alt.badge.img+4

This is on iOS only. I had a version of my app that only had one-time purchases for the “pro” features access. I made some major updates and transitioned to subscriptions, but decided to honor any previous lifetime purchases in the new version, while no longer offering that particular product for future users. In RC I’m achieving this by using the same entitlement but my current offering no longer includes the old product.

The problem is that occasionally I see a new transaction in RC dashboard where the customer info shows they made a previous purchase of the old pro product, followed by them making a purchase of the current product and an entry that says a new alias for them was created. My assumption is that the user is either re-installing or maybe using a new device? In my app, ideally I’d like to avoid this by checking if a user has the old product entitlement already, even if they’ve deleted and reinstalled or switched to a different device. I do have a “Restore” button on my paywall, so perhaps it’s on them to try this? But I’m unsure if there’s some other way I can avoid charging a user unnecessarily or relying on them trying the “Restore” option? What’s the best way using the SDK to ensure I don’t do this? Should I try restoring first before processing a purchase? Or is there some way I can connect a user’s new install/device to their old alias on launch?

EDIT: I just found the `syncPurchases` method, which I assume is what I’m looking for. But the documentation is a little confusing. Is this something I should call on every app launch? Will this automatically update the delegate/async stream with their customer info that should include their old entitlement as active?

Best answer by wes_clark

Hi! Yes, I believe that these users are a result of them re-installing or using a new device. I actually think that it would be best if you maintained just using the Restore Purchases functionality and perhaps found a way to make the button more prominent for users as that will cover more of the cases that you would like to make sure get their lifetime purchase reassigned. Sync Purchases will not sync purchases from the App Store account itself and will only bring in purchases explicitly already on the receipt for the device, so this would not cover the case of a user reinstalling your app on a new device. Sync Purchases is more useful when you are migrating your subscription management onto RevenueCat. 

View original
Did this post help you find an answer to your question?
This post has been closed for comments

2 replies

wes_clark
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • 277 replies
  • Answer
  • December 13, 2023

Hi! Yes, I believe that these users are a result of them re-installing or using a new device. I actually think that it would be best if you maintained just using the Restore Purchases functionality and perhaps found a way to make the button more prominent for users as that will cover more of the cases that you would like to make sure get their lifetime purchase reassigned. Sync Purchases will not sync purchases from the App Store account itself and will only bring in purchases explicitly already on the receipt for the device, so this would not cover the case of a user reinstalling your app on a new device. Sync Purchases is more useful when you are migrating your subscription management onto RevenueCat. 


Forum|alt.badge.img+4
  • Author
  • Member
  • 5 replies
  • December 13, 2023
wes_clark wrote:

Hi! Yes, I believe that these users are a result of them re-installing or using a new device. I actually think that it would be best if you maintained just using the Restore Purchases functionality and perhaps found a way to make the button more prominent for users as that will cover more of the cases that you would like to make sure get their lifetime purchase reassigned. Sync Purchases will not sync purchases from the App Store account itself and will only bring in purchases explicitly already on the receipt for the device, so this would not cover the case of a user reinstalling your app on a new device. Sync Purchases is more useful when you are migrating your subscription management onto RevenueCat. 

That makes sense. Thanks for the clarification. I was worried there was more I could be doing to prevent this, but it looks like part of it at least is on my users to remember they already paid for “Pro”. But perhaps I can make the messaging a little more clear so they know they don’t need to buy it again in the new version.


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