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();
 | 
						|
    }
 | 
						|
} |