HI,
I have been trying to get an app to be approved by Apple for a few days now.
Apple keep rejecting the app due to my in-app purchases.
Currently I am using an Non-Consumable in app purchase. In my B4i app, once the user makes the payment and the event PurchaseCompleted is triggered (and payment is successful) then it will send a message to my B4J app to update the expiry date for the service.
For Example:
B4i / B4A app logs into my B4J app. To continue using the service they need to make a payment either through B4A/B4i app. Both are linked together since the customer can sign in with the same username. They can sign up to a 30 day / 120 day or 365 day access pass. The user can purchase the access pass multiple times, and each time they purchase the in-app purchase it just increases the expiry on the B4J app.
Apple rejected this and said:
Since the service offered by your app requires the user to make an advance payment to access the content or receive the service, please use the non-renewable subscription in-app purchase product type. Non-renewable subscription content must be made available to all iOS devices owned by a single user, as indicated in guideline 3.1.2 of the App Store Review Guidelines.
I have a few questions to ask:
1. Can I use Non-renewable subscription in B4i? Is it the same as calling:
I am guessing the above will work and works the same as what I have done with Non-Consumable in app purchase.
2. What happens if the user makes the payment for the non-renewable subscription, it then sends the payment to my B4J app (since the B4i app knows the payment was successful), and then the user closes the app and goes into the Settings app and cancels the subscription. They basically get the service for free?
I am guessing the only way my server will know about this cancellation is for the app it open and check if it was cancelled or for somehow my server to poll Apples server every hour to check if any have been cancelled?
Anyone know the answers to the above or know a workaround ?
I have been trying to get an app to be approved by Apple for a few days now.
Apple keep rejecting the app due to my in-app purchases.
Currently I am using an Non-Consumable in app purchase. In my B4i app, once the user makes the payment and the event PurchaseCompleted is triggered (and payment is successful) then it will send a message to my B4J app to update the expiry date for the service.
For Example:
B4i / B4A app logs into my B4J app. To continue using the service they need to make a payment either through B4A/B4i app. Both are linked together since the customer can sign in with the same username. They can sign up to a 30 day / 120 day or 365 day access pass. The user can purchase the access pass multiple times, and each time they purchase the in-app purchase it just increases the expiry on the B4J app.
Apple rejected this and said:
Since the service offered by your app requires the user to make an advance payment to access the content or receive the service, please use the non-renewable subscription in-app purchase product type. Non-renewable subscription content must be made available to all iOS devices owned by a single user, as indicated in guideline 3.1.2 of the App Store Review Guidelines.
I have a few questions to ask:
1. Can I use Non-renewable subscription in B4i? Is it the same as calling:
B4X:
MyStore.RequestPayment(...) ' use the ProductID for the non-renewable subscription
I am guessing the above will work and works the same as what I have done with Non-Consumable in app purchase.
2. What happens if the user makes the payment for the non-renewable subscription, it then sends the payment to my B4J app (since the B4i app knows the payment was successful), and then the user closes the app and goes into the Settings app and cancels the subscription. They basically get the service for free?
I am guessing the only way my server will know about this cancellation is for the app it open and check if it was cancelled or for somehow my server to poll Apples server every hour to check if any have been cancelled?
Anyone know the answers to the above or know a workaround ?