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

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

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

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

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

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

Особенности покупок без авторизации для Pay SDK (версия 9.0.1)

  • Возможность оплаты без RuStore доступна начиная с версии Pay SDK 9.0.1.
  • Оплата происходит без авторизации по VK ID и без обязательного указания e-mail. Пользователь может по желанию указать e-mail, чтобы получить чек после оплаты.
  • Способы оплаты не сохраняются между платежами. Доступны способы оплаты: новая карта, СБП и SberPay.
  • Вы можете запрашивать список покупок (метод getPurchases) без авторизации. В ответ будут возвращаться платежи, совершённые на текущем устройстве с использованием Pay SDK версии 9.0.1. Это важно учитывать при переходе с Billingclient SDK.
  • При оплате можно передать внутренний идентификатор пользователя или e-mail, чтобы упростить процедуру возврата платежа. Такой платёж легко найти в консоли RuStore по указанному идентификатору.
  • Пользователь, не авторизованный в RuStore, автоматически направляется на сценарий оплаты вне RuStore.
  • Авторизация также не требуется при вызовах других методов SDK. Если вы хотите принимать платежи только через RuStore, используйте последовательную проверку наличия RuStore на устройстве (isRuStoreInstalled из RuStoreUtils) и проверку авторизации пользователя (getUserAuthorizationStatus). При необходимости пользователь может авторизоваться в RuStore методом RuStoreUtils.openRuStoreAuthorization(context: Context).

Особенности покупок без авторизации для Billingclient SDK

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

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

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

Оплата подписок в Pay SDK

Предупреждение

Доступно для PaySDK версии 10.1.0

  • Подписки в Pay SDK доступны только авторизованному пользователю VK ID.
  • Авторизоваться можно на платёжной шторке после выбора способа оплаты.
  • Сессия авторизации действует 5 минут. В течение этого времени повторная авторизация не требуется (если пользователь не закрыл приложение).
  • Пока сессия валидна, вызовы методов SDK возвращают данные авторизованного пользователя.
    Когда срок сессии истечёт, методы снова будут возвращать данные анонимного пользователя до повторной авторизации.

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

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

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

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

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

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

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

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

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

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

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

Предупреждение

Применимо только для Billingclient SDK.

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

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

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

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

Начиная с версии SDK 7.0.0 покупка продукта работает без обязательной авторизации по VK ID пользователя (достаточно указать email для чека). Метод getPurchases всегда требует авторизации по VK ID от пользователя.

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

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

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

  • getPurchases
  • getProducts
  • purchaseProduct

Начиная с версии SDK 8.0.0 метод getProduct работает без авторизации для пользователя неавторизованного в RuStore. Также, начиная с версии 8.0.0 нет обязательной необходимости авторизовывать пользователя в RuStore. При вызове метода purchaseProduct внутренняя логика платежной SDK позволит пользователю купить товар, авторизовавшись по VK ID или указав email для чека на шторке оплат. При вызове метода getPurchases пользователю будет необходимо авторизоваться по VK ID на шторке оплат. Запрос авторизации также появится вновь, если прошло более 900 секунд после предыдущего вызова методов SDK.

Для версии SDK ниже 8.0.0 необходимо авторизовать пользователя в RuStore. После проверки наличия RuStore на устройстве, воспользуйтесь методом getAuthorizationStatus чтобы проверить, авторизован ли пользователь в Rustore. Используйте метод SDK RuStoreUtils.openRuStoreAuthorization(context: Context) чтобы открыть экран авторизации в RuStore. После успешной авторизации пользователь автоматически вернется в Ваше приложение. Повторная авторизация не потребуется до тех пор, пока пользователь не выйдет из профиля в приложении RuStore.

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

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

Читайте также