|
|
@@ -1,3 +1,4 @@ |
|
|
|
using System; |
|
|
|
using UnityEngine; |
|
|
|
using UnityEngine.Purchasing; |
|
|
|
using UnityEngine.Purchasing.Extension; |
|
|
@@ -7,13 +8,14 @@ public class IAPManager : MonoBehaviour, IDetailedStoreListener |
|
|
|
private IStoreController controller; |
|
|
|
private IExtensionProvider extensions; |
|
|
|
|
|
|
|
private string productId = "your_product_id"; |
|
|
|
private string subscriptionId = "com.yourapp.sub.month"; |
|
|
|
|
|
|
|
void Start() |
|
|
|
{ |
|
|
|
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); |
|
|
|
builder.AddProduct(productId, ProductType.Consumable); |
|
|
|
UnityPurchasing.Initialize(this, builder); |
|
|
|
builder.AddProduct(subscriptionId, ProductType.Subscription); |
|
|
|
|
|
|
|
UnityPurchasing.Initialize(this, builder); // 使用新版接口 |
|
|
|
} |
|
|
|
|
|
|
|
public void OnInitialized(IStoreController controller, IExtensionProvider extensions) |
|
|
@@ -28,24 +30,24 @@ public class IAPManager : MonoBehaviour, IDetailedStoreListener |
|
|
|
Debug.LogError("IAP 初始化失败: " + error); |
|
|
|
} |
|
|
|
|
|
|
|
public void OnPurchaseFailed(Product product, PurchaseFailureDescription failureDescription) |
|
|
|
public void OnInitializeFailed(InitializationFailureReason error, string message) |
|
|
|
{ |
|
|
|
Debug.LogError($"购买失败: {failureDescription.reason}"); |
|
|
|
Debug.LogError($"详细失败信息: {error} - {message}"); |
|
|
|
} |
|
|
|
|
|
|
|
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) |
|
|
|
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) |
|
|
|
{ |
|
|
|
if (e.purchasedProduct.definition.id == productId) |
|
|
|
if (args.purchasedProduct.definition.id == subscriptionId) |
|
|
|
{ |
|
|
|
Debug.Log("购买成功: " + e.purchasedProduct.definition.id); |
|
|
|
// 处理道具发放逻辑 |
|
|
|
Debug.Log("订阅成功!"); |
|
|
|
// 解锁功能 |
|
|
|
} |
|
|
|
return PurchaseProcessingResult.Complete; |
|
|
|
} |
|
|
|
|
|
|
|
public void OnInitializeFailed(InitializationFailureReason error, string message) |
|
|
|
public void OnPurchaseFailed(Product product, PurchaseFailureDescription failureDescription) |
|
|
|
{ |
|
|
|
Debug.LogError("IAP 初始化失败: " + error); |
|
|
|
Debug.LogError($"购买失败: {failureDescription.message}"); |
|
|
|
} |
|
|
|
|
|
|
|
public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason) |
|
|
|