When a user first subscribes, they do it through our app. Sometimes they cancel, let the subscription expire, then later decide to resubscribe. If they resubscribe through our app, we just fulfill it like it is a new purchase. However, if they resubscribe outside of our app, the only way for us to know about it (and grant access to content) is to subscribe the App Store Server Notifications.
What are the specific App Store Server Notification messages we will receive in this situation and what are the values in the message that we need to look for? How can we tell, just from looking at the App Store Server Notification if the user resubscribe through our app or outside of our app?
Post
Replies
Boosts
Views
Activity
My understanding is that we are supposed to use the original transaction ID to link to a user, but that's not a one-to-one mapping.
Let's say I work for ACME Inc and we offer an in-app subscription to content. A customer downloads our app. Inside the app, they create an ACME account (A). Then they purchase the subscription within the app. During verification and fulfillment, we save the user's ACME account ID and the original transaction ID from the Apple receipt. Great!
At some point, the user cancels the subscription and doesn't use the service for some time. When they decide they want to use it again, they open the ACME app and can't remember their login for ACME account (A). So, instead of recovering the account, they create a new account (B). Then they purchase a subscription. We save the user's ACME account ID and the original transaction ID from the Apple receipt.
The original transaction ID will be the same in both cases, but the ACME account is different.
Now, when I get an App Store Server Notification - https://developer.apple.com/documentation/appstoreservernotifications, I use the original transaction ID to lookup which ACME user it affects. How do I decide which of the two ACME accounts (A or B) it pertains to?
We offer a free trial period on our in-app subscriptions. Some users sign up for the free trial, then cancel. After some time, they may decide they want to subscribe again. Is there a way, programmatically, (either from within the App or via some API such as the is used to verify receipts) to see if the user has already consumed the free trial or not?
I want to avoid showing messaging to the customer that they can get a free trial if they have already used it (because the App store will charge them immediately if the free trial has already been used).