Hello! The docs for paymentQueue(_:didRevokeEntitlementsForProductIdentifiers:) state:
Similarly, if Family Sharing is not enabled and someone purchases a non-consumable IAP, then requests a refund and Apple grants it, it sounds like this method is not called. So it seems it is not possible to detect when a customer has been refunded and revoke their access to the product (unless you have a server listening for refund notifications). Is that correct?
In the wwdc20-10659 session, the presenter refunds a non-consumable purchase in the transaction manager and says "the transaction also remains in the app's receipt but is updated to contain a cancelation date for when the refund occurred." I believe this is only the case for subscriptions not non-consumables right? It should be removed from the receipt for non-consumables. He continues saying: "Again my app is informed about the refund and is able to respond immediately." This seems to contradict my understanding from the docs noted above. And in my testing, paymentQueue(_:didRevokeEntitlementsForProductIdentifiers:) is not called when I refund the purchase in the transaction manager. Is that expected behavior? It seems to me this method should be called in every refund scenario so you can revoke access, so if you can clarify this I'd really appreciate it.
Thank you!
That last sentence is a bit confusing to me. If I'm reading that correctly, this means this method will not be called on the devices of the purchaser, but it will be called for the devices of the other family members. Is that true? I don’t understand why this would be called for family members but not the person who purchased it.The system calls this delegate method whenever App Store revokes in-app purchases for a family member based on changes in Family Sharing ... StoreKit also calls this method when a purchaser receives a refund for a non-consumable or an auto-renewable subscription. Only the family members' devices receive this message.
Similarly, if Family Sharing is not enabled and someone purchases a non-consumable IAP, then requests a refund and Apple grants it, it sounds like this method is not called. So it seems it is not possible to detect when a customer has been refunded and revoke their access to the product (unless you have a server listening for refund notifications). Is that correct?
In the wwdc20-10659 session, the presenter refunds a non-consumable purchase in the transaction manager and says "the transaction also remains in the app's receipt but is updated to contain a cancelation date for when the refund occurred." I believe this is only the case for subscriptions not non-consumables right? It should be removed from the receipt for non-consumables. He continues saying: "Again my app is informed about the refund and is able to respond immediately." This seems to contradict my understanding from the docs noted above. And in my testing, paymentQueue(_:didRevokeEntitlementsForProductIdentifiers:) is not called when I refund the purchase in the transaction manager. Is that expected behavior? It seems to me this method should be called in every refund scenario so you can revoke access, so if you can clarify this I'd really appreciate it.
Thank you!