123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- using System;
- using System.Data;
- using JetBrains.Annotations;
- using TMPro;
- using UnityEngine;
- using UnityEngine.Purchasing;
-
- public class MyIAPManager2 : MonoBehaviour,IStoreListener{
- private IStoreController controller;
- private IExtensionProvider extensions;
- // Start is called before the first frame update
- void Start(){
- if(Main.Global.已載入現金道具表==false){
- Main.Global.已載入現金道具表=true;
- SQL_CommString.SQL_連線字串_正式_SQL();
- if(PlayerPrefs.HasKey("系統語言")){Main.Global.系統語言=PlayerPrefs.GetString("系統語言");}
- login.刷新現金道具表();
- /*SQL_game_sys.SQL_載入現金道具資料表();
- DataSet ds1 = new();
- SQL_Module.da.Fill(ds1);
- Main.Global.道具清單_tabel = ds1.Tables[0];*/
- }
- Initialize();
- }
- public void Initialize() {
- var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
- foreach (DataRow row in Main.Global.道具清單_tabel.Rows){
- builder.AddProduct(row[2].ToString(), ProductType.Consumable);
- }
- foreach (DataRow row in Main.Global.菟幣道具清單_tabel.Rows){
- builder.AddProduct(row[2].ToString(), ProductType.Consumable);
- }
- builder.AddProduct("tubao_noad1", ProductType.Consumable);
- UnityPurchasing.Initialize (this, builder);
- }
-
- /// <summary>
- /// Unity IAP 准备好可以进行购买时调用。
- /// </summary>
- public void OnInitialized (IStoreController controller, IExtensionProvider extensions){
- this.controller = controller;
- this.extensions = extensions;
- }
-
- /// <summary>
- /// Unity IAP 遇到不可恢复的初始化错误时调用。
- ///
- /// 请注意,如果互联网不可用,则不会调用此项;Unity IAP
- /// 将尝试初始化,直到互联网变为可用。
- /// </summary>
- public void OnInitializeFailed (InitializationFailureReason error){
- }
-
- /// <summary>
- /// 购买完成时调用。
- ///
- /// 可能在 OnInitialized() 之后的任何时间调用。
- /// </summary>
- public PurchaseProcessingResult ProcessPurchase (PurchaseEventArgs e){
- Player.購買完成(e.purchasedProduct.definition.id);
- return PurchaseProcessingResult.Complete;
- }
-
- /// <summary>
- /// 购买失败时调用。
- /// </summary>
- public void OnPurchaseFailed (Product i, PurchaseFailureReason p){
- }
-
- public void OnInitializeFailed(InitializationFailureReason error, string message){
- throw new System.NotImplementedException();
- }
- public void OnPurchaseClicked(string productId){
- controller.InitiatePurchase(productId);
- }
- public SubscriptionInfo GetSubscriptionInfo(string ProductId){
- var product = controller.products.WithID(ProductId);
- if (product != null && product.receipt != null) {
- var subscriptionManager = new SubscriptionManager(product, null);
- SubscriptionInfo info = subscriptionManager.getSubscriptionInfo();
- return info;
- }else{
- Debug.LogError("找不到产品或收据为空");
- return null;
- }
- }
- public DateTime? GetExpireDate(string ProductId){
- var product = controller.products.WithID(ProductId);
- if (product != null && product.receipt != null){
- var subscriptionManager = new SubscriptionManager(product, null);
- SubscriptionInfo info = subscriptionManager.getSubscriptionInfo();
- if (info != null){
- return info.getExpireDate();
- }
- }else{
- Debug.LogError("找不到产品或收据为空");
- }
- return null;
- }
- public bool IsSubscribed(string ProductId){
- var product = controller.products.WithID(ProductId);
- if (product != null && product.receipt != null){
- var subscriptionManager = new SubscriptionManager(product, null);
- SubscriptionInfo info = subscriptionManager.getSubscriptionInfo();
- if (info != null){
- return info.isSubscribed() == Result.True;
- }
- }else{
- Debug.LogError("找不到产品或收据为空");
- }
- return false;
- }
- }
|