コード例 #1
0
    /*
     * private void OnSubmitSuccess(object sender, ShopBuyStoneArguments arg)
     * {
     *      if(string.IsNullOrEmpty(arg.ResponseBaseInfo1.Error))
     *      {
     *              if(arg.ResponseBaseInfo1.ResponseCode.Equals("0"))
     *              {
     *                      this.Success(StoreKitHelper.ComfirmTransaction(this.transactionID));
     *              }
     *              else
     *              {
     *                      this.Success(StoreKitHelper.ComfirmTransaction(this.transactionID));
     *              }
     *      }
     *      else
     *      {
     *              this.Success(null);
     *      }
     * }
     */

    private void Success(string comfirmedProduct)
    {
        this.ShopModule.State = comfirmedProduct == null ? ShopActionState.Idle : ShopActionState.Success;
        if (this.SuccessorContext == null)
        {
            this.ShopModule.ChangeContext(new IdleContext());
        }
        else
        {
            this.ShopModule.State = ShopActionState.Operating;
            FetchContext fetchContext = this.SuccessorContext as FetchContext;
            this.ShopModule.ChangeContext(this.SuccessorContext);
            if (fetchContext != null)
            {
                fetchContext.StartFetch();
            }
        }
        if (comfirmedProduct == null)
        {
            return;
        }
        ShopItemInformation info = new ShopItemInformation();

        //info.Initialize(Json.jsonDecode(comfirmedProduct) as Hashtable);
        this.ShopModule.OnPurchaseSuccessed(info);
    }
コード例 #2
0
    public void Buy(string purchaseID, string productID)
    {
        Debug.Log("buying!");
        NdShopUtility shopUtility = (NdShopUtility)this.ShopModule;

        PlayerPrefs.SetString(NdShopUtility.UNCONFIRMED_PURCHASE_ID_KEY, purchaseID);
        PlayerPrefs.Save();
        ShopItemInformation item = shopUtility.ProductsDict[productID];

        NdCenter.Instace.Buy(purchaseID, productID, item.LocaleTitle, double.Parse(item.Price), double.Parse(item.Price), 1, "");
    }
コード例 #3
0
    private List <ShopItemInformation> ConstructShopItemInformation()
    {
        string products = StoreKitHelper.GetValidProducts();

        Debug.Log(products);

        if (products == null)
        {
            return(null);
        }

        ArrayList productList = JsonUtility.jsonDecode(products) as ArrayList;

        if (productList == null)
        {
            return(null);
        }

        List <ShopItemInformation> temp = new List <ShopItemInformation>();

        foreach (object product in productList)
        {
            Hashtable info = product as Hashtable;
            if (info == null)
            {
                return(null);
            }
            ShopItemInformation itemInformation = new ShopItemInformation();
            itemInformation.Initialize(info);
            temp.Add(itemInformation);
        }

        List <ShopItemInformation> result       = new List <ShopItemInformation>();
        List <ProductConfigData>   productsData = ((iOSShopUtility)this.ShopModule).ProductsData;

        foreach (ProductConfigData p in productsData)
        {
            foreach (ShopItemInformation info in temp)
            {
                if (p.ProductID.Equals(info.ProductID))
                {
                    info.GemQuantity = p.GemQuantity;
                    info.IconName    = p.IconName;
                    result.Add(info);
                    break;
                }
            }
        }

        return(result);
    }
コード例 #4
0
    private List <ShopItemInformation> ConstructShopItemInformation()
    {
        string products = StoreKitHelper.GetValidProducts();

        Debug.Log(products);

        if (products == null)
        {
            return(null);
        }

        ArrayList productList = new ArrayList();        //= Json.jsonDecode(products) as ArrayList;

        if (productList == null)
        {
            return(null);
        }

        List <ShopItemInformation> results = new List <ShopItemInformation>();

        foreach (object product in productList)
        {
            Hashtable info = product as Hashtable;
            if (info == null)
            {
                return(null);
            }
            ShopItemInformation itemInformation = new ShopItemInformation();
            itemInformation.Initialize(info);
            results.Add(itemInformation);
        }

        /*
         * results.Sort((x, y) =>
         *                      {
         *                              if(float.Parse(x.Price) < float.Parse(y.Price))
         *                              {
         *                                      return -1;
         *                              }
         *                              else if(float.Parse(x.Price) > float.Parse(y.Price))
         *                              {
         *                                      return 1;
         *                              }
         *                              return 0;
         *                      });
         */
        return(results);
    }
コード例 #5
0
ファイル: NdShopUtility.cs プロジェクト: KangLLL/century_war
    private void InitialProductItems()
    {
        this.m_ProductsDict = new Dictionary <string, ShopItemInformation>();
        List <ProductConfigData> products = ConfigInterface.Instance.ProductConfigHelper.GetProducts(PlatformType.Nd);

        List <ShopItemInformation> result = new List <ShopItemInformation>();

        for (int i = 0; i < products.Count; i++)
        {
            ShopItemInformation info = new ShopItemInformation();
            info.Initialize(products[i]);

            this.m_ProductsDict.Add(info.ProductID, info);
            result.Add(info);
        }
        this.OnRequestSuccessed(result);
    }
コード例 #6
0
    public override void Execute()
    {
        if (!m_IsConfirm)
        {
            string purchaseID = PlayerPrefs.GetString(NdShopUtility.UNCONFIRMED_PURCHASE_ID_KEY);
            string productID  = PlayerPrefs.GetString(NdShopUtility.UNCONFIRMED_PRODUCT_ID_KEY);
            ConfirmNdPurchaseRequestParameter request = new ConfirmNdPurchaseRequestParameter();
            request.PurchaseID = purchaseID;
            request.ProductID  = productID;
            CommunicationUtility.Instance.ConfirmNdPurchase(request, this.ShopModule, "ReceivedConfirmResponse", true);

            this.m_IsConfirm = true;
        }
        else
        {
            NdShopUtility ndShopUtility = (NdShopUtility)this.ShopModule;
            if (ndShopUtility.IsReceivedConfirmResponse)
            {
                NdIdleContext context = new NdIdleContext();
                this.ShopModule.ChangeContext(context);

                if (string.IsNullOrEmpty(ndShopUtility.CurrentConfirmError))
                {
                    this.ShopModule.State = ShopActionState.Success;
                    string productID             = PlayerPrefs.GetString(NdShopUtility.UNCONFIRMED_PRODUCT_ID_KEY);
                    ShopItemInformation shopItem = ndShopUtility.ProductsDict[productID];
                    this.ShopModule.OnPurchaseSuccessed(shopItem);
                }
                else
                {
                    this.ShopModule.State = ShopActionState.Fail;
                    this.ShopModule.OnPurchaseFailed(new PurchaseFailInformation()
                    {
                        Reason = PurchaseFailedReason.ComfirmFail, ErrorDescription = ndShopUtility.CurrentConfirmError
                    });
                }
                PlayerPrefs.DeleteKey(NdShopUtility.UNCONFIRMED_PURCHASE_ID_KEY);
                PlayerPrefs.DeleteKey(NdShopUtility.UNCONFIRMED_PRODUCT_ID_KEY);
                PlayerPrefs.Save();
            }
        }
    }
コード例 #7
0
 public void OnPurchaseSuccessed(ShopItemInformation shopItem)
 {
     this.m_PurchaseSuccessedListeners.Invoke(shopItem);
     this.m_PurchasedItem = shopItem;
 }
コード例 #8
0
 public void Purchase(ShopItemInformation shopItem)
 {
     this.m_PlayerModule.Receive(0, 0, 0, shopItem.GemQuantity);
 }