lib_unity_purchase/Runtime/Stores/Android/GooglePlay/GooglePlayPurchaseCallback.cs

56 lines
1.8 KiB
C#

#nullable enable
using Uniject;
using UnityEngine.Purchasing.Extension;
using UnityEngine.Purchasing.Interfaces;
namespace UnityEngine.Purchasing
{
class GooglePlayPurchaseCallback : IGooglePurchaseCallback
{
IStoreCallback? m_StoreCallback;
IGooglePlayConfigurationInternal? m_GooglePlayConfigurationInternal;
readonly IUtil m_Util;
public GooglePlayPurchaseCallback(IUtil util)
{
m_Util = util;
}
public void SetStoreCallback(IStoreCallback storeCallback)
{
m_StoreCallback = storeCallback;
}
public void SetStoreConfiguration(IGooglePlayConfigurationInternal configuration)
{
m_GooglePlayConfigurationInternal = configuration;
}
public void OnPurchaseSuccessful(IGooglePurchase purchase, string receipt, string purchaseToken)
{
m_StoreCallback?.OnPurchaseSucceeded(purchase.sku ?? string.Empty, receipt, purchaseToken);
}
public void OnPurchaseFailed(PurchaseFailureDescription purchaseFailureDescription)
{
m_StoreCallback?.OnPurchaseFailed(purchaseFailureDescription);
}
public void NotifyDeferredPurchase(IGooglePurchase purchase, string receipt, string purchaseToken)
{
m_Util.RunOnMainThread(() =>
m_GooglePlayConfigurationInternal?.NotifyDeferredPurchase(m_StoreCallback, purchase, receipt,
purchaseToken));
}
public void NotifyDeferredProrationUpgradeDowngradeSubscription(string sku)
{
m_Util.RunOnMainThread(() =>
m_GooglePlayConfigurationInternal?.NotifyDeferredProrationUpgradeDowngradeSubscription(m_StoreCallback,
sku));
}
}
}