Hello,
We use auto-renewing subscriptions. We are trying to properly refresh the receipts from our server to make sure the user's subscription is always taken in account even when they haven't opened the app in a while.
We cache the latest receipt on our server and we use its fields to determine if we should refresh the receipt.
We are running into some combination of fields that don't make sense to us:
1.
expiration date is in the past (9 days ago)
expiration_intent is not present
autorenew_status is 0
is_billing_retry_period is 0
How can this be possible? If the autorenew_status is 0, this means that the user has switched it off. Why is expiration_intent not present then?
2.
expiration date is in the past (62 days ago)
expiration_intent is 2
autorenew_status is 0
is_billing_retry_period is 0
How can this be possible? Expiration_intent means that there is a payment problem. But is_billing_retry_period is 0 which means that Apple isn't attempting to renew the purchase.
Basically, in both cases we don't understand what scenario could lead to this combination of flags?
More generally, what can we use out of the receipt to determine if we should or not attempt to refresh the receipt?
Thanks!