parent
0f4433b493
commit
5bc24e3443
|
|
@ -140,6 +140,13 @@ namespace Guru
|
||||||
add => _onPurchaseStart += value;
|
add => _onPurchaseStart += value;
|
||||||
remove => _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;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
|
|
||||||
public partial class GuruSDK
|
public partial class GuruSDK
|
||||||
{
|
{
|
||||||
public static bool IsIAPReady = false;
|
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>
|
/// <summary>
|
||||||
/// 初始化IAP 功能
|
/// 初始化IAP 功能
|
||||||
|
|
@ -18,6 +29,7 @@ namespace Guru
|
||||||
GuruIAP.Instance.OnRestored += OnRestored;
|
GuruIAP.Instance.OnRestored += OnRestored;
|
||||||
GuruIAP.Instance.OnBuyStart += OnBuyStart;
|
GuruIAP.Instance.OnBuyStart += OnBuyStart;
|
||||||
GuruIAP.Instance.OnBuyEnd += OnBuyEnd;
|
GuruIAP.Instance.OnBuyEnd += OnBuyEnd;
|
||||||
|
GuruIAP.Instance.OnBuyFailed += OnBuyFailed;
|
||||||
|
|
||||||
GuruIAP.Instance.InitWithKeys(googleKey, appleRootCerts, IsDebugMode);
|
GuruIAP.Instance.InitWithKeys(googleKey, appleRootCerts, IsDebugMode);
|
||||||
}
|
}
|
||||||
|
|
@ -58,12 +70,22 @@ namespace Guru
|
||||||
return null;
|
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;
|
private static Action<string, bool> _onPurchaseCallback;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 购买商品, 通过商品Name
|
/// 购买商品, 通过商品Name
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="productId"></param>
|
/// <param name="productName"></param>
|
||||||
/// <param name="purchaseCallback"></param>
|
/// <param name="purchaseCallback"></param>
|
||||||
public static void Purchase(string productName, Action<string, bool> purchaseCallback = null)
|
public static void Purchase(string productName, Action<string, bool> purchaseCallback = null)
|
||||||
{
|
{
|
||||||
|
|
@ -97,15 +119,28 @@ namespace Guru
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="productId"></param>
|
/// <param name="productId"></param>
|
||||||
/// <param name="success"></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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
private static void OnBuyStart(string productId)
|
/// 支付开始
|
||||||
|
/// </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
|
#endregion
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue