public static string QueryStringForTR(Request trParams, Request req, string postURL, BraintreeService service) { string trData = TrUtil.BuildTrData(trParams, "http://example.com", service); string postData = "tr_data=" + HttpUtility.UrlEncode(trData, Encoding.UTF8) + "&"; postData += req.ToQueryString(); var request = WebRequest.Create(postURL) as HttpWebRequest; request.Method = "POST"; request.KeepAlive = false; request.AllowAutoRedirect = false; byte[] buffer = Encoding.UTF8.GetBytes(postData); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = buffer.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(buffer, 0, buffer.Length); requestStream.Close(); var response = request.GetResponse() as HttpWebResponse; string query = new Uri(response.GetResponseHeader("Location")).Query; response.Close(); return(query); }
public void CreditTrData_ReturnsValidTrDataHash() { string trData = gateway.Transaction.CreditTrData(new TransactionRequest(), "http://example.com"); Assert.IsTrue(trData.Contains("credit")); Assert.IsTrue(TrUtil.IsTrDataValid(trData, service)); }
public static string QueryStringForTR(Request trParams, Request req, string postURL, BraintreeService service) { #if netcore string trData = TrUtil.BuildTrData(trParams, "http://example.com", service); string postData = "tr_data=" + WebUtility.UrlEncode(trData) + "&"; postData += req.ToQueryString(); var request = new HttpRequestMessage(new HttpMethod("POST"), postURL); request.Headers.Add("KeepAlive", "false"); request.Headers.Add("Accept", "application/json"); byte[] buffer = Encoding.UTF8.GetBytes(postData); request.Content = new StringContent(postData, Encoding.UTF8, "application/x-www-form-urlencoded"); request.Content.Headers.Add("Content-Length", buffer.Length.ToString()); var httpClientHandler = new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate, AllowAutoRedirect = false, }; HttpResponseMessage response; using (var client = new HttpClient(httpClientHandler)) { response = client.SendAsync(request).GetAwaiter().GetResult(); } StreamReader reader = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8); string responseBody = reader.ReadToEnd(); string query = response.Headers.Location.Query; return(query); #else string trData = TrUtil.BuildTrData(trParams, "http://example.com", service); string postData = "tr_data=" + HttpUtility.UrlEncode(trData, Encoding.UTF8) + "&"; postData += req.ToQueryString(); var request = WebRequest.Create(postURL) as HttpWebRequest; request.Method = "POST"; request.KeepAlive = false; request.AllowAutoRedirect = false; byte[] buffer = Encoding.UTF8.GetBytes(postData); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = buffer.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(buffer, 0, buffer.Length); requestStream.Close(); var response = request.GetResponse() as HttpWebResponse; string query = new Uri(response.GetResponseHeader("Location")).Query; response.Close(); return(query); #endif }
public virtual string TrData(Request trData, string redirectURL) { return(TrUtil.BuildTrData(trData, redirectURL, new BraintreeService(Configuration))); }
public void IsValidTrQueryString_ForInvalidString() { string queryString = "http_status=200&id=6kdj469tw7yck32j&hash=99c9ff20cd7910a1c1e793ff9e3b2d15586dc6b8"; Assert.IsFalse(TrUtil.IsValidTrQueryString(queryString, service)); }
public void IsValidTrQueryString_ForValidStringWithQuestionMarke() { string queryString = "?http_status=200&id=6kdj469tw7yck32j&hash=99c9ff20cd7910a1c1e793ff9e3b2d15586dc6b9"; Assert.IsTrue(TrUtil.IsValidTrQueryString(queryString, service)); }
public void IncludesKind() { string tr_data = TrUtil.BuildTrData(new TransactionRequest(), "example.com", service); TestHelper.AssertIncludes("kind=create_transaction", tr_data); }
public void IncludesApiVersion() { string tr_data = TrUtil.BuildTrData(new TransactionRequest(), "example.com", service); TestHelper.AssertIncludes("api_version=4", tr_data); }
public void TrData_ReturnsValidTrDataHash() { string trData = gateway.TrData(new CreditCardRequest(), "http://example.com"); Assert.IsTrue(TrUtil.IsTrDataValid(trData, service)); }