How to implement InApp Purchase iOS for this Pay per view type of app? - ios

I am working on an app that serves new movies every week and users have to buy a movie to be able to watch it. Once an user purchases a movie they can watch it any number of times. We have our own user registration and login system. I want to know do i have to create an In App Product on the iTunes Connect For every movie? We don't want to restore purchases to the different users using same apple id as well, will Apple allow that? I am really confused guys, I'd really appreciate some ideas.

Related

while creating an ios app with in app purchase, i have a query

As we all know that once we purchased apple subscription plan from a device with Apple id the same will be resume on other device if have login with that same Apple id.
But here we need that every time the user will login on different device with the same Apple id or different Apple Id, we want's the to user purchase the subscription plan. e.g., If user has purchased 2 Subscriptions then he will be able to use app on two different devices So for that we created multiple subscription products.
Can someone help how we can create multiple products for same functionality So that Apple can approve it.
That would go against Apple's guidelines for allowing users to restore their in app purchases on any new or existing devices.
https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html
Users restore transactions to maintain access to content they’ve
already purchased. For example, when they upgrade to a new phone, they
don’t lose all of the items they purchased on the old phone.

Will the application review the auto renewable subscription?

I'm developing an application that looks like a dialogue with another person. Some dialog branches are paid and are available only when the subscription is activated. When user click on this thread, we ask that him purchase it. When a person activates a subscription, he also has access to some paid video, audio, and a restriction on viewing the news section. We would like to use the Autorenewable subscription with a plan for a month. But will our application go through the review? maybe there are still some approaches to enable the user to activate auto-subscriptions to our application.
Thank you in advance for your cooperation
Yes, this should be an ok use of IAP, however reviewers can act randomly so you may get a different result.
I would make sure that when a user encounters a path that is premium, you don't just initiate an in-app-purchase but you present the user with a "paywall", a screen that says the content is for purchase and show them the price and allow them to purchase. If you are too aggressive, Apple may reject your application.

Can Apple tell me what purchases a user has?

I'm aware of the restore functionality and have implemented it in my apps before, but still has holes in it.
I'm trying to display customized screens based on what apps the user have. Without user interaction, I want to be able to ask apple to retrieve me the in-app purchases that belong to that user for this app?
Other posts mention that I should always keep track of that via calling methods like:
NSUserDefaults.StandardUserDefaults.BoolForKey
But at the same time considers it insecure.
I am currently storing the info in DB. That's easy, but consider the following scenario:
User downloads the app. My DB records that user has 0 in-app purchases. The user later purchases 1 in-app purchase. My DB records that too.
User deletes the app for whatever reason
After a while, he re-downloads the app. My DB at this point starts a fresh and records that the user 0 purchases.
the user sees the in-app purchase (he already bought) and clicks on purchase again.
Here, my execution flow stops and apple picks up... Apple alerts the user that he has already bought the in-app and offers to get it for free.
That message is for the benefit for the user only, and my app is unaware of that. I haven't been able to find a call to apple asking what purchases a user had made for my app? I too, wouldn't want the user to pay again, but be able to always know what purchases he has made in the past at any given point. Why is that information so sealed at apple side? They alrady know the user has may app and I am only asking about in-app purchases in that app.
I am using Xamarin.
You need to refresh the receipt file and then scan through it. It will list all purchases the user has made inside that app, whatever device it was on. This code will let you parse the file and see the purchases made: https://github.com/rmaddy/VerifyStoreReceiptiOS
You could simply make your database store account information the user creates when they want to purchase something from your in-app extras. So in order to make that purchase they have to create a username and password for your app, thus giving you a way to keep track of who owns what in app content without having to ask apple.

Multi-device support for non-renewing subscription

I'm working on a news app. All news items are fetched from my website. To make a bit of a profit out of it and keep the website running, I implemented some ads. Now, I'd like the user to be able to turn off all ads in the app for a few bucks. I want to provide this option on a yearly basis. So, this year there will be a button in my app, reading something like "No ads in 2013". After paying, the app will be ad free for the rest of the year. In 2014, ads start popping up again and the user can buy the product "No ads in 2014", for the same amount.
I figured a non-renewing subscription would be the way to go here. A few things I haven't figured out yet:
Is it possible to automatically change the name of the in app purchase over time such that it reads "No ads in 2013" in this year and "No ads in 2014" next year, "No ads in 2015" after that, and so on?
Apple states that it is the responsibility of the developer to implement multi-device support. Ok, fair enough, but I haven't found a way to identify a user yet. Users don't need to be logged in to use my app and as far as I know, there is no way to get hold of the user's iTunes login name. How can I transfer the product to a user's new iPhone for example?
After much thought my conclusion is that there is no way to achieve this without bothering the user to log in in some sort of way.
The alternative I came up with is this:
I just create a regular non-consumable in app purchase, with the year embedded in its identifier. This way, in code I can check the identifier against the current year and determine if the user should buy the product with identifier "year + 1".
As non consumable purchases are linked to the user's iTunes account, they are automatically transferred to other devices like a new phone.
Only thing I must not forget is to create a new product for every year to come.

About In-App purchase between devices and apps

I want to share a question about In-App Purchases
I have some maps applications where I'm trying to add In-App Purchases to let user buy different map layers to show in the application. I want to let users buy the In-App Purchases in the same app to get new map layers, and I want to show other layers that they buy in another application from us too. And I want to show all the IAP that user purchased in different devices.
The way I want to do this is using a Server Product Model, where an app will send some information to our server when the user buy a IAP. When we want to get the user IAP purchased for show all the IAPs that user have, I request the info to our server to know if there are another purchases for this user in other apps of us and if it is, we will show another extra layers in the map.
The problem I have is that seems that is not possible to get the user account because is private data, and we need to get this information for some reasons:
To detect if the same user is connected in another device because we can show all the IAP the user purchase in some device
To detect if a user using an application has yet another IAP purchased in another application of us, to let him see the map layer in this application too
I know that Apple let you get the identifier "identifierForVendor", that let you know if the same device is using an app of ours. But my problem is I don't know how to detect if the user install our app in another device, how can I detect if the user has some IAP purchased to talk to our server and show the IAP the user purchased in this app or another app.
There is no way to get some user identifier to do this communication?
Any help will be welcome :) Thanks for your time

Resources