public static Hashtable ToHashtable(this YandexAppMetricaReceipt self)
    {
        var data = new Hashtable();

        if (self.Data != null)
        {
            data ["Data"] = self.Data;
        }
        if (self.TransactionID != null)
        {
            data ["TransactionID"] = self.TransactionID;
        }
        return(data);
    }
Example #2
0
        public static Com.Yandex.Metrica.Revenue.Receipt ToAndroidReceipt(this YandexAppMetricaReceipt self)
        {
            var builder = Com.Yandex.Metrica.Revenue.Receipt.NewBuilder();

            if (self.Data != null)
            {
                builder.WithData(self.Data);
            }
            if (self.Signature != null)
            {
                builder.WithSignature(self.Signature);
            }

            return(builder.Build());
        }
Example #3
0
        /// <summary>
        /// Покупка
        /// </summary>
        /// <param name="id"></param>
        /// <param name="complete">удачно или нет</param>
        public void Report_PurchaseComplete(string id, bool complete, double price = 0, string currency = "", string transactionId = "", string receipt = "", string errmes = "")
        {
            if (!use_anilytics)
            {
                return;
            }
            string report = e_Purchase;

            if (complete)
            {
                var par3 = new Dictionary <string, object>(5)
                {
                    { e_DevId, deviceId }, { e_Purchase_TransactionId, transactionId }, { e_Purchase_Price, price }, { e_Purchase_Currency, currency }, { e_Purchase_Error, "" }
                };
                var par2 = new Dictionary <string, object>(1)
                {
                    { id, par3 }
                };
                var par1 = new Dictionary <string, object>(1)
                {
                    { e_Purchase_Complete, par2 }
                };
                Instance.ReportEvent(report, par1);
            }
            else
            {
                var par3 = new Dictionary <string, object>(5)
                {
                    { e_DevId, deviceId }, { e_Purchase_TransactionId, transactionId }, { e_Purchase_Price, price }, { e_Purchase_Currency, currency }, { e_Purchase_Error, errmes }
                };
                var par2 = new Dictionary <string, object>(1)
                {
                    { id, par3 }
                };
                var par1 = new Dictionary <string, object>(1)
                {
                    { e_Purchase_Failed, par2 }
                };
                Instance.ReportEvent(report, par1);
            }

            //string report = e_PurchaseComplete + "_" + id;
            //var parameters = new Dictionary<string, object>(4) { { "devId", deviceId }, { "completed", complete.ToString() }, { "price", price }, { "currency", currency } };

            if (complete)
            {
                var revenue = new YandexAppMetricaRevenue(price, currency);
                revenue.ProductID = id;

                if (!string.IsNullOrEmpty(receipt))
                {
                    YandexAppMetricaReceipt yaReceipt = new YandexAppMetricaReceipt();
                    Receipt r_receipt = JsonUtility.FromJson <Receipt>(receipt);
                    r_receipt.TransactionID = transactionId;
#if UNITY_ANDROID
                    PayloadAndroid payloadAndroid = JsonUtility.FromJson <PayloadAndroid>(r_receipt.Payload);
                    yaReceipt.Signature = payloadAndroid.Signature;
                    yaReceipt.Data      = payloadAndroid.Json;

                    yaReceipt.TransactionID = transactionId;
#elif UNITY_IPHONE
                    yaReceipt.TransactionID = receipt.TransactionID;
                    yaReceipt.Data          = receipt.Payload;
#endif
                    revenue.Receipt = yaReceipt;
                }

                Instance.ReportRevenue(revenue);
            }
            Instance.SendEventsBuffer();
        }