예제 #1
0
        public static string GenerateFuturePaymentPayPalNonce(BraintreeGateway gateway)
        {
            var            clientToken = GenerateDecodedClientToken(gateway);
            var            authorizationFingerprint = extractParamFromJson("authorizationFingerprint", clientToken);
            RequestBuilder builder = new RequestBuilder("");

            builder.AddTopLevelElement("authorization_fingerprint", authorizationFingerprint).
            AddTopLevelElement("shared_customer_identifier_type", "testing").
            AddTopLevelElement("shared_customer_identifier", "test-identifier").
            AddTopLevelElement("paypal_account[consent_code]", "consent").
            AddTopLevelElement("paypal_account[correlation_id]", Guid.NewGuid().ToString()).
            AddTopLevelElement("paypal_account[options][validate]", "false");

            var response = new BraintreeTestHttpService().Post(gateway.MerchantId, "v1/payment_methods/paypal_accounts", builder.ToQueryString());

#if netcore
            StreamReader reader = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8);
#else
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
#endif

            string responseBody = reader.ReadToEnd();

            Regex regex = new Regex("nonce\":\"(?<nonce>[a-f0-9\\-]+)\"");
            Match match = regex.Match(responseBody);
            return(match.Groups["nonce"].Value);
        }
예제 #2
0
        public static string GetNonceForNewPaymentMethod(BraintreeGateway gateway, Params @params, bool isCreditCard)
        {
            var clientToken = GenerateDecodedClientToken(gateway);
            var authorizationFingerprint = extractParamFromJson("authorizationFingerprint", clientToken);

            var paymentMethodType       = isCreditCard ? "credit_card" : "paypal_account";
            var paymentMethodTypePlural = paymentMethodType + "s";
            var builder = new RequestBuilder();

            builder.
            AddTopLevelElement("authorization_fingerprint", authorizationFingerprint).
            AddTopLevelElement("shared_customer_identifier", "test-identifier").
            AddTopLevelElement("shared_customer_identifier_type", "testing");
            foreach (var param in @params)
            {
                builder.AddTopLevelElement(string.Format("{0}[{1}]", paymentMethodType, param.Key), param.Value.ToString());
            }

            var response = new BraintreeTestHttpService().Post(
                gateway.MerchantId,
                "v1/payment_methods/" + paymentMethodTypePlural,
                builder.ToQueryString());

#if netcore
            StreamReader reader       = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8);
            string       responseBody = reader.ReadToEnd();
            return(extractParamFromJson("nonce", responseBody));
#else
            return(extractParamFromJson("nonce", response));
#endif
        }
예제 #3
0
        public static string GetNonceForNewCreditCard(BraintreeGateway gateway, Params creditCardDetails, string customerId = null)
        {
            var authorizationFingerprint = GenerateAuthorizationFingerprint(gateway, customerId);

            var builder = new RequestBuilder();

            builder.
            AddTopLevelElement("authorization_fingerprint", authorizationFingerprint).
            AddTopLevelElement("shared_customer_identifier", "test-identifier").
            AddTopLevelElement("shared_customer_identifier_type", "testing");

            foreach (var param in creditCardDetails)
            {
                var nested = param.Value as Params;
                if (null != nested)
                {
                    foreach (var nestedParam in nested)
                    {
                        builder.AddTopLevelElement(string.Format("credit_card[{0}][{1}]", param.Key, nestedParam.Key), nestedParam.Value.ToString());
                    }
                }
                else
                {
                    builder.AddTopLevelElement(string.Format("credit_card[{0}]", param.Key), param.Value.ToString());
                }
            }

            var response = new BraintreeTestHttpService().Post(
                gateway.MerchantId,
                "v1/payment_methods/credit_cards",
                builder.ToQueryString());

            return(extractParamFromJson("nonce", response));
        }
예제 #4
0
        public static string GenerateUnlockedNonce(BraintreeGateway gateway, string creditCardNumber, string customerId)
        {
            var authorizationFingerprint = GenerateAuthorizationFingerprint(gateway, customerId);

            RequestBuilder builder = new RequestBuilder("");

            builder.AddTopLevelElement("authorization_fingerprint", authorizationFingerprint).
            AddTopLevelElement("shared_customer_identifier_type", "testing").
            AddTopLevelElement("shared_customer_identifier", "test-identifier").
            AddTopLevelElement("credit_card[number]", creditCardNumber).
            AddTopLevelElement("share", "true").
            AddTopLevelElement("credit_card[expiration_month]", "11").
            AddTopLevelElement("credit_card[expiration_year]", "2099");

            var response = new BraintreeTestHttpService().Post(gateway.MerchantId, "v1/payment_methods/credit_cards", builder.ToQueryString());

#if netcore
            StreamReader reader = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8);
#else
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
#endif

            string responseBody = reader.ReadToEnd();

            return(extractParamFromJson("nonce", responseBody));
        }
예제 #5
0
        private static ClientConfiguration GetClientConfiguration(BraintreeGateway gateway, String authorizationFingerprint)
        {
            var queryParams = new RequestBuilder();

            queryParams.AddTopLevelElement("authorizationFingerprint", authorizationFingerprint);
            queryParams.AddTopLevelElement("configVersion", "3");

            var response = new BraintreeTestHttpService().Get(
                gateway.MerchantId,
                "v1/configuration?" + queryParams.ToQueryString()
                );

            var json = GetResponseContent(response);

            return(JsonConvert.DeserializeObject <ClientConfiguration>(json));
        }
예제 #6
0
        public static string GenerateUnlockedNonce(BraintreeGateway gateway, string creditCardNumber, string customerId)
        {
            var clientToken = "";

            if (customerId == null)
            {
                clientToken = GenerateDecodedClientToken(gateway);
            }
            else
            {
                clientToken = GenerateDecodedClientToken(gateway, new ClientTokenRequest
                {
                    CustomerId = customerId
                }
                                                         );
            }
            var            authorizationFingerprint = extractParamFromJson("authorizationFingerprint", clientToken);
            RequestBuilder builder = new RequestBuilder("");

            builder.AddTopLevelElement("authorization_fingerprint", authorizationFingerprint).
            AddTopLevelElement("shared_customer_identifier_type", "testing").
            AddTopLevelElement("shared_customer_identifier", "test-identifier").
            AddTopLevelElement("credit_card[number]", creditCardNumber).
            AddTopLevelElement("share", "true").
            AddTopLevelElement("credit_card[expiration_month]", "11").
            AddTopLevelElement("credit_card[expiration_year]", "2099");

            var response = new BraintreeTestHttpService().Post(gateway.MerchantId, "v1/payment_methods/credit_cards.json", builder.ToQueryString());

#if netcore
            StreamReader reader = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8);
#else
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
#endif

            string responseBody = reader.ReadToEnd();

            Regex regex = new Regex("nonce\":\"(?<nonce>[a-f0-9\\-]+)\"");
            Match match = regex.Match(responseBody);
            return(match.Groups["nonce"].Value);
        }
예제 #7
0
        public static string GetNonceForPayPalAccount(BraintreeGateway gateway, Params paypalAccountDetails)
        {
            var authorizationFingerprint = GenerateAuthorizationFingerprint(gateway);
            var builder = new RequestBuilder();

            builder.AddTopLevelElement("authorization_fingerprint", authorizationFingerprint);
            foreach (var param in paypalAccountDetails)
            {
                builder.AddTopLevelElement(string.Format("paypal_account[{0}]", param.Key), param.Value.ToString());
            }

            var response = new BraintreeTestHttpService().Post(gateway.MerchantId, "v1/payment_methods/paypal_accounts", builder.ToQueryString());

#if netcore
            StreamReader reader       = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8);
            string       responseBody = reader.ReadToEnd();
            return(extractParamFromJson("nonce", responseBody));
#else
            return(extractParamFromJson("nonce", response));
#endif
        }
예제 #8
0
        public static string GenerateFuturePaymentPayPalNonce(BraintreeGateway gateway)
        {
            var clientToken = GenerateDecodedClientToken(gateway);
            var authorizationFingerprint = extractParamFromJson("authorizationFingerprint", clientToken);
            RequestBuilder builder = new RequestBuilder("");
            builder.AddTopLevelElement("authorization_fingerprint", authorizationFingerprint).
                AddTopLevelElement("shared_customer_identifier_type", "testing").
                AddTopLevelElement("shared_customer_identifier", "test-identifier").
                AddTopLevelElement("paypal_account[consent_code]", "consent").
                AddTopLevelElement("paypal_account[correlation_id]", Guid.NewGuid().ToString()).
                AddTopLevelElement("paypal_account[options][validate]", "false");

            var response = new BraintreeTestHttpService().Post(gateway.MerchantId, "v1/payment_methods/paypal_accounts", builder.ToQueryString());

#if netcore
            StreamReader reader = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8);
#else
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
#endif

            string responseBody = reader.ReadToEnd();

            Regex regex = new Regex("nonce\":\"(?<nonce>[a-f0-9\\-]+)\"");
            Match match = regex.Match(responseBody);
            return match.Groups["nonce"].Value;
        }
예제 #9
0
        public static string GenerateUnlockedNonce(BraintreeGateway gateway, string creditCardNumber, string customerId)
        {
            var clientToken = "";
            if (customerId == null) {
                clientToken = GenerateDecodedClientToken(gateway);
            } else {
                clientToken = GenerateDecodedClientToken(gateway, new ClientTokenRequest
                {
                    CustomerId = customerId
                }
                );
            }
            var authorizationFingerprint = extractParamFromJson("authorizationFingerprint", clientToken);
            RequestBuilder builder = new RequestBuilder("");
            builder.AddTopLevelElement("authorization_fingerprint", authorizationFingerprint).
            AddTopLevelElement("shared_customer_identifier_type", "testing").
            AddTopLevelElement("shared_customer_identifier", "test-identifier").
            AddTopLevelElement("credit_card[number]", creditCardNumber).
            AddTopLevelElement("share", "true").
            AddTopLevelElement("credit_card[expiration_month]", "11").
            AddTopLevelElement("credit_card[expiration_year]", "2099");

            var response = new BraintreeTestHttpService().Post(gateway.MerchantId, "v1/payment_methods/credit_cards.json", builder.ToQueryString());

#if netcore
            StreamReader reader = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8);
#else
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
#endif

            string responseBody = reader.ReadToEnd();

            Regex regex = new Regex("nonce\":\"(?<nonce>[a-f0-9\\-]+)\"");
            Match match = regex.Match(responseBody);
            return match.Groups["nonce"].Value;
        }
예제 #10
0
        public static string GetNonceForNewPaymentMethod(BraintreeGateway gateway, Params @params, bool isCreditCard)
        {
            var clientToken = GenerateDecodedClientToken(gateway);
            var authorizationFingerprint = extractParamFromJson("authorizationFingerprint", clientToken);

            var paymentMethodType = isCreditCard ? "credit_card" : "paypal_account";
            var paymentMethodTypePlural = paymentMethodType + "s";
            var builder = new RequestBuilder();
            builder.
                AddTopLevelElement("authorization_fingerprint", authorizationFingerprint).
                AddTopLevelElement("shared_customer_identifier", "test-identifier").
                AddTopLevelElement("shared_customer_identifier_type", "testing");
            foreach (var param in @params)
                builder.AddTopLevelElement(string.Format("{0}[{1}]", paymentMethodType, param.Key), param.Value.ToString());

            var response = new BraintreeTestHttpService().Post(
                gateway.MerchantId,
                "v1/payment_methods/" + paymentMethodTypePlural,
                builder.ToQueryString());

#if netcore
            StreamReader reader = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8);
            string responseBody = reader.ReadToEnd();
            return extractParamFromJson("nonce", responseBody);
#else
            return extractParamFromJson("nonce", response);
#endif
        }
예제 #11
0
        public static string GetNonceForNewCreditCard(BraintreeGateway gateway, Params creditCardDetails, string customerId = null)
        {
            var clientToken = GenerateDecodedClientToken(
                gateway,
                customerId == null ? null : new ClientTokenRequest { CustomerId = customerId });

            var authorizationFingerprint = extractParamFromJson("authorizationFingerprint", clientToken);

            var builder = new RequestBuilder();
            builder.
                AddTopLevelElement("authorization_fingerprint", authorizationFingerprint).
                AddTopLevelElement("shared_customer_identifier", "test-identifier").
                AddTopLevelElement("shared_customer_identifier_type", "testing");

            foreach (var param in creditCardDetails) {
                var nested = param.Value as Params;
                if (null != nested) {
                    foreach (var nestedParam in nested) {
                        builder.AddTopLevelElement(string.Format("credit_card[{0}][{1}]", param.Key, nestedParam.Key), nestedParam.Value.ToString());
                    }
                } else
                    builder.AddTopLevelElement(string.Format("credit_card[{0}]", param.Key), param.Value.ToString());
            }

            var response = new BraintreeTestHttpService().Post(
                gateway.MerchantId,
                "v1/payment_methods/credit_cards",
                builder.ToQueryString());

            return extractParamFromJson("nonce", response);
        }
예제 #12
0
        public static string GetNonceForPayPalAccount(BraintreeGateway gateway, Params paypalAccountDetails)
        {
            var clientToken = GenerateDecodedClientToken(gateway);
            var authorizationFingerprint = extractParamFromJson("authorizationFingerprint", clientToken);
            var builder = new RequestBuilder();
            builder.AddTopLevelElement("authorization_fingerprint", authorizationFingerprint);
            foreach (var param in paypalAccountDetails)
                builder.AddTopLevelElement(string.Format("paypal_account[{0}]", param.Key), param.Value.ToString());

            var response = new BraintreeTestHttpService().Post(gateway.MerchantId, "v1/payment_methods/paypal_accounts", builder.ToQueryString());

#if netcore
            StreamReader reader = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8);
            string responseBody = reader.ReadToEnd();
            return extractParamFromJson("nonce", responseBody);
#else
            return extractParamFromJson("nonce", response);
#endif
        }