Перейти к основному содержимому

Приём платежей без установки RuStore

Теперь пользователи смогут оплачивать покупки и подписки в вашем приложении, даже если на их устройствах не установлен RuStore. При оплате подписок им нужно будет авторизоваться по VK ID, а при оплате покупок внутри приложения достаточно указать e-mail для отправки чека.

примечание

Функция доступна при использовании SDK платежей версии 6.1.0 и выше. Перед использованием SDK выполните рекомендации по доработке.

Преимущества

Вы сможете увеличить объём выручки и привлечь лояльную аудиторию, поскольку теперь:

  • пользователи могут оплачивать покупки, даже если они пока не установили RuStore;
  • вы можете продолжать принимать платежи, публикуя приложения на разных площадках.

Особенности покупок без авторизации

примечание

Оплата по email без авторизации в платежке без RuStore временно недоступна. Мы уже работаем над решением и сообщим вам, как только функция будет восстановлена. Пока вы можете авторизоваться через VK ID для оплаты товаров.

  • Оплата без авторизации по VK ID доступна только для покупки потребляемых и непотребляемых товаров внутри приложения. Оплата подписки на приложение без авторизации недоступна.
  • Покупателю нужно указать e-mail для отправки чека.
  • При оплате покупатель увидит предложение установить RuStore, чтобы видеть историю покупок.
  • Способы оплаты не сохраняются, поэтому при каждой покупке необходимо заново указывать данные для оплаты. Чтобы способы оплаты сохранялись и были доступны при оплате, покупателю нужно быть авторизованным по VK ID.
  • Приложение не должно запрашивать список покупок или доступных к покупке продуктов, поскольку это невозможно сделать для неавторизованного пользователя. Чтобы исключить вызов этих методов SDK, cм. рекомендации по доработке перед использованием SDK.
  • Вернуть платёж неавторизованному покупателю можно только по чеку, который он получил на e-mail, указанный при покупке. См. возврат платежа неавторизованному пользователю.

Особенности покупок c авторизацией

  • Авторизация по VK ID обязательна при оплате подписки на приложение. При желании покупатель может авторизоваться и при оплате товаров внутри приложения.
  • При оплате покупатель увидит предложение установить RuStore, чтобы больше не проходить авторизацию при совершении оплаты в приложении.
  • Пользователю необходимо авторизоваться по VK ID, когда SDK платежей получает запрос списка покупок (метод getPurchases) или списка доступных к покупке продуктов (метод getProducts). Чтобы сократить количество запросов на авторизацию, см. рекомендации по доработке перед использованием SDK.

Действия пользователя

Процедура оплаты покупок описана в пользовательской документации. В ней же можно найти подсказки о том, как упростить авторизацию по по VK ID.

Перед использованием SDK

Рекомендуем выполнить следующие доработки перед переходом на SDK платежей версии 6.1.0 и выше.

  • Сократите количество запросов на авторизацию

    Ваше приложение может запрашивать у SDK список покупок или доступных к покупке продуктов. Например, когда нужно показать пользователю игровой баланс, версию подписки или проверить, покупал ли он PRO-версию приложения.

    При таких запросах пользователю почти каждый раз нужно будет авторизоваться по VK ID. Это неудобно и может не понравиться пользователям.

    Чтобы сократить количество запросов на авторизацию, замените обращения к SDK платежей (методы getPurchases и getProducts) на обращения к внутренней логике приложения. Вы можете сохранить списки покупок и продуктов внутри приложения или на сервере, и обновлять эти данные с помощью RuStore API.

    Также мотивируйте пользователя использовать учетную запись (например, Google Play) для сохранения игрового прогресса и покупок.

    Если исключить указанные обращения к SDK, пользователю нужно будет авторизоваться только при оплате покупок.

  • Настройте аналитику

    Если вы опубликовали приложение на разных площадках и хотите разделить потоки платежей по источнику установки приложения, создайте разные варианты сборки на основе build flavors. Это позволит собирать аналитику в зависимости от канала дистрибуции.

Особенности запросов на авторизацию

В таблице описано, при каких условиях и как часто пользователь получает запрос на авторизацию.

УсловияЗапрос авторизацииОсобенности
RuStore не установлен на устройстве

Запрос авторизации появляется:

  • в каждой сессии работы с приложением при вызове методов SDK:
    • getPurchases
    • getProduct
    • purchaseProduct
  • если в течение одной сессии работы с приложение прошло более 900 секунд после предыдущего вызова методов SDK:
    • getPurchases
    • getProduct
    • purchaseProduct

При втором и последующем вызове авторизации в рамках одной сессии работы с приложением, авторизация выполняется в один клик.

Чтобы проверить наличие RuStore на устройстве, воспользуйтесь методом isRuStoreInstalled из набора утилит RuStoreUtils. Данный метод вернет true или false в зависимости от наличия RuStore

RuStore установлен на устройстве, но пользователь не авторизован

Запрос авторизации появляется при вызове методов SDK:

  • getPurchases
  • getProduct
  • purchaseProduct

По умолчанию отображается сообщение о том, что пользователь не авторизован. Чтобы вместо этого открывался экран авторизации RuStore, используйте метод SDK RuStoreUtils.openRuStoreAuthorization(context: Context). После успешной авторизации пользователь автоматически возвращается в приложение.

Повторная авторизация не требуется, пока пользователь не выйдет из профиля в приложении RuStore.

Чтобы проверить доступность платежей, воспользуйтесь методом checkPurchasesAvailability. Если все необходимые условия выполняются, возвращается FeatureAvailabilityResult.Available. В противном случае возвращается FeatureAvailabilityResult.Unavailable(val cause: RuStoreException), где cause — это ошибка о невыполненном условии. Все возможные ошибки RuStoreException описаны в разделе Обработка ошибок

RuStore установлен на устройстве, пользователь авторизован

Авторизация проверяется бесшовно для пользователя