1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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;
- }
- }
- }
|