|
@@ -0,0 +1,68 @@
|
|
|
|
+using UnityEngine.Purchasing;
|
|
|
|
+using UnityEngine;
|
|
|
|
+
|
|
|
|
+namespace GFGGame
|
|
|
|
+{
|
|
|
|
+ public class QDAppStore
|
|
|
|
+ {
|
|
|
|
+ public static void InitPlatform()
|
|
|
|
+ {
|
|
|
|
+ IAPManager.Instance.InitializePurchasing();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static void Pay(int buyID, int count, string orderID, long Price)
|
|
|
|
+ {
|
|
|
|
+ IAPManager.Instance.Pay(buyID, count, orderID, Price);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public class IAPManager : SingletonBase<IAPManager>, IStoreListener
|
|
|
|
+ {
|
|
|
|
+ IStoreController m_StoreController; // The Unity Purchasing system.
|
|
|
|
+
|
|
|
|
+ public void Pay(int buyID, int count, string orderID, long Price)
|
|
|
|
+ {
|
|
|
|
+ Debug.Log($"Pay {buyID}");
|
|
|
|
+ m_StoreController.InitiatePurchase(buyID + "");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void InitializePurchasing()
|
|
|
|
+ {
|
|
|
|
+ Debug.Log("InitializePurchasing");
|
|
|
|
+
|
|
|
|
+ var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
|
|
|
|
+ builder.AddProduct("10001", ProductType.Consumable);
|
|
|
|
+
|
|
|
|
+ UnityPurchasing.Initialize(this, builder);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
|
|
|
|
+ {
|
|
|
|
+ Debug.Log("In-App Purchasing successfully initialized");
|
|
|
|
+ m_StoreController = controller;
|
|
|
|
+ EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, true);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void OnInitializeFailed(InitializationFailureReason error)
|
|
|
|
+ {
|
|
|
|
+ Debug.Log($"In-App Purchasing initialize failed: {error}");
|
|
|
|
+ EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, false);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
|
|
|
|
+ {
|
|
|
|
+ Debug.Log($"Purchase failed - Product: '{product.definition.id}', PurchaseFailureReason: {failureReason}");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
|
|
|
|
+ {
|
|
|
|
+ //Retrieve the purchased product
|
|
|
|
+ var product = args.purchasedProduct;
|
|
|
|
+ Debug.Log($"Purchase Complete - Product: {product.definition.id}");
|
|
|
|
+
|
|
|
|
+ //We return Complete, informing IAP that the processing on our side is done and the transaction can be closed.
|
|
|
|
+ return PurchaseProcessingResult.Complete;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|