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

Обработка незавершённых платежей

примечание

Инструкция подходит для следующих языков программирования:

  • Kotlin;
  • Java;
  • Unity;
  • React Native;
  • Unreal Engine.

Обработка незавершённых платежей производится разработчиком AnyApp.

Подтверждение покупки

Чтобы подтвердить покупку типа CONSUMABLE и в статусе PurchaseState.PAID вызовите метод подтверждения продукта confirmPurchase. Чтобы получить сведения о покупке, используйте метод getPurchaseInfo.

Отмена покупки

При использовании методов обработки платежей учитывайте свой внутренний процесс. У некоторых разработчиков он предусматривает проверки перед потреблением или отменой покупки. В этом случае запросите отдельно статус такой покупки.

примечание

Например, если пользователь оплатил товар, который вы по каким-то причинам не можете ему начислить, вызовите метод (deletePurchase) в статусе PurchaseState.PAID, чтобы отменить покупку.

В случаях, когда метод получения списка покупок getPurchases возвращает покупку со статусом PurchaseState.INVOICE_CREATED вы можете использовать метод (deletePurchase). Например, если не хотите видеть покупку с такими статусами в списке покупок. Делать это самим не обязательно, поскольку RuStore обрабатывает отмену таких покупок на своей стороне.

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

Иногда после оплаты через приложение банка (СБП, SberPay, Tinkoff Pay и др.) и при последующем возврате обратно в AnyApp-приложение, статус покупки остаётся PurchaseState.INVOICE_CREATED, при этом статус платежа придет — PaymentResult.Failure. Это связано с временем обработки покупки на стороне банка. Поэтому разработчику необходимо правильно связать логику получения списка покупок с ЖЦ экрана.

Альтернативное решение — отмена покупки в статусе PurchaseState.INVOICE_CREATED только через взаимодействие пользователя с приложением. Например, вы можете вынести эту логику в отдельную кнопку.