4

I am developing an app which requires auto renew subscription monthly and I want to maintain that on per user basis who logged into my app. is it possible anyhow with in app purchase. Also how can we handle cancelation of subscriptions ? I want to maintain all this on my own server.

Rahul Vyas
  • 28,260
  • 49
  • 182
  • 256
  • side note: Apple is currently reviewing the auto-renew subscription in-app purchase items **strictly**; higher chance to get approved if your app is a newsstand app. – Raptor Apr 20 '15 at 07:18
  • my app is not a newsstand app but we have credits system like unlimited credits per month. any suggestions ? – Rahul Vyas Apr 20 '15 at 10:16
  • the approval decision is made by Apple. I bet you've read [this guideline / getting started](https://developer.apple.com/in-app-purchase/In-App-Purchase-Guidelines.pdf). If your app & the IAP item are following these guidelines, you can submit to Apple for review (to test whether your IAP item is ready for subscription model). – Raptor Apr 20 '15 at 10:36
  • @RahulVyas: Can you please provide the code if you have implemented it? I have done it using https://github.com/MugunthKumar/MKStoreKit but have few questions. Is this auto renewable in app purchase restorable? 2) If I have done purchased one in app product id then even if I change this, it automatically gets purchased. Can you help me if you have done this? – Manthan May 14 '15 at 11:05
  • @Manthan I haven't implemented this thing yet but I guess the answer below might help you to implement the same. – Rahul Vyas May 24 '15 at 05:12

1 Answers1

2

In the StoreKit documentation, it mentioned in Cancellation section:

A subscription is paid for in full when it’s purchased and can be refunded only by contacting Apple customer service. For example, if the user accidentally buys the wrong product, customer support can cancel the subscription and issue a refund. It’s not possible for customers to change their mind in the middle of a subscription period and decide they don’t want to pay for the rest of the subscription.

To check whether a purchase has been canceled, look for the Cancellation Date field in the receipt. If the field has a date in it, regardless of the subscription’s expiration date, the purchase has been canceled—treat a canceled receipt the same as if no purchase had ever been made.

Depending on the type of product, you may be able to check only the currently active subscription, or you may need to check all past subscriptions. For example, a magazine app would need to check all past subscriptions to determine which issues the user had access to.

Bear in mind that users can cancel the subscription anytime without opening your App. Therefore, you have to check the status of subscription every time the user logs into your App.

Raptor
  • 53,206
  • 45
  • 230
  • 366
  • 1
    I have one case here. Suppose User 1 logged into app and buys the subscription. now user 2 logged into the app on same device.User 2 tries to buy subscription and he get success as user 1 has already subscribed now if apple device owner cancels the subscription how do I cancel subscription for user 1 and 2 on my server? is there a way to uniquely identify subscription? – Rahul Vyas Apr 20 '15 at 14:42
  • this is a good question. [This article](https://www.airpair.com/ios/posts/swift-storekit-in-app-purchases) (scroll down to *Finds the Unicorn*) mentions how to uniquely identify the user. Didn't try on subscription model, but it should work. Let us know if the unique identifier can't work on your case. – Raptor Apr 21 '15 at 01:57