Example #1
0
    public void PurchaseComplete(string strParam)
    {
        TsLog.LogError("PurchaseComplete = {0}", new object[]
        {
            strParam
        });
        string[] array = strParam.Split(new char[]
        {
            '\n'
        });
        string text = string.Empty;

        if (!string.IsNullOrEmpty(this.Receipt.ToString()))
        {
            this.Receipt.Append("&");
        }
        string[] array2 = array;
        for (int i = 0; i < array2.Length; i++)
        {
            string text2 = array2[i];
            if (text2.Contains("product_id"))
            {
                text = text2.Substring("product_id:".Length);
                this.Receipt.Append("product_id=" + text);
                break;
            }
        }
        NrMyCharInfo myCharInfo = NrTSingleton <NkCharManager> .Instance.GetMyCharInfo();

        if (myCharInfo != null)
        {
            GS_BILLINGCHECK_REQ gS_BILLINGCHECK_REQ = new GS_BILLINGCHECK_REQ();
            gS_BILLINGCHECK_REQ.i64ItemMallIndex = NrTSingleton <ItemMallItemManager> .Instance.GetItemIndex(text);

            TKString.StringChar(this.m_strTid, ref gS_BILLINGCHECK_REQ.UniqueCode);
            TKString.StringChar(this.Receipt.ToString(), ref gS_BILLINGCHECK_REQ.Receipt);
            SendPacket.GetInstance().SendObject(eGAME_PACKET_ID.GS_BILLINGCHECK_REQ, gS_BILLINGCHECK_REQ);
            PlayerPrefs.SetString(NrPrefsKey.SHOP_PRODUCT_ID, gS_BILLINGCHECK_REQ.i64ItemMallIndex.ToString());
            PlayerPrefs.SetString(NrPrefsKey.SHOP_RECEIPT, this.Receipt.ToString());
            TsPlatform.FileLog(string.Format("TStorePurchaseComplete\nReceipt ={0} ProductID = {1} ItemMallIdex = {2}", this.Receipt, text, gS_BILLINGCHECK_REQ.i64ItemMallIndex));
            TsLog.LogWarning("Send BillingCheck ProductID = {0} ItemMallIdex = {1}", new object[]
            {
                text,
                gS_BILLINGCHECK_REQ.i64ItemMallIndex
            });
            this.Receipt.Remove(0, this.Receipt.Length);
        }
        GS_BILLING_ITEM_RECODE_REQ gS_BILLING_ITEM_RECODE_REQ = new GS_BILLING_ITEM_RECODE_REQ();

        gS_BILLING_ITEM_RECODE_REQ.i8Type           = 1;
        gS_BILLING_ITEM_RECODE_REQ.i8Result         = 0;
        gS_BILLING_ITEM_RECODE_REQ.i64ItemMallIndex = NrTSingleton <ItemMallItemManager> .Instance.GetItemIndex(text);

        SendPacket.GetInstance().SendObject(eGAME_PACKET_ID.GS_BILLING_ITEM_RECODE_REQ, gS_BILLING_ITEM_RECODE_REQ);
        NrTSingleton <NrMainSystem> .Instance.m_bIsBilling = false;
    }
Example #2
0
    public void RecoveryItem()
    {
        this.m_RecoveryItem = this.m_PushPurchaseList.Pop();
        if (this.m_RecoveryItem != null)
        {
            this.Receipt.Remove(0, this.Receipt.Length);
            string arg = string.Concat(new object[]
            {
                "{\"orderId\":\"",
                this.m_RecoveryItem.orderId,
                "\",\"packageName\":\"",
                this.m_RecoveryItem.packageName,
                "\",\"productId\":\"",
                this.m_RecoveryItem.productId,
                "\",\"purchaseTime\":",
                this.m_RecoveryItem.purchaseTime,
                ",\"purchaseState\":",
                (int)this.m_RecoveryItem.purchaseState,
                ",\"developerPayload\":\"",
                this.m_RecoveryItem.developerPayload,
                "\",\"purchaseToken\":\"",
                this.m_RecoveryItem.purchaseToken,
                "\"}"
            });
            this.Receipt.Append(string.Format("MarketType={0}&Signature={1}&SignedData={2}", "android", this.m_RecoveryItem.signature, arg));
            NrMyCharInfo myCharInfo = NrTSingleton <NkCharManager> .Instance.GetMyCharInfo();

            if (myCharInfo != null)
            {
                GS_BILLINGCHECK_REQ gS_BILLINGCHECK_REQ = new GS_BILLINGCHECK_REQ();
                gS_BILLINGCHECK_REQ.i64ItemMallIndex = NrTSingleton <ItemMallItemManager> .Instance.GetItemIndex(this.m_RecoveryItem.productId);

                gS_BILLINGCHECK_REQ.SN = myCharInfo.m_SN;
                TKString.StringChar(this.Receipt.ToString(), ref gS_BILLINGCHECK_REQ.Receipt);
                SendPacket.GetInstance().SendObject(eGAME_PACKET_ID.GS_BILLINGCHECK_REQ, gS_BILLINGCHECK_REQ);
                TsPlatform.FileLog(string.Format("GooglePurchaseComplete\nReceipt ={0} ProductID = {1} ItemMallIdex = {2}", this.Receipt, this.m_RecoveryItem.productId, gS_BILLINGCHECK_REQ.i64ItemMallIndex));
                GS_BILLING_ITEM_RECODE_REQ gS_BILLING_ITEM_RECODE_REQ = new GS_BILLING_ITEM_RECODE_REQ();
                gS_BILLING_ITEM_RECODE_REQ.i8Type           = 2;
                gS_BILLING_ITEM_RECODE_REQ.i8Result         = 0;
                gS_BILLING_ITEM_RECODE_REQ.i64ItemMallIndex = gS_BILLINGCHECK_REQ.i64ItemMallIndex;
                SendPacket.GetInstance().SendObject(eGAME_PACKET_ID.GS_BILLING_ITEM_RECODE_REQ, gS_BILLING_ITEM_RECODE_REQ);
                PlayerPrefs.SetString(NrPrefsKey.SHOP_PRODUCT_ID, gS_BILLINGCHECK_REQ.i64ItemMallIndex.ToString());
                PlayerPrefs.SetString(NrPrefsKey.SHOP_RECEIPT, this.Receipt.ToString());
                if (TsPlatform.IsBand)
                {
                    PlayerPrefs.SetString(NrPrefsKey.BAND_RECEIPT, this.m_RecoveryItem.orderId);
                }
            }
        }
        else
        {
            this.m_bRecovery = false;
        }
    }
    public void RecoveryItem()
    {
        this.m_RecoveryItem = this.m_PushPurchaseList.Pop();
        if (this.m_RecoveryItem != null)
        {
            this.Receipt.Remove(0, this.Receipt.Length);
            string arg = string.Empty;
            this.NStorePurchase(this.m_RecoveryItem.getOriginalPurchaseAsJsonText().dictionaryFromJson(), ref this.strProductID);
            arg = this.m_RecoveryItem.getSignature();
            if (TsPlatform.IsBand)
            {
                this.Receipt.Append(string.Format("MarketType={0}&Signature={1}&SignedData={2}", "bandnaver", arg, this.m_RecoveryItem.getOriginalPurchaseAsJsonText()));
            }
            else
            {
                this.Receipt.Append(string.Format("MarketType={0}&Signature={1}&SignedData={2}", "naver", arg, this.m_RecoveryItem.getOriginalPurchaseAsJsonText()));
            }
            NrMyCharInfo myCharInfo = NrTSingleton <NkCharManager> .Instance.GetMyCharInfo();

            if (myCharInfo != null)
            {
                GS_BILLINGCHECK_REQ gS_BILLINGCHECK_REQ = new GS_BILLINGCHECK_REQ();
                gS_BILLINGCHECK_REQ.i64ItemMallIndex = NrTSingleton <ItemMallItemManager> .Instance.GetItemIndex(this.strProductID);

                TKString.StringChar(this.Receipt.ToString(), ref gS_BILLINGCHECK_REQ.Receipt);
                SendPacket.GetInstance().SendObject(eGAME_PACKET_ID.GS_BILLINGCHECK_REQ, gS_BILLINGCHECK_REQ);
                PlayerPrefs.SetString(NrPrefsKey.SHOP_PRODUCT_ID, gS_BILLINGCHECK_REQ.i64ItemMallIndex.ToString());
                PlayerPrefs.SetString(NrPrefsKey.SHOP_RECEIPT, this.Receipt.ToString());
                if (TsPlatform.IsBand)
                {
                    PlayerPrefs.SetString(NrPrefsKey.BAND_RECEIPT, this.m_RecoveryItem.getOriginalPurchaseAsJsonText());
                }
                TsPlatform.FileLog(string.Format("TStorePurchaseComplete\nReceipt ={0} ProductID = {1} ItemMallIdex = {2}", this.Receipt, this.strProductID, gS_BILLINGCHECK_REQ.i64ItemMallIndex));
                TsLog.LogWarning("Send BillingCheck ProductID = {0} ItemMallIdex = {1}", new object[]
                {
                    this.strProductID,
                    gS_BILLINGCHECK_REQ.i64ItemMallIndex
                });
                this.Receipt.Remove(0, this.Receipt.Length);
            }
            GS_BILLING_ITEM_RECODE_REQ gS_BILLING_ITEM_RECODE_REQ = new GS_BILLING_ITEM_RECODE_REQ();
            gS_BILLING_ITEM_RECODE_REQ.i8Type           = 1;
            gS_BILLING_ITEM_RECODE_REQ.i8Result         = 0;
            gS_BILLING_ITEM_RECODE_REQ.i64ItemMallIndex = NrTSingleton <ItemMallItemManager> .Instance.GetItemIndex(this.strProductID);

            SendPacket.GetInstance().SendObject(eGAME_PACKET_ID.GS_BILLING_ITEM_RECODE_REQ, gS_BILLING_ITEM_RECODE_REQ);
            NrTSingleton <NrMainSystem> .Instance.m_bIsBilling = false;
        }
        else
        {
            this.m_bRecovery = false;
        }
    }