API/Autodoc/Files/RuStorePayClient.cs.md
Namespaces
| Name |
|---|
Classes
| Name | |
|---|---|
| class | RuStore::PayClient::RuStorePayClient — Класс реализует API для интегрирации платежей в мобильное приложение. |
Source code
#nullable enable
using System;
using RuStore.CoreClient;
using RuStore.PayClient.Internal;
using System.Collections.Generic;
using UnityEngine;
namespace RuStore.PayClient {
public class RuStorePayClient {
public static string PluginVersion = "10.3.1";
private static RuStorePayClient? instance;
private AndroidJavaObject? clientWrapper { get; }
public static RuStorePayClient Instance {
get {
if (instance == null)
instance = new RuStorePayClient();
return instance;
}
}
private RuStorePayClient() {
if (!IsPlatformSupported()) return;
CallbackHandler.InitInstance();
using (var clientJavaClass = new AndroidJavaClass("ru.rustore.unitysdk.payclient.RuStoreUnityPayClient")) {
clientWrapper = clientJavaClass.GetStatic<AndroidJavaObject>("INSTANCE");
}
}
public void GetUserAuthorizationStatus(Action<RuStoreError> onFailure, Action<UserAuthorizationStatus> onSuccess) {
if (!IsPlatformSupported(onFailure)) return;
var listener = new UserAuthorizationStatusListener(onFailure, onSuccess);
clientWrapper?.Call("getUserAuthorizationStatus", listener);
}
public void GetPurchaseAvailability(Action<RuStoreError> onFailure, Action<PurchaseAvailabilityResult> onSuccess) {
if (!IsPlatformSupported(onFailure)) return;
var listener = new PurchaseAvailabilityListener(onFailure, onSuccess);
clientWrapper?.Call("getPurchaseAvailability", listener);
}
[Obsolete("Deprecated. Use RuStoreCore.Instance.IsRuStoreInstalled instead.")]
public bool IsRuStoreInstalled() {
if (!IsPlatformSupported()) return false;
return RuStoreCoreClient.Instance.IsRuStoreInstalled();
}
public void GetProducts(ProductId[] productsId, Action<RuStoreError> onFailure, Action<List<Product>> onSuccess) {
if (!IsPlatformSupported(onFailure)) return;
var ids = Array.ConvertAll(productsId, p => p.value);
var listener = new ProductsResponseListener(onFailure, onSuccess);
clientWrapper?.Call("getProducts", ids, listener);
}
public void GetPurchases(Action<RuStoreError> onFailure, Action<List<IPurchase>> onSuccess) =>
GetPurchases(null, null, onFailure, onSuccess);
public void GetPurchases(ProductType? productType, Enum? purchaseStatus, Action<RuStoreError> onFailure, Action<List<IPurchase>> onSuccess) {
if (!IsPlatformSupported(onFailure)) return;
var _purchaseStatus = purchaseStatus != null
? $"{purchaseStatus.GetType().Name}.{purchaseStatus}"
: null;
var listener = new PurchasesResponseListener(onFailure, onSuccess);
clientWrapper?.Call("getPurchases", productType?.ToString(), _purchaseStatus, listener);
}
public void GetPurchase(PurchaseId purchaseId, Action<RuStoreError> onFailure, Action<IPurchase> onSuccess) {
if (!IsPlatformSupported(onFailure)) return;
var listener = new PurchaseResponseListener(onFailure, onSuccess);
clientWrapper?.Call("getPurchase", purchaseId.value, listener);
}
public void Purchase(ProductPurchaseParams parameters, PreferredPurchaseType preferredPurchaseType, Action<RuStoreError> onFailure, Action<ProductPurchaseResult> onSuccess, PurchaseEventListener? purchaseEventListener = null)
=> Purchase(parameters, preferredPurchaseType, SdkTheme.LIGHT, onFailure, onSuccess, purchaseEventListener);
public void Purchase(ProductPurchaseParams parameters, PreferredPurchaseType preferredPurchaseType, SdkTheme sdkTheme, Action<RuStoreError> onFailure, Action<ProductPurchaseResult> onSuccess, PurchaseEventListener? purchaseEventListener = null) {
if (!IsPlatformSupported(onFailure)) return;
var listener = new ProductPurchaseResultListener(onFailure, onSuccess);
clientWrapper?.Call(
"purchase",
parameters.productId.value,
parameters.appUserEmail?.value,
parameters.appUserId?.value,
parameters.orderId?.value,
parameters.quantity != null ? parameters.quantity.value : 1,
parameters.developerPayload?.value,
preferredPurchaseType.ToString(),
sdkTheme.ToString(),
listener,
purchaseEventListener);
}
public void PurchaseTwoStep(ProductPurchaseParams parameters, Action<RuStoreError> onFailure, Action<ProductPurchaseResult> onSuccess, PurchaseEventListener? purchaseEventListener = null)
=> PurchaseTwoStep(parameters, SdkTheme.LIGHT, onFailure, onSuccess, purchaseEventListener);
public void PurchaseTwoStep(ProductPurchaseParams parameters, SdkTheme sdkTheme, Action<RuStoreError> onFailure, Action<ProductPurchaseResult> onSuccess, PurchaseEventListener? purchaseEventListener = null) {
if (!IsPlatformSupported(onFailure)) return;
var listener = new ProductPurchaseResultListener(onFailure, onSuccess);
clientWrapper?.Call(
"purchaseTwoStep",
parameters.productId.value,
parameters.appUserEmail?.value,
parameters.appUserId?.value,
parameters.orderId?.value,
parameters.quantity != null ? parameters.quantity.value : 1,
parameters.developerPayload?.value,
sdkTheme.ToString(),
listener,
purchaseEventListener);
}
public void ConfirmTwoStepPurchase(PurchaseId purchaseId, DeveloperPayload? developerPayload, Action<RuStoreError> onFailure, Action onSuccess) {
if (!IsPlatformSupported(onFailure)) return;
var listener = new ConfirmTwoStepPurchaseResponseListener(onFailure, onSuccess);
clientWrapper?.Call("confirmTwoStepPurchase", purchaseId.value, developerPayload?.value, listener);
}
public void CancelTwoStepPurchase(PurchaseId purchaseId, Action<RuStoreError> onFailure, Action onSuccess) {
if (!IsPlatformSupported(onFailure)) return;
var listener = new CancelTwoStepPurchaseResponseListener(onFailure, onSuccess);
clientWrapper?.Call("cancelTwoStepPurchase", purchaseId.value, listener);
}
private bool IsPlatformSupported(Action<RuStoreError>? onFailure = null) {
if(Application.platform != RuntimePlatform.Android) {
onFailure?.Invoke(new RuStoreError() {
name = "RuStorePayClientError",
description = "Unsupported platform"
});
return false;
}
return true;
}
}
}
- Страницы
- AmountLabel.cs.en
- AmountLabel.cs
- AppUserEmail.cs.en
- AppUserEmail.cs
- AppUserId.cs.en
- AppUserId.cs
- ApplicationPurchaseStatus.cs.en
- ApplicationPurchaseStatus.cs
- BaseFields.cs.en
- BaseFields.cs
- BaseValue.cs.en
- BaseValue.cs
- Callbacks.en
- Callbacks
- CancelTwoStepPurchase.cs.en
- CancelTwoStepPurchase.cs
- CancelTwoStepPurchaseResponseListener.cs.en
- CancelTwoStepPurchaseResponseListener.cs
- ConfirmTwoStepPurchase.cs.en
- ConfirmTwoStepPurchase.cs
- ConfirmTwoStepPurchaseResponseListener.cs.en
- ConfirmTwoStepPurchaseResponseListener.cs
- Currency.cs.en
- Currency.cs
- Data.en
- Data
- DataConverter.cs.en
- DataConverter.cs
- Description.cs.en
- Description.cs
- DeveloperPayload.cs.en
- DeveloperPayload.cs
- GetProducts.cs.en
- GetProducts.cs
- GetPurchase.cs.en
- GetPurchase.cs
- GetPurchaseAvailability.cs.en
- GetPurchaseAvailability.cs
- GetPurchases.cs.en
- GetPurchases.cs
- GetPurchases_with_params.cs.en
- GetPurchases_with_params.cs
- GetUserAuthorizationStatus.cs.en
- GetUserAuthorizationStatus.cs
- IPurchase.cs.en
- IPurchase.cs
- IPurchaseStatus.cs.en
- IPurchaseStatus.cs
- InvoiceId.cs.en
- InvoiceId.cs
- IsRuStoreInstalled.cs.en
- IsRuStoreInstalled.cs
- Java.en
- Java
- Model.en
- Model
- OrderId.cs.en
- OrderId.cs
- PaymentExceptionConverter.cs.en
- PaymentExceptionConverter.cs
- PreferredPurchaseType.cs.en
- PreferredPurchaseType.cs
- Price.cs.en
- Price.cs
- Product.cs.en
- Product.cs
- ProductId.cs.en
- ProductId.cs
- ProductPurchase.cs.en
- ProductPurchase.cs
- ProductPurchaseParams.cs.en
- ProductPurchaseParams.cs
- ProductPurchaseResult.cs.en
- ProductPurchaseResult.cs
- ProductPurchaseResultListener.cs.en
- ProductPurchaseResultListener.cs
- ProductPurchaseStatus.cs.en
- ProductPurchaseStatus.cs
- ProductType.cs.en
- ProductType.cs
- ProductsResponseListener.cs.en
- ProductsResponseListener.cs
- Purchase.cs.en
- Purchase.cs
- PurchaseAvailabilityListener.cs.en
- PurchaseAvailabilityListener.cs
- PurchaseAvailabilityResult.cs.en
- PurchaseAvailabilityResult.cs
- PurchaseEventListener.cs.en
- PurchaseEventListener.cs
- PurchaseId.cs.en
- PurchaseId.cs
- PurchaseResponseListener.cs.en
- PurchaseResponseListener.cs
- PurchaseTwoStep.cs.en
- PurchaseTwoStep.cs
- PurchaseTwoStep_with_theme.cs.en
- PurchaseTwoStep_with_theme.cs
- PurchaseType.cs.en
- PurchaseType.cs
- Purchase_with_theme.cs.en
- Purchase_with_theme.cs
- PurchasesResponseListener.cs.en
- PurchasesResponseListener.cs
- Quantity.cs.en
- Quantity.cs
- RuStoreDeeplinkActivityDefault.java.en
- RuStoreDeeplinkActivityDefault.java
- RuStorePayClient.cs.en
- RuStorePayClient.cs
- RuStorePayClient_Instance.cs.en
- RuStorePayClient_Instance.cs
- Runtime.en
- Runtime
- RustorePaymentException.cs.en
- RustorePaymentException.cs
- SdkTheme.cs.en
- SdkTheme.cs
- SubscriptionInfo.cs.en
- SubscriptionInfo.cs
- SubscriptionPeriod.cs.en
- SubscriptionPeriod.cs
- SubscriptionPurchase.cs.en
- SubscriptionPurchase.cs
- SubscriptionPurchaseStatus.cs.en
- SubscriptionPurchaseStatus.cs
- SubscriptionToken.cs.en
- SubscriptionToken.cs
- Title.cs.en
- Title.cs
- Url.cs.en
- Url.cs
- UserAuthorizationStatus.cs.en
- UserAuthorizationStatus.cs
- UserAuthorizationStatusListener.cs.en
- UserAuthorizationStatusListener.cs
- docs.en
- docs
- examples.en
- examples
- ru.rustore.pay.en
- ru.rustore.pay
- AmountLabel.cs.en
- AmountLabel.cs
- AppUserEmail.cs.en
- AppUserEmail.cs
- AppUserId.cs.en
- AppUserId.cs
- ApplicationPurchaseStatus.cs.en
- ApplicationPurchaseStatus.cs
- BaseFields.cs.en
- BaseFields.cs
- BaseValue.cs.en
- BaseValue.cs
- Callbacks.en
- Callbacks
- CancelTwoStepPurchase.cs.en
- CancelTwoStepPurchase.cs
- CancelTwoStepPurchaseResponseListener.cs.en
- CancelTwoStepPurchaseResponseListener.cs
- ConfirmTwoStepPurchase.cs.en
- ConfirmTwoStepPurchase.cs
- ConfirmTwoStepPurchaseResponseListener.cs.en
- ConfirmTwoStepPurchaseResponseListener.cs
- Currency.cs.en
- Currency.cs
- Data.en
- Data
- DataConverter.cs.en
- DataConverter.cs
- Description.cs.en
- Description.cs
- DeveloperPayload.cs.en
- DeveloperPayload.cs
- GetProducts.cs.en
- GetProducts.cs
- GetPurchase.cs.en
- GetPurchase.cs
- GetPurchaseAvailability.cs.en
- GetPurchaseAvailability.cs
- GetPurchases.cs.en
- GetPurchases.cs
- GetPurchases_with_params.cs.en
- GetPurchases_with_params.cs
- GetUserAuthorizationStatus.cs.en
- GetUserAuthorizationStatus.cs
- IPurchase.cs.en
- IPurchase.cs
- IPurchaseStatus.cs.en
- IPurchaseStatus.cs
- InvoiceId.cs.en
- InvoiceId.cs
- IsRuStoreInstalled.cs.en
- IsRuStoreInstalled.cs
- Java.en
- Java
- Model.en
- Model
- OrderId.cs.en
- OrderId.cs
- PaymentExceptionConverter.cs.en
- PaymentExceptionConverter.cs
- PreferredPurchaseType.cs.en
- PreferredPurchaseType.cs
- Price.cs.en
- Price.cs
- Product.cs.en
- Product.cs
- ProductId.cs.en
- ProductId.cs
- ProductPurchase.cs.en
- ProductPurchase.cs
- ProductPurchaseParams.cs.en
- ProductPurchaseParams.cs
- ProductPurchaseResult.cs.en
- ProductPurchaseResult.cs
- ProductPurchaseResultListener.cs.en
- ProductPurchaseResultListener.cs
- ProductPurchaseStatus.cs.en
- ProductPurchaseStatus.cs
- ProductType.cs.en
- ProductType.cs
- ProductsResponseListener.cs.en
- ProductsResponseListener.cs
- Purchase.cs.en
- Purchase.cs
- PurchaseAvailabilityListener.cs.en
- PurchaseAvailabilityListener.cs
- PurchaseAvailabilityResult.cs.en
- PurchaseAvailabilityResult.cs
- PurchaseEventListener.cs.en
- PurchaseEventListener.cs
- PurchaseId.cs.en
- PurchaseId.cs
- PurchaseResponseListener.cs.en
- PurchaseResponseListener.cs
- PurchaseTwoStep.cs.en
- PurchaseTwoStep.cs
- PurchaseTwoStep_with_theme.cs.en
- PurchaseTwoStep_with_theme.cs
- PurchaseType.cs.en
- PurchaseType.cs
- Purchase_with_theme.cs.en
- Purchase_with_theme.cs
- PurchasesResponseListener.cs.en
- PurchasesResponseListener.cs
- Quantity.cs.en
- Quantity.cs
- RuStoreDeeplinkActivityDefault.java.en
- RuStoreDeeplinkActivityDefault.java
- RuStorePayClient.cs.en
- RuStorePayClient.cs
- RuStorePayClient_Instance.cs.en
- RuStorePayClient_Instance.cs
- Runtime.en
- Runtime
- RustorePaymentException.cs.en
- RustorePaymentException.cs
- SdkTheme.cs.en
- SdkTheme.cs
- SubscriptionInfo.cs.en
- SubscriptionInfo.cs
- SubscriptionPeriod.cs.en
- SubscriptionPeriod.cs
- SubscriptionPurchase.cs.en
- SubscriptionPurchase.cs
- SubscriptionPurchaseStatus.cs.en
- SubscriptionPurchaseStatus.cs
- SubscriptionToken.cs.en
- SubscriptionToken.cs
- Title.cs.en
- Title.cs
- Url.cs.en
- Url.cs
- UserAuthorizationStatus.cs.en
- UserAuthorizationStatus.cs
- UserAuthorizationStatusListener.cs.en
- UserAuthorizationStatusListener.cs
- docs.en
- docs
- examples.en
- examples
- ru.rustore.pay.en
- ru.rustore.pay