public static Purchase ParsePurchaseFromDictionary()

in Facebook.Unity/Utils/Utilities.cs [325:369]


        public static Purchase ParsePurchaseFromDictionary(IDictionary<string, object> purchase, bool isWindows = false) {

            bool isConsumed = false;
            if ( !purchase.TryGetValue(isWindows ? "is_consumed" : "isConsumed", out isConsumed)) // compatibility with Graph API 11 or higher
            {
                purchase.TryGetValue(isWindows ? "consumed" : "isConsumed", out isConsumed); // compatibility with Graph API 10 or lower
            }

            string developerPayload = purchase.ContainsKey(isWindows ? "developer_payload" : "developerPayload") ? purchase[isWindows ? "developer_payload" : "developerPayload"].ToStringNullOk() : "";

            string paymentActionType = "charge";
            if (purchase.ContainsKey("payment_action_type") || purchase.ContainsKey("paymentActionType"))
            {
                paymentActionType = purchase[isWindows ? "payment_action_type" : "paymentActionType"].ToStringNullOk();
            }           
            
            string paymentID = purchase[isWindows ? "payment_id" : "paymentID"].ToStringNullOk();
            string productID = purchase[isWindows ? "product_id" : "productID"].ToStringNullOk();
            IDictionary<string, object> purchasePrice = new Dictionary<string, object>();
            if (purchase.ContainsKey("purchase_price") || purchase.ContainsKey("purchasePrice"))
            {
                purchasePrice = (IDictionary<string, object>)purchase[isWindows ? "purchase_price" : "purchasePrice"];
            }
            else
            {
                purchasePrice.Add("amount", "1.11");
                purchasePrice.Add("currency", "USD");
            }

            long purchaseTime;
            if (isWindows)
            {
                purchase.TryGetValue("purchase_time", out purchaseTime);
            }
            else
            {
                purchase.TryGetValue("purchaseTime", out purchaseTime);
            }

            string purchaseToken = purchase[isWindows ? "purchase_token" : "purchaseToken"].ToStringNullOk();
            string signedRequest = purchase[isWindows ? "signed_request" : "signedRequest"].ToStringNullOk();
            string purchasePlatform = purchase[isWindows ? "purchase_platform" : "purchasePlatform"].ToStringNullOk();

            return new Purchase(developerPayload, isConsumed, paymentActionType, paymentID, productID, purchasePlatform, purchasePrice, purchaseTime, purchaseToken, signedRequest);
        }