112 lines
3.2 KiB
C#
112 lines
3.2 KiB
C#
using Guru;
|
|
using UnityEngine.Purchasing;
|
|
|
|
namespace GuruSDKService
|
|
{
|
|
public partial class GuruSDKService
|
|
{
|
|
private void AddIAPCallbackListener()
|
|
{
|
|
GuruSDK.Callbacks.IAP.OnIAPInitStart += OnIAPInitStart;
|
|
GuruSDK.Callbacks.IAP.OnIAPInitComplete += OnIAPInitComplete;
|
|
GuruSDK.Callbacks.IAP.OnPurchaseStart += OnPurchaseStart;
|
|
GuruSDK.Callbacks.IAP.OnPurchaseEnd += OnPurchaseEnd;
|
|
GuruSDK.Callbacks.IAP.OnPurchaseFailed += OnPurchaseFailed;
|
|
GuruSDK.Callbacks.IAP.OnIAPRestored += OnIAPRestored;
|
|
}
|
|
|
|
#region callbacks
|
|
|
|
private void OnIAPInitStart()
|
|
{
|
|
Log.I($"[GuruCallback][OnIAPInitStart]");
|
|
}
|
|
|
|
private void OnIAPInitComplete(bool success)
|
|
{
|
|
Log.I($"[GuruCallback][OnIAPInitComplete] success:{success}");
|
|
}
|
|
|
|
private void OnPurchaseStart(string productName)
|
|
{
|
|
Log.I($"[GuruCallback][OnPurchaseStart] productName:{productName}");
|
|
}
|
|
|
|
private void OnPurchaseEnd(string productName, bool success)
|
|
{
|
|
Log.I($"[GuruCallback][OnPurchaseEnd] productName:{productName}, success:{success}");
|
|
}
|
|
|
|
private void OnPurchaseFailed(string productName, string reason)
|
|
{
|
|
Log.I($"[GuruCallback][OnPurchaseFailed] productName:{productName}, reason:{reason}");
|
|
}
|
|
|
|
private void OnIAPRestored(bool success, string msg)
|
|
{
|
|
Log.I($"[GuruCallback][OnIAPRestored] success:{success}, msg:{msg}");
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 查询接口
|
|
|
|
public string GetProductCurrencyCode(string productName)
|
|
{
|
|
if (string.IsNullOrEmpty(productName))
|
|
return Fallback();
|
|
|
|
var productInfo = GuruSDK.GetProductInfo(productName);
|
|
if (productInfo == null)
|
|
return Fallback();
|
|
|
|
return productInfo.CurrencyCode;
|
|
|
|
string Fallback()
|
|
{
|
|
return "USD";
|
|
}
|
|
}
|
|
|
|
public string GetProductPriceString(string productName)
|
|
{
|
|
if (string.IsNullOrEmpty(productName))
|
|
return Fallback();
|
|
|
|
var productInfo = GuruSDK.GetProductInfo(productName);
|
|
if (productInfo == null)
|
|
return Fallback();
|
|
|
|
return productInfo.LocalizedPriceString;
|
|
|
|
string Fallback()
|
|
{
|
|
return "$0";
|
|
}
|
|
}
|
|
|
|
public double GetProductPrice(string productName)
|
|
{
|
|
if (string.IsNullOrEmpty(productName))
|
|
return Fallback();
|
|
|
|
var productInfo = GuruSDK.GetProductInfo(productName);
|
|
if (productInfo == null)
|
|
return Fallback();
|
|
|
|
return productInfo.Price;
|
|
|
|
double Fallback()
|
|
{
|
|
return 0.0;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
public void ShowIAPLoadingView() => _serviceImp.ShowIAPBuyLoadingView();
|
|
public void CloseIAPLoadingView() => _serviceImp.CloseIAPLoadingView();
|
|
public void IAPBuySuccessTip() => _serviceImp.IAPBuySuccessTip();
|
|
public void IAPBuyFailTip() => _serviceImp.IAPBuyFailTip();
|
|
}
|
|
} |