Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using generic in-app purchase items for a dynamic range of digital products

Tags:

Have any of you implemented something similar to the below scenario?

Consider an app which provides audiobooks:

  • The books are maintained dynamically from a web based UI by the authors.
  • The books become available for users of the iOS app, as in-app purchase items.

By default Apple guidelines suggests using non-consumable IAP, and adding continuously as many IAP items as many books we have. But this is not proper for us, as the authors won’t have access to iTunesConnect, so it cannot be dynamic, “self-serving”.

Therefore we are planning to create a set of generic "consumable" IAP items like “Book worth $0.99”, “Book worth $1.99”, and so on. Then in the app we’ll show the corresponding IAP item for the books as specified by the authors, when they added it to our system.

Of course we store the purchased items on the server side, so the user will always have access to the purchased items -- even if they access it later from another device.

Will Apple approve this implementation?
Does it fit with their IAP policy?

I’ve found some similar quite old topics in the forum but the answers were confusing. Have you implemented something similar and get approval from Apple?

like image 670
Zsolt K. Avatar asked Apr 25 '15 05:04

Zsolt K.


People also ask

What framework must you import in order to work with in-app purchases?

In-App Purchase allows you to embed a store inside your app using the Store Kit framework. The framework connects to the AppStore on your app's behalf to securely process payments from users, prompting them to authorize payment.

What does in-app products mean?

What are in-app purchases? In-app purchases are extra content or subscriptions that you buy inside an app. Not all apps offer in-app purchases. To check if an app offers in-app purchases before you buy or download it, find it in the App Store. Then look for "In-App Purchases" near the app's price or Get button.


2 Answers

Apple has accepted our solution, as described in the question.

The point is, as highlighted correctly by @RomOne and @ge0rges that you need to provide the possibility to restore the items later.

As we are storing every purchase in our database, and our users are authenticated (they need to register and log in to purchase), we are able to provide them access to the purchased items forever, even when accessing the app from other device.

We are also storing the associated in-app-purchase's ProductID from iTunesConnect, plus the userID, the price, and the date, to have a detailed register of all purchases.

Important: Apple has rejected our first solution, because they didn't understand how it works, and how a purchase can be restored.
The key to success was describing in detail how the system works and providing a test user access to our web admin site. This allowed the Apple reviewers to see the whole system.

like image 96
Zsolt K. Avatar answered Oct 17 '22 01:10

Zsolt K.


Yeah in my point of view they will accept it. As long as you allow users to retrieve their purchases later on. Your system make me think about a virtual currency I have made where I had to make generic consumable that needed to be actually saved for the user. Apple approved it (and still does) because I was saving all purchases, even if it didn't fit perfectly with IAP policy ;)

like image 31
RomOne Avatar answered Oct 17 '22 01:10

RomOne