Покупка продукта

Для вызова покупки продукта используйте метод RustoreBillingClient.purchase(id):

RustoreBillingClient.purchase(id).then((response) {
      print("purchase success: $response");
    }, onError: (err) {
      print("purchase err: $err");
});
  • id — идентификатор продукта. 

Структура результата покупки PaymentResult:

class PaymentResult {
  SuccessInvoice? successInvoice;
  InvalidInvoice? invalidInvoice;
  SuccessPurchase? successPurchase;
  InvalidPurchase? invalidPurchase;
}

Структура  SuccessInvoice:

class SuccessInvoice {
  String invoiceId;
  String finishCode;
}

Структура InvalidInvoice:

class InvalidInvoice {
  String? invoiceId;
}

Структура SuccessPurchase:

class SuccessPurchase {
  String finishCode;
  String? orderId;
  String purchaseId;
  String productId;
}

Структура InvalidPurchase:

class InvalidPurchase {
  String? purchaseId;
  String? invoiceId;
  String? orderId;
  int? quantity;
  String? productId;
  int? errorCode;
}
  • SuccessInvoice — платежи завершились с результатом;
  • InvalidInvoice — платежи завершились без указания инвойса. Вероятно, они были запущены с некорректным инвойсом (пустая строка, например);
  • SuccessPurchase — результат успешного завершения покупки цифрового товара;
  • InvalidPurchase — при оплате цифрового товара платежи завершились c ошибкой.

Возможные статусы, которые может содержать finishCode:

  • SUCCESSFUL_PAYMENT — успешная оплата;
  • CLOSED_BY_USER — отменено пользователем;
  • UNHANDLED_FORM_ERROR — неизвестная ошибка; 
  • PAYMENT_TIMEOUT — ошибка оплаты по таймауту;
  • DECLINED_BY_SERVER — отклонено сервером;
  • RESULT_UNKNOWN — неизвестный статус оплаты. 
Обновлено 20 июня 2023 г.
Was this information helpful?