In-app payments and subscriptions
Section contents
🟦 List of dependencies
🗃️ Kotlin/Java
🗃️ Unity
🗃️ Godot
🗃️ React Native
🗃️ Flutter
🗃️ Unreal Engine
🗃️ Defold
Receiving payments without RuStore app
Users can purchase products and subscriptions in your app even if RuStore is installed on their device. When paying for subscriptions they will need to authorize with VK ID, and in case of in-app product purchases email will be enough to send the invoice.
The function is available is billing SDK version 6.1.0 and later. Before switching to SDK, please make the recommended adjustments.
Advantages
You can increase your income and win customers' loyalty as now:
- users can now make purchases even if they haven't installed RuStore yet;
- you can continue accept payments publishing your app in different stores.
Purchases without authorization
Payment by email without RuStore authorization is temporarily unavailable. We are working on the solution and will inform you when this function is available again. Until then, for product purchases you can authorize with VK ID.
- Payments without VK ID authorization are available only for consumable and non-consumable products within the app. Subscription payments without authorization are not available.
- Thew buyer needs to provide their email for sending the invoice.
- During payment procedure the buyer will be prompted to install RuStore to view purchase history.
- Payment methods are not saved so the user will need to provide information required to make a payment each time a payment is made. To save payment methods so they are available automatically for each payment, the buyer needs to be authorized with VK ID.
- The app should not request the purchases list or the list of available products as it is cannot be done for an unauthorized user. To avoid cvalling these methods, see SDK adjustment recommendations.
- Money can be returned to an unauthorized buyer only based on the invoice email they specified during the purchase. See refund unauthorized buyer.
Purchases with authorization
- Authorization with VK ID is required when paying for an app subscription. The user can authorize while paying for products in-app.
- During the payment process the user will be prompted to install RuStore, to avoid the need to authorize again.
- The user is required to authorized with VK ID when the billing SDK receives a request for products list or a list of available products. To reduce the amount of authorization requests, see SDK adjustment recommendations.
User action
Purchase procedure is described in user documentation. There you can find tips on how to simplify VK ID authorization.
Before using SDK
We recommend to do the following before switching to the billing SDK version 6.1.0 and above.
-
Limit the number of authorization requests
Your app can request from SDK products list and list of available products. For example, if you need to display to the user the game balance, subscription version, or whether they bought a PRO version of your app.
If use these requests, the user will have to authorize with VK ID almost every time. This is not convenient and can lead to a bad user experience.
To avoid excessive authorization requests, replace calls to the billing SDK (getting purchases list and getting list of available products) with calls to internal logic of your app. You can keep products and purchases lists on your server and update this data with RuStore API.
Also, motivate the user to use an account (for example, Google Play) to save the game process and purchases.
If you exclude the above SDK calls the user will need to authorize only during purchase.
-
Configure analytics
If you published your app in different stores and want to separate payment flows based on source, create different builds based on build flavors. This will help to gather analytics depending on distribution channel.