iOS Subscription Plan Options Don't Show for Specific Users - ios

I'm running into a support issue with my iOS app. Certain users are trying to subscribe via an In App Purchase, but the plan options for the subscription are not showing up for them so they are unable to subscribe.
I've tested this with the following:
Apple User without a payment method setup
Apple User with a PayPal account set for the payment method.
Apple user with a credit card setup.
The subscription plans still show up for all these configurations.
Once again this seems to only be happening for a specific set of users.

James there's not a lot to go on here. As a developer you are responsible for displaying/merchandising the subscription. There's no way to be helped until you can provide more information.

Related

App with an auto-renewable subscription rejected because demo account needed

Apple rejected my app with an :
Guideline 2.1 - Information Needed
We have started the review of your app, but we are not able to continue because we need an expired demo account to fully assess the subscription feature.
Next Steps
To help us proceed with the review of your app, please provide us with a link to a demo account in the App Review Information section of App Store Connect and reply to this message in Resolution Center.
I really don’t understand what kind of demo account they want from me. There are no any login screens in the application. Active subscription needed to access pdf share function.
Should I give them a test sandbox account with which we tested the subscriptions or something else?
TL;DR
You have your premium feature (features that can be accessed only with your subscription) available for non subscripted users, so they are asking you for expired account to check what happens if they don't have subscription.
Long story
We had subscription which was giving access to training videos for our users inside app. Someday we realized that we want to make this feature free and did it through our backend without releasing the app. So, the next review we've got the same reject:
Guideline 2.1 - Information Needed
We have started the review of your app, but we are not able to
continue because we need an expired demo account to fully assess the
subscription feature.
Next Steps
To help us proceed with the review of your app, please provide us with
a link to a demo account in the App Review Information section of App
Store Connect and reply to this message in Resolution Center.
After struggling around we've revealed that the problem is that Apple App Review team couldn't test the case where a user DOESN'T have subscription and CAN'T access our premium online training videos. I guess they get confused and asked as to share with them an expired demo account, so they can test this case.
At the end of the day, we've removed our subscription properly from App Store Connect and got our app passed through review. Therefore, I think you have your premium feature (features that can be accessed only with your subscription) available for non subscripted users, so they are asking you for an expired account to check what happens if they don't have subscription.

Linking Apple ID to an multiple account/user on my server

Background:
I am trying to implement In-app purchasing for my iOS app. The app allows the user to be able to log in to multiple accounts and register multiple accounts. Each registration will require the user to pay a subscription fee (unless a free plan is selected). When the registration is complete the account will be linked to the Apple ID that paid for the subscription.
Question:
If already have done a registration with my current Apple ID(Account A) with a $0.99 subscription every month and then do another registration with the same Apple ID(Account B) with a $1.99 subscription every month. Both accounts have purchased a subscription with the same Subscription Groups. In that case will that Apple ID just be paying for the subscription of Account B since it would be considered an upgrade from Account A.
I can make it so that when an account is created with an Apple ID that have been used, we link the new account with that Apple ID and disable the older one. This would however provides a bad user experience and only ever one account will work with one Apple ID and probably isn't the solution I want.
I did try to set the ApplicationUsername for SKPayment object in hopes that it will appear on the other side when the notification API is hit by Apple but it don't seem to use it for that and is used to detect fraudulent activity.
I am trying to find some documentation on handling this case but to no avail. I'm not too sure how to get around this issue and have a feeling that my app's implementation is not aligned with how Apple expects us to implement it. Maybe I have misunderstood some documentation but any insight to this would be greatly appreciated.

iOS IAP with auto renew subscription that has multiple products in the same family with the same duration

I'm currently working on an iOS app that will allow users to purchase an auto-renew subscription to access service charged monthly. I would like to be able to offer a basic and premium service, and allow users to upgrade or downgrade from one or the other.
I've set up test users and some test products and I've found that if you select the basic subscription first and then later on select to purchase the premium subscription the test user is charged for both services simultaneously.
Does anyone know if its possible to programmatically cancel a users current subscription when we've noticed they've either upgraded or downgraded their service, so they are only being charged once?
I've seen that using this link
https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions
Allows a user to manage their subscriptions manually, but I would like to handle migrating them to their new plan automatically.
The control over the subscription once purchased is by the user. Only the user who purchased can cancel the renewal. As a developer you can't do any changes.
After a discussion with someone at Apple the answer to this is question is that there is no support for multiple product subscriptions with the same duration. They would not comment on how certain apps are able to do this. Officially it's not possible.

Refund of iOS in-app purchase - triggered by developer, not end user

Case:
Our iOS app offers selling of custom made recipe packages that would be created for each user specifically. For example - user buys package of recipes, but for each user this package would be created individually, based on users preferences and needs, by someone from the app team. This package should be created in 5 days for example. If app team fails to create this package and deliver to end user in 5 days, automatic refund should be triggered and end user should receive money back that he spent on this in app purchase, thus invalidating purchased custom package.
Problem:
Is this kind of scenario even possible in Apple / iOS world? Can app developer trigger refund process of one specific purchase that end user made? If user isn't satisfied with specific purchase, could app developer trigger this is refund process if he has reference to transaction receipt?
P.S. We aren't really selling custom recipe packages, this was just an example scenario to help to understand this refund scenario case. ;)
EDIT:
If such scenario isn't possible via Apple refund, are there some examples of this kind of purchase model, implemented in some other way? It's hard to wrap my mind that only way for end user to get refund for something is to write Apple and that also needs to be done by user itself.
If you get paid using Apple services (in-app purchases) then NO, it isn't possible for an Apple Developer (business or individual) to refund App Store customers.
The only option is to direct customers to iTunes Store Customer Support as officially stated in the iTunes Connect screenshot below:
To increase the chances for your customers in getting refunded you could provide them with an e-mail stating that you would like them to receive a refund which they could show to the iTunes Support employee.
As a colleague stated, an option would be to use an external payment processor like PayPal which would allow you to manage refunds, but I think this will greatly increase the work needed since you will need to manage almost everything regarding payments on your own.
Also note that this option is highly restricted by Apple to only physical services or goods and sometimes Apple does not approve apps providing services through third-party payment processors. So.. you should be very careful what path you choose to take.
If the recipes you're providing to your customers are in digital format and users receive them in your app, you can be 100% sure that Apple will force you to use the in-app purchase system.
If such scenario isn't possible via Apple refund, are there some
examples of this kind of purchase model, implemented in some other
way?
In some cases you can use payment through PayPal (for example). We did it in our application where we had to take money of users and return it after a certain period. Check if you case is suitable for using third-party payment systems. Because (for example) Apple will restrict your app if you want to sell in-game content via Paypal, not with in-app purchase.
One very simple alternative would be to have your users buy virtual currency in your app that they can then spend on their recipe-package-orders. Since you are managing their virtual currency account balance, you can easily refund, give volume-discounts, etc. as you please. The only thing that will still be hard then is to have users return their virtual currency to get back their actual money.
There is no api for allowing users to refund a purchase (otherwise guess what can happen).
More info here

iOS Trial App Without In-App Purchase Mechanism

I am developing an app for a client, where he wishes the app to be able to have users to sign up and try out the app for 14 days, after which they have to make a purchase to continue using the app.
My client does not want to absorb Apple's 30% cut for using Apple's in-app purchase mechanism. Initially I suggested implementing a 3rd party payment gateway, but it seems that Apple does not allow app that unlocks app functionalities via a 3rd party payment gateway.
My question is this: if we submit the app that allows users to sign up and login, but only use the app for 14 days without any form of payment mechanisms in the app to allow the user to continue using the app, will the app be rejected? As I was thinking to just have the payment gateway on a website, and during user sign-up, send the user an email informing them that they can go to the website to make a payment.
I know that Apple rejects trial/demo apps, but this is technically a full fledged app where users that purchased via the website will be able to login and perform full functionality. I will also provide Apple with a test account that is fully functional.
Thanks!
Short answer: Apple will reject you if you allow signups and block functionality after a trial period without allowing IAP. Period.
I have first hand knowledge of this, shameless plug in 3..2..1.., Simple In/Out offers a 45 day free trial, after which users are blocked from using the app. In the early days, we escaped Apple's ban hammer by being small and using a blessed trial account that never expired. Apple would review using test account, never see rejection or blocked alerts and prompts to sign up on our website. That did change one day after requesting an expedited review. We got a lot more scrutiny and they rejected us for essentially steering users to our website for subscribing.
The IAP for trials and subscriptions other than magazines is pretty terrible. It is essentially designed for magazines, and that's it. So beware going in. What we eventually did was allow users to subscribe in the app using IAP. Our server manages who is subscribed and who isn't. It also manages which subscription they have (IAP or our own). There is a lot of weird receipt checks you need to do to manage the subscription from Apple. The user is also stuck if they want to change to a bigger/lower subscription plan. Which kinda works for us because the only way to do it is email us, in which we can convert from IAP (-30%) to our own (-2.5% for card processing).
The moral of this story is that if you plan on allowing users to create accounts inside your app, then you will most likely be obligated to offer subscriptions via IAP. If you want to avoid IAP, then you will also need to strip any references to your website from your app and description. They will bust you on meta if you try and steer them around the IAP process. Once we added IAP, we were allowed to point everyone to our website for "more information" in which we are able to convert more users to our own subscription rather than IAP. Right now, our number of our own subscribers vs. Apple is about 75:1. So we don't lose much over the signups we get from Apple.
I believe this should be perfectly fine as long as the 14 day "trial" is a fully functional version of the app.
Your model seems similar to Spotify. Pay for subscription on their website, but use the service in the app.
These resources may help:
https://news.layervault.com/stories/9695-how-do-apps-like-lyft-uber-airbnb-skirt-apples-30-cut-on-each-transaction
http://www.quora.com/How-does-Apple-define-digital-content-when-taking-its-30-cut

Resources