parent
							
								
									0f4433b493
								
							
						
					
					
						commit
						9e489f6260
					
				| 
						 | 
				
			
			@ -140,6 +140,13 @@ namespace Guru
 | 
			
		|||
                    add => _onPurchaseStart += value;
 | 
			
		||||
                    remove => _onPurchaseStart -= value;
 | 
			
		||||
                }
 | 
			
		||||
                
 | 
			
		||||
                internal static Action<string, string> _onPurchaseFailed;
 | 
			
		||||
                public static event Action<string, string> OnPurchaseFailed
 | 
			
		||||
                {
 | 
			
		||||
                    add => _onPurchaseFailed += value;
 | 
			
		||||
                    remove => _onPurchaseFailed -= value;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,10 +4,21 @@ namespace Guru
 | 
			
		|||
    using System;
 | 
			
		||||
    using System.Linq;
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    public partial class GuruSDK
 | 
			
		||||
    {
 | 
			
		||||
        public static bool IsIAPReady = false;
 | 
			
		||||
 | 
			
		||||
        //---------- 支付失败原因 ----------
 | 
			
		||||
        public const string BuyFail_PurchasingUnavailable = "PurchasingUnavailable";
 | 
			
		||||
        public const string BuyFail_Pending = "ExistingPurchasePending";
 | 
			
		||||
        public const string BuyFail_ProductUnavailable = "ProductUnavailable";
 | 
			
		||||
        public const string BuyFail_SignatureInvalid = "SignatureInvalid";
 | 
			
		||||
        public const string BuyFail_UserCancelled = "UserCancelled";
 | 
			
		||||
        public const string BuyFail_PaymentDeclined = "PaymentDeclined";
 | 
			
		||||
        public const string BuyFail_DuplicateTransaction = "DuplicateTransaction";
 | 
			
		||||
        public const string BuyFail_Unknown = "Unknown";
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 初始化IAP 功能
 | 
			
		||||
| 
						 | 
				
			
			@ -18,6 +29,7 @@ namespace Guru
 | 
			
		|||
            GuruIAP.Instance.OnRestored += OnRestored;
 | 
			
		||||
            GuruIAP.Instance.OnBuyStart += OnBuyStart;
 | 
			
		||||
            GuruIAP.Instance.OnBuyEnd += OnBuyEnd;
 | 
			
		||||
            GuruIAP.Instance.OnBuyFailed += OnBuyFailed;
 | 
			
		||||
            
 | 
			
		||||
            GuruIAP.Instance.InitWithKeys(googleKey, appleRootCerts, IsDebugMode);
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -58,12 +70,22 @@ namespace Guru
 | 
			
		|||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        public static ProductSetting GetProductSetting(string productName)
 | 
			
		||||
        {
 | 
			
		||||
            var products = GuruSettings.Instance.Products;
 | 
			
		||||
            if (products != null && products.Length > 0)
 | 
			
		||||
            {
 | 
			
		||||
                return products.FirstOrDefault(p => p.ProductName == productName);   
 | 
			
		||||
            }
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        private static Action<string, bool> _onPurchaseCallback;
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 购买商品, 通过商品Name
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="productId"></param>
 | 
			
		||||
        /// <param name="productName"></param>
 | 
			
		||||
        /// <param name="purchaseCallback"></param>
 | 
			
		||||
        public static void Purchase(string productName, Action<string, bool> purchaseCallback = null)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -97,15 +119,28 @@ namespace Guru
 | 
			
		|||
        /// </summary>
 | 
			
		||||
        /// <param name="productId"></param>
 | 
			
		||||
        /// <param name="success"></param>
 | 
			
		||||
        private static void OnBuyEnd(string productId, bool success)
 | 
			
		||||
        private static void OnBuyEnd(string productName, bool success)
 | 
			
		||||
        {
 | 
			
		||||
            _onPurchaseCallback?.Invoke(productId, success);
 | 
			
		||||
            _onPurchaseCallback?.Invoke(productName, success);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        private static void OnBuyStart(string productId)
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 支付开始
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="productName"></param>
 | 
			
		||||
        private static void OnBuyStart(string productName)
 | 
			
		||||
        {
 | 
			
		||||
            Callbacks.IAP._onPurchaseStart?.Invoke(productId);
 | 
			
		||||
            Callbacks.IAP._onPurchaseStart?.Invoke(productName);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 支付失败
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="productName"></param>
 | 
			
		||||
        /// <param name="reason"></param>
 | 
			
		||||
        private static void OnBuyFailed(string productName, string reason)
 | 
			
		||||
        {
 | 
			
		||||
            Callbacks.IAP._onPurchaseFailed?.Invoke(productName, reason);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue