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

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

примечание

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

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

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

val purchasesUseCase: PurchasesUseCase = billingClient.purchases
purchasesUseCase.purchaseProduct(
productId = productId,
orderId = UUID.randomUUID().toString(),
quantity = 1,
developerPayload = null,
).addOnSuccessListener { paymentResult: PaymentResult ->
when (paymentResult) {
// Process PaymentResult
}
}.addOnFailureListener { throwable: Throwable ->
// Process error
}
  • productId: String — идентификатор продукта;
  • orderId: String — идентификатор заказа, создаётся на стороне AnyApp. (необязательно — если не указан, то генерируется автоматически);
  • quantity: Int — количество продуктов (необязательно);
  • developerPayload — дополнительная информация от разработчика AnyApp (необязательно).

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

public sealed interface PaymentResult {     

public data class Success(
val orderId: String?,
val purchaseId: String,
val productId: String,
val invoiceId: String,
val subscriptionToken: String? = null,
) : PaymentResult

public data class Cancelled(
val purchaseId: String,
) : PaymentResult

public data class Failure(
val purchaseId: String?,
val invoiceId: String?,
val orderId: String?,
val quantity: Int?,
val productId: String?,
val errorCode: Int?,
) : PaymentResult

public object InvalidPaymentState : PaymentResult()
}
  • Success - результат успешного завершения покупки цифрового товара.
  • Failure - результат ошибки покупки цифрового товара.
  • Cancelled - результат закрытия шторки пользователем. Результат покупки не известен. Необходимо вручную запросить информацию о покупаемом продукте методом получения сведений о покупке getPurchaseInfo, используя purchaseId.
  • InvalidPaymentState - ошибка работы SDK платежей. Может возникнуть, в случае некоторретного обратного deeplink.