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

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

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

примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • getPurchases
  • getProducts
  • purchaseProduct

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

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

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

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

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