Change an IAP from Non-Renewing subscription to Auto-Renewing - ios

In my app I have a Non-Renewing subscription to access one of the feature.Now my client has asked me to change it to Auto-Renewing subscription, I am confused on how to start the same. Should I change the existing to product or should I remove the Non-Renewing & add a new Auto-Renewable item. 1000's of user are already purchased the product as Non-Renewable, will updating the same cause any problem for them. Can anyone please guide me on how to implement it.

Related

Non-renewing sbuscription in iOS

I want to implement InApp purchase in my iOS video streaming app to do that I need to implement Non-renewing subscription e.g 1 month,3 months, 6 months and 1 year.
I am using Objetive-C in my application.
Can you please tell me how to implement it because as per Apple, developer need to manage subscription expiration date and time.
How to validate receipt ??
How to manage user's subscription on multiple device or restore user's subscription if user login on other device ??
Please help me and let me know if anything is required in Non-renewing subscription.
Thanks,
You should go through the in-app purchase programming guide before starting the implementation.
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction.html
Store-kit won't send you any notification in case of subscription end for a non-renewable subscription. You need to calculate the duration on your own and revoke the user's access to your server after that duration.
To verify the receipt you can do the validation on user's device or on your server, but your server is preferably better and even recommended by apple also.
For restoring the purchase you can go through the following doc
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html#//apple_ref/doc/uid/TP40008267-CH8-SW9
Non Renewing subscription
First of non renewing subscription is the consumable keys that means once it purchased it just purchased. Keep in mind Storekit doesnot restore consumable products so you have to manage yourself because StoreKit does not do it as it do in Auto-renewable subscriptions and Non-consumable .
More details about Non renewing subscription :
Does Non-Renewing subscription requires a restore button?
How to manage?
To manage your in-app purchase you have to use server DB. You have to store your all purchases in server DB by using post API.
Benefits:
You can easily maintain the end date of purchase.
You can get each paid account every time user logged in with any device.
Note: Maintain your DB according to your need.

How to change non-consumable to auto-renewable subscriptions and keep old user?

I've had in-app purchase feature with non-consumable pricing in Apple Store. And the app has pricing to use it.
How to change non-consumable to auto-renewable subscriptions? Somehow keep user who purchased the app. And new user charge with auto-renewable subscriptions.
No you can't change it, just make sure in your App, you use
[[SKPaymentQueue defaultQueue]restoreCompletedTransactions];
Restore old purchase and check if you find that the user has purchased the non-consumable product (old users), restore the product for free. If user has not purchased that product before (new users), ask them to purchase the new auto-renewable subscriptions.

Auto-renewable subscription issue in iOS 8 Application

When I used non-consumable in-app purchase product for testing after purchased it will give proper result that is You are already purchased but in Auto-renewable subscription it will always ask for purchase for the same user and for the same product. How to resolved it.
You can read apple's documentation to test Auto renewable subscriptions
https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectInAppPurchase_Guide/Chapters/TestingInAppPurchases.html
A Side Note: In the consumable case it is prohibited that you forward the user to the store if he/she already purchased the item. Unless, he/she reinstalled the app. or installed it on a different device that didn't used to purchase the item in the first place.
Auto-renewale here is your answer.

How do auto-renewable in-app-purchase subscriptions work?

My application currently allows the user to subscribe to our service using in-app purchase auto-renewable subscription. The app provides images, 12 images per month, and every month the user needs to renew his/her subscription to see the new content.
I haven't work on the auto-renewable model before, so I have built a model to validate the receipt and it works, but should I check if the user subscription expired or not, and, if so, how?
Also, does the app store only allow magazines and newspaper items to be auto-renewable?
I haven't worked on the auto-renewable model before, so any help on this matter would be highly appreciated.
When a user signs up for an auto-renewable subscription, they continue to be charged until they manually cancel it. This is obviously great from a developer’s point of view, because it takes a lot more effort to cancel something than to just let it continue.
You might already be familiar with a class of apps that use auto-renewable subscriptions already: Newsstand.
Newsstand was first introduced in iOS 5, and allows content providers to easily distribute their newspapers and magazines. With it, Apple introduced the auto-renewable subscription model, which allows you to set a subscription duration and manage renewals automatically through the StoreKit framework.
However, Apple has placed some very strict rules around auto-renewable subscriptions, meaning their usage is (usually) exclusive to Newsstand apps.
So sadly, if you want to provide content or features for a limited duration, outside of Newsstand, then your only option is to use non-renewing subscriptions.
found that here: http://www.raywenderlich.com/36270/in-app-purchases-non-renewing-subscription-tutorial
An auto-renewable subscription is an iOS In-App Purchase category that allows an app to provide and charge for content or features over a set amount of time.
Hear is a very useful link!. It provides almost every details about auto renewable subscription
Auto-Renewable In-App purchases continues charging the user (weekly/monthly/yearly etc.) until they cancel it.
You can check if the subscription has expired using the a validated receipt. It contains subscription expiration date and time.
If you want to lock content if subscription has not renewed, you may want to check receipt info against current date/time, on applicationDidBecomeActive delegate. There are open source libraries that lets you verify receipts locally as well.
And any kind of app can have Auto-Renewable In-App purchases, not just newsstand apps.

Removal of in-app purchase product in itunes connect

I want to change the type of in-app purchase from auto-renewable to non-consumable one.
So I remove the in-app purchase product in itunes connect and create a new one.
The problem is when restoring, does old users who had ever purchased the auto-renewable receive the old transactions back?
I have another problem now. >_<
1. I remove the old auto-renewable product.
2. Add a new non-consumable product.
3. Add a update version of my app.(ex. 1.3.0)
When I try to test in-app purchase with new product in sandbox, I receive 21004 when I verify the receipt with app-store. I cannot find any definition of error 21004 on non-consumable product.
Only auto-renewable product defines it. It means shared-key not match.
But receipt verification of non-consumable product didn't need shared-key.
Does someone teach me what happen?
Thanks.

Resources