Search code examples
iosobjective-cin-app-purchaseios8non-renewing-subscription

Non-Renewing Subscription Already purchased alert track


I am implementing Non-renewing subscription IAP in my app where I am making server implementation to expire a subscription. I am stuck when I click on a subscription I already have bought, It shows a dialog, "This In-App purchase has already been bought. It will be restored for free." with OK button. I have two questions here:

  1. Sometime it shows the above dialog but sometimes it shows "Tap buy to renew or extend it." dialog. Can anyone tell me whats reason behind this? Or it is just a Sandbox issue. (This screenshot from another thread.)
  2. When I get "This In-App purchase has already been bought. It will be restored for free." alert, how i can stop activity indicator? Is there a delegate method to track this?

I could not found but is there anything new came in iOS 8?

enter image description here

Thank you


Solution

    1. For a non-renewable subscription, the correct dialog is "Tap buy to renew or extend it.". The reason for this is that once a non-consumable product is owned, it is owned permanently; hence the "renew or extend" language.

    2. You are getting this dialog because you are attempting to purchase the same product again before completing the transaction on the app's side. The App Store has approved the transaction and sent you a transaction ID, but you have not confirmed that you have delivered the promised content/access. Thus, the transaction is left in the approved state. The transaction remains tied to the app until you finish it.

    See "Finishing the Transaction" in Apple's (confusing, convoluted) documentation.