Apple has these 4 options. The 4.Option looks like the Google option "ConsumeProduct".
If it is, is there an option like "manager.ConsumeProduct"?
Where can you set the duration of the subscription?
The translation:
Subscription without automatic renewal
A product that allows users to purchase a limited-term service. The content of this in-app purchase can be static. This subscription type will not be renewed automatically.
Everything is manual for non renewing subscriptions. You need to implement your own backend for storing the subscriptions, check if they are still active etc..
Apple has these 4 options. The 4.Option looks like the Google option "ConsumeProduct".
If it is, is there an option like "manager.ConsumeProduct"?
Where can you set the duration of the subscription?
Everything is manual for non renewing subscriptions. You need to implement your own backend for storing the subscriptions, check if they are still active etc..
Everything is manual for non renewing subscriptions. You need to implement your own backend for storing the subscriptions, check if they are still active etc..
Saving the subscriptions is no problem, problem is how can the subscriptions be restored.
The sub "MyStore_InformationAvailable" shows no info about date of purchase and "TransactionIdentifier".
So I can not check what and when was bought.
B4X:
Private Sub MyStore_InformationAvailable (Success As Boolean, Products As List)
Log("InformationAvailable Success = " & Success)
If Success Then
For Each Product As ProductInformation In Products
Log(Product.Title)
Log(Product.ProductIdentifier & ": " & Product.LocalizedPrice)
Log(Product.Description & ": " & Product.Tag)
Next
End If
End Sub
Non-renewing subscriptions differ from auto-renewable subscriptions in a few key ways. These differences give your app the flexibility to implement the correct behavior for your needs, as follows:
Your app is responsible for calculating the time period that the subscription is active and determining what content needs to be made available to the user.
Your app is responsible for detecting that a subscription is approaching its expiration date and prompting the user to renew the subscription by purchasing the product again.
Your app is responsible for making subscriptions available across all the user’s devices after they’re purchased and for letting users restore past purchases. For example, most subscriptions are provided by a server; your server would need some mechanism to identify users and associate subscription purchases with the user who purchased them.
You need to implement a user registration system. Or I will save you time, once I implemented a system like this: no user registration, give a pin number to user after purchase and save the pin number with subscription start end dates, give an option to restore with pin number, increment a restoreused int in the database for each successful restore and if it is restored for more than 3 times do not accept restore.( to avoid sharing of pin)
You need to implement a user registration system. Or I will save you time, once I implemented a system like this: no user registration, give a pin number to user after purchase and save the pin number with subscription start end dates, give an option to restore with pin number, increment a restoreused int in the database for each successful restore and if it is restored for more than 3 times do not accept restore.( to avoid sharing of pin)
How should I imagine that?
In the sub "SyStore_PurchaseCompleted" I show a dialog with a random pin, which the user should note / remember.
Thereafter, the random pin is saved with date of purchase and product name in the database.
If the user needs to restore the app, then it must enter the pin.
Did I understand it correctly?
Yes totally correct. They have accepted my restore mechanism for my app coinwatch. There is nothing wrong with this system. User has to save his pin and use it on another device if needed.
How should I imagine that?
In the sub "SyStore_PurchaseCompleted" I show a dialog with a random pin, which the user should note / remember.
Thereafter, the random pin is saved with date of purchase and product name in the database.
If the user needs to restore the app, then it must enter the pin.
Did I understand it correctly?
By the way, leave the pin visible on some user control panel screen for example, because probably they wont save their pin and will have problem. So they should be able to look up their pin while their account is active.
By the way, leave the pin visible on some user control panel screen for example, because probably they wont save their pin and will have problem. So they should be able to look up their pin while their account is active.
I want to do something that Apple does not like very much.
When license time has expired, the user can usually buy a new license in Apple Store.
But I want to give the user a possibility to buy the license directly from me. He should only send me his old license key via e-mail and I say in how the payment should be made.
If the payment has been successful, then I simply change the license time into my database (internet) and the app can continue to be used.
What do you think Apple would have something against it?
I want to do something that Apple does not like very much.
When license time has expired, the user can usually buy a new license in Apple Store.
But I want to give the user a possibility to buy the license directly from me. He should only send me his old license key via e-mail and I say in how the payment should be made.
If the payment has been successful, then I simply change the license time into my database (internet) and the app can continue to be used.
What do you think Apple would have something against it?
Most of the apps you refer to use a third party payment mechanism and are operating under the 'reader app' exception in the guidelines:
3.1.3(a) “Reader” Apps: Apps may allow a user to access previously purchased content or content subscriptions (specifically: magazines, newspapers, books, audio, music, video, access to professional databases, VoIP, cloud storage, and approved services such as classroom management apps), provided that you agree not to directly or indirectly target iOS users to use a purchasing method other than in-app purchase, and your general communications about other purchasing methods are not designed to discourage use of in-app purchase.