private void OnTransactionFinalized(SteamWebAPIRequest request, string response) { InGamePurchase purchase = (InGamePurchase)null; ulong num = ulong.Parse(request.GetPostValue("orderid")); foreach (InGamePurchase inGamePurchase in this._outstandingPurchases) { if ((long)inGamePurchase.OrderID == (long)num) { purchase = inGamePurchase; break; } } if (purchase == null) { return; } bool successful = false; JsonReader jsonReader = (JsonReader) new JsonTextReader((TextReader) new StringReader(response)); while (jsonReader.Read()) { if (jsonReader.TokenType == JsonToken.PropertyName && jsonReader.Value.Equals((object)"result") && jsonReader.ReadAsString().Equals("OK", StringComparison.OrdinalIgnoreCase)) { successful = true; break; } } purchase.InGamePurchaseCompleteCallback(purchase, successful); this._outstandingPurchases.Remove(purchase); }
public bool StartPurchase(InGamePurchase purchase, OnInGamePurchaseComplete callback) { if (this._regionInfo == null) { return(false); } purchase.InGamePurchaseCompleteCallback = callback; SteamWebAPIRequest steamWebApiRequest = CommunityExpress.Instance.SteamWebAPI.NewRequest(this.GetWebInterface(purchase.UseTestMode), "InitTxn", "v0002"); steamWebApiRequest.AddPostValue("key", purchase.WebAPIKey); steamWebApiRequest.AddPostValue("orderid", purchase.OrderID.ToString()); steamWebApiRequest.AddPostValue("steamid", this._steamID.ToUInt64().ToString()); steamWebApiRequest.AddPostValue("appid", InGamePurchasing.SteamUnityAPI_SteamUtils_GetAppID().ToString()); steamWebApiRequest.AddPostValue("itemcount", purchase.ItemList.Count.ToString()); steamWebApiRequest.AddPostValue("language", this._language); steamWebApiRequest.AddPostValue("currency", this._regionInfo.ISOCurrencySymbol); int num = 0; foreach (InGamePurchase.Item obj in (IEnumerable <InGamePurchase.Item>)purchase.ItemList) { steamWebApiRequest.AddPostValue("itemid%5B" + (object)num + "%5D", obj.ID.ToString()); steamWebApiRequest.AddPostValue("qty%5B" + (object)num + "%5D", obj.Quantity.ToString()); steamWebApiRequest.AddPostValue("amount%5B" + (object)num + "%5D", obj.Amount.ToString()); steamWebApiRequest.AddPostValue("description%5B" + (object)num + "%5D", obj.Description); if (obj.Category != "") { steamWebApiRequest.AddPostValue("category%5B" + (object)num + "%5D", obj.Category); } ++num; } this._outstandingPurchases.Add(purchase); steamWebApiRequest.Execute(new OnRequestComplete(this.OnPurchaseStarted)); return(true); }
private void FetchRegionInfo(bool useTestURL, string webAPIKey) { SteamWebAPIRequest steamWebApiRequest = CommunityExpress.Instance.SteamWebAPI.NewRequest(this.GetWebInterface(useTestURL), "GetUserInfo", "v0001"); steamWebApiRequest.AddGetValue("key", webAPIKey); steamWebApiRequest.AddGetValue("steamid", this._steamID.ToUInt64().ToString()); steamWebApiRequest.Execute(new OnRequestComplete(this.OnRegionInfoRetrieved)); }
public void AddPostValue(string key, string value) { if (this._postValues == "") { this._postValues = key + "=" + value; } else { SteamWebAPIRequest steamWebApiRequest = this; string str = steamWebApiRequest._postValues + "&" + key + "=" + value; steamWebApiRequest._postValues = str; } }
private void OnRegionInfoRetrieved(SteamWebAPIRequest request, string response) { JsonReader jsonReader = (JsonReader) new JsonTextReader((TextReader) new StringReader(response)); while (jsonReader.Read()) { if (jsonReader.TokenType == JsonToken.PropertyName && jsonReader.Value.Equals((object)"country")) { this._regionInfo = new RegionInfo(jsonReader.ReadAsString()); break; } } }
private void OnTransactionAuthorizationReceived(ref MicroTxnAuthorizationResponse_t callbackData) { foreach (InGamePurchase purchase in this._outstandingPurchases) { if ((long)purchase.OrderID == (long)callbackData.m_ulOrderID) { if ((int)callbackData.m_bAuthorized == 1) { SteamWebAPIRequest steamWebApiRequest = CommunityExpress.Instance.SteamWebAPI.NewRequest(this.GetWebInterface(purchase.UseTestMode), "FinalizeTxn", "v0001"); steamWebApiRequest.AddPostValue("key", purchase.WebAPIKey); steamWebApiRequest.AddPostValue("orderid", callbackData.m_ulOrderID.ToString()); steamWebApiRequest.AddPostValue("appid", InGamePurchasing.SteamUnityAPI_SteamUtils_GetAppID().ToString()); steamWebApiRequest.Execute(new OnRequestComplete(this.OnTransactionFinalized)); break; } else { purchase.InGamePurchaseCompleteCallback(purchase, false); this._outstandingPurchases.Remove(purchase); break; } } } }
private void OnRegionInfoRetrieved(SteamWebAPIRequest request, string response) { JsonReader jsonReader = (JsonReader) new JsonTextReader((TextReader) new StringReader(response)); while (jsonReader.Read()) { if (jsonReader.TokenType == JsonToken.PropertyName && jsonReader.Value.Equals((object) "country")) { this._regionInfo = new RegionInfo(jsonReader.ReadAsString()); break; } } }
private void OnTransactionFinalized(SteamWebAPIRequest request, string response) { InGamePurchase purchase = (InGamePurchase) null; ulong num = ulong.Parse(request.GetPostValue("orderid")); foreach (InGamePurchase inGamePurchase in this._outstandingPurchases) { if ((long) inGamePurchase.OrderID == (long) num) { purchase = inGamePurchase; break; } } if (purchase == null) return; bool successful = false; JsonReader jsonReader = (JsonReader) new JsonTextReader((TextReader) new StringReader(response)); while (jsonReader.Read()) { if (jsonReader.TokenType == JsonToken.PropertyName && jsonReader.Value.Equals((object) "result") && jsonReader.ReadAsString().Equals("OK", StringComparison.OrdinalIgnoreCase)) { successful = true; break; } } purchase.InGamePurchaseCompleteCallback(purchase, successful); this._outstandingPurchases.Remove(purchase); }