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);
        }
Beispiel #2
0
        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
        }
Beispiel #4
0
 public virtual string TrData(Request trData, string redirectURL)
 {
     return(TrUtil.BuildTrData(trData, redirectURL, new BraintreeService(Configuration)));
 }
Beispiel #5
0
        public void IsValidTrQueryString_ForInvalidString()
        {
            string queryString = "http_status=200&id=6kdj469tw7yck32j&hash=99c9ff20cd7910a1c1e793ff9e3b2d15586dc6b8";

            Assert.IsFalse(TrUtil.IsValidTrQueryString(queryString, service));
        }
Beispiel #6
0
        public void IsValidTrQueryString_ForValidStringWithQuestionMarke()
        {
            string queryString = "?http_status=200&id=6kdj469tw7yck32j&hash=99c9ff20cd7910a1c1e793ff9e3b2d15586dc6b9";

            Assert.IsTrue(TrUtil.IsValidTrQueryString(queryString, service));
        }
Beispiel #7
0
        public void IncludesKind()
        {
            string tr_data = TrUtil.BuildTrData(new TransactionRequest(), "example.com", service);

            TestHelper.AssertIncludes("kind=create_transaction", tr_data);
        }
Beispiel #8
0
        public void IncludesApiVersion()
        {
            string tr_data = TrUtil.BuildTrData(new TransactionRequest(), "example.com", service);

            TestHelper.AssertIncludes("api_version=4", tr_data);
        }
Beispiel #9
0
        public void TrData_ReturnsValidTrDataHash()
        {
            string trData = gateway.TrData(new CreditCardRequest(), "http://example.com");

            Assert.IsTrue(TrUtil.IsTrDataValid(trData, service));
        }