Покупка продукта
Для вызова покупки продукта используйте метод purchaseProduct:
RuStoreBillingClient.INSTANCE.getPurchases().purchaseProduct( "productId" ).addOnCompleteListener( new OnCompleteListener<PaymentResult>() { @Override public void onFailure( @NonNull Throwable throwable) { // Process error } @Override public void onSuccess(PaymentResult paymentResult) { // Process PaymentResult } }); |
- productId: String — идентификатор продукта;
- orderId: String — идентификатор заказа, создаётся на стороне AnyApp (опционально. Если не указан, то генерируется автоматически);
- quantity: Int — количество продуктов (опционально);
- developerPayload — дополнительная информация от разработчика AnyApp (опционально).
Структура результата покупки:
interface PaymentResult { interface InvoiceResult extends PaymentResult { public String getInvoiceId(); public PaymentFinishCode getPaymentFinishCode(); } interface InvalidInvoice extends PaymentResult { @Nullable public String getInvoiceId(); } interface PurchaseResult extends PaymentResult { public PaymentFinishCode getPaymentFinishCode(); public String getOrderId(); public String getPurchaseId(); public String getProductId(); @Nullable public String getSubscriptionToken(); } interface InvalidPurchase extends PaymentResult { @Nullable public String getPurchaseId(); @Nullable public String getInvoiceId(); @Nullable public String getOrderId(); @Nullable public Integer getQuantity(); @Nullable public String getProductId(); @Nullable public Integer getErrorCode(); } interface InvalidPaymentState extends 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?