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

Для вызова покупки продукта используйте метод PurchaseProduct

RuStoreBillingClient.Instance.PurchaseProduct(
    productId: "productId",
    orderId: "orderId",
    quantity: 1,
    developerPayload: "",
    onFailure: (error) => {
        // Process error
    },
    onSuccess: (response) => {
        switch (response) {
            case InvoiceResult invoiceResult:
                // Process InvoiceResult
                break;
            case InvalidInvoice invalidInvoice:
                // Process InvalidInvoice
                break;
            case PurchaseResult purchaseResult:
                // Process PurchaseResult
                break;
            case InvalidPurchase invalidPurchase:
                // Process InvalidPurchase
                break;
            case InvalidPaymentState invalidPaymentState:
                // Process InvalidPaymentState
                break;
        }
 });
  • string productId — идентификатор продукта;
  • string orderId — идентификатор заказа, создаётся на стороне AnyApp;
  • int quantity — количество продуктов;
  • string developerPayload — дополнительная информация от разработчика AnyApp. 
Структура результата покупки:
public class PaymentResult {
    public enum PaymentFinishCode {
 
        SUCCESSFUL_PAYMENT,
        CLOSED_BY_USER,
        UNHANDLED_FORM_ERROR,
        PAYMENT_TIMEOUT,
        DECLINED_BY_SERVER,
        RESULT_UNKNOWN
    }
}
 
public class InvoiceResult : PaymentResult {
 
    public string invoiceId;
    public PaymentFinishCode finishCode;
}
 
public class InvalidInvoice : PaymentResult {
 
    public string invoiceId;
}
 
public class PurchaseResult : PaymentResult {
 
    public PaymentFinishCode finishCode;
    public string orderId;
    public string purchaseId;
    public string productId;
    public string subscriptionToken;
}
 
public class InvalidPurchase : PaymentResult {
 
    public string purchaseId;
    public string invoiceId;
    public string orderId;
    public int quantity;
    public string productId;
    public int errorCode;
}
 
public class InvalidPaymentState : PaymentResult {
}
  • InvoiceResult — платежи завершились с результатом;
  • InvalidInvoice — платежи завершились без указания инвойса. Вероятно, они были запущены с некорректным инвойсом (пустая строка, например);
  • PurchaseResult — результат успешного завершения покупки цифрового товара;
  • InvalidPurchase — при оплате цифрового товара платежи завершились c ошибкой;
  • InvalidPaymentState — при завершении платежей отсутствует PaymentState.

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

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