public StripeObject CreateCustomer(ICreditCard card = null, string coupon = null,
            string email = null, string description = null, string plan = null,
            DateTimeOffset? trialEnd = null, int? accountBalance = default(int),
            IDictionary<string, string> metaData = null, int? quantity = null,
            decimal? taxPercent = null)
        {
            if (card != null) card.Validate();

            var request = new RestRequest();
            request.Method = Method.POST;
            request.Resource = "customers";

            if (coupon.HasValue()) request.AddParameter("coupon", coupon);
            if (email.HasValue()) request.AddParameter("email", email);
            if (description.HasValue()) request.AddParameter("description", description);
            if (plan.HasValue()) request.AddParameter("plan", plan);
            if (trialEnd.HasValue) request.AddParameter("trial_end", trialEnd.Value.ToUnixEpoch());
            if (metaData != null) request.AddParameter("metadata", metaData);
            if (accountBalance.HasValue) request.AddParameter("account_balance", accountBalance);
            if (quantity > 1) request.AddParameter("quantity", quantity);
            if (taxPercent.HasValue) request.AddParameter("tax_percent", taxPercent);
            if (card != null) card.AddParametersToRequest(request);

            return ExecuteObject(request);
        }
        public StripeObject CreateCharge(decimal amount, string currency, ICreditCard card, string description = null)
        {
            Require.Argument("amount", amount);
            Require.Argument("currency", currency);
            Require.Argument("card", card);
            card.Validate();

            if (amount < 0.5M)
            {
                throw new ArgumentOutOfRangeException("amount", amount, "Amount must be at least 50 cents");
            }

            var request = new RestRequest();

            request.Method   = Method.POST;
            request.Resource = "charges";

            request.AddParameter("amount", Convert.ToInt32(amount * 100M));
            request.AddParameter("currency", currency);
            card.AddParametersToRequest(request);
            if (description.HasValue())
            {
                request.AddParameter("description", description);
            }

            return(ExecuteObject(request));
        }
        public StripeCustomer UpdateCustomer(string customerId, ICreditCard card = null, string coupon = null, string email = null, string description = null)
        {
            if (card != null)
            {
                card.Validate();
            }

            var request = new RestRequest();

            request.Method   = Method.POST;
            request.Resource = "customers/{customerId}";

            request.AddUrlSegment("customerId", customerId);

            if (card != null)
            {
                card.AddParametersToRequest(request);
            }
            if (coupon.HasValue())
            {
                request.AddParameter("coupon", coupon);
            }
            if (email.HasValue())
            {
                request.AddParameter("email", email);
            }
            if (description.HasValue())
            {
                request.AddParameter("description", description);
            }

            return(Execute <StripeCustomer>(request));
        }
예제 #4
0
        public StripeObject CreateCustomer(ICreditCard card        = null, string coupon              = null,
                                           string email            = null, string description         = null, string plan = null,
                                           DateTimeOffset?trialEnd = null, int?accountBalance         = default(int),
                                           IDictionary <string, string> metaData = null, int?quantity = null,
                                           decimal?taxPercent = null)
        {
            if (card != null)
            {
                card.Validate();
            }

            var request = new RestRequest();

            request.Method   = Method.POST;
            request.Resource = "customers";

            if (coupon.HasValue())
            {
                request.AddParameter("coupon", coupon);
            }
            if (email.HasValue())
            {
                request.AddParameter("email", email);
            }
            if (description.HasValue())
            {
                request.AddParameter("description", description);
            }
            if (plan.HasValue())
            {
                request.AddParameter("plan", plan);
            }
            if (trialEnd.HasValue)
            {
                request.AddParameter("trial_end", trialEnd.Value.ToUnixEpoch());
            }
            if (metaData != null)
            {
                request.AddParameter("metadata", metaData);
            }
            if (accountBalance.HasValue)
            {
                request.AddParameter("account_balance", accountBalance);
            }
            if (quantity > 1)
            {
                request.AddParameter("quantity", quantity);
            }
            if (taxPercent.HasValue)
            {
                request.AddParameter("tax_percent", taxPercent);
            }
            if (card != null)
            {
                card.AddParametersToRequest(request);
            }

            return(ExecuteObject(request));
        }
        public StripeObject UpdateCustomer(string customerId, ICreditCard card = null,
                                           string coupon      = null, string email       = null, string description = null,
                                           int?accountBalance = null, string defaultCard = null, string defaultSource = null,
                                           IDictionary <string, string> metaData = null)
        {
            Require.Argument("customerId", customerId);

            if (card != null)
            {
                card.Validate();
            }

            var request = new RestRequest();

            request.Method   = Method.POST;
            request.Resource = "customers/{customerId}";

            request.AddUrlSegment("customerId", customerId);

            if (card != null)
            {
                card.AddParametersToRequest(request);
            }
            if (coupon.HasValue())
            {
                request.AddParameter("coupon", coupon);
            }
            if (email.HasValue())
            {
                request.AddParameter("email", email);
            }
            if (description.HasValue())
            {
                request.AddParameter("description", description);
            }
            if (accountBalance.HasValue)
            {
                request.AddParameter("account_balance", accountBalance.Value);
            }
            if (defaultCard.HasValue())
            {
                request.AddParameter("default_card", defaultCard);
            }
            if (defaultSource.HasValue())
            {
                request.AddParameter("default_source", defaultSource);
            }
            if (metaData != null)
            {
                request.AddParameter("metadata", metaData);
            }

            return(ExecuteObject(request));
        }
        public StripeCustomer UpdateCustomer(string customerId, ICreditCard card = null, string coupon = null, string email = null, string description = null)
        {
            if (card != null) card.Validate();

            var request = new RestRequest();
            request.Method = Method.POST;
            request.Resource = "customers/{customerId}";

            request.AddUrlSegment("customerId", customerId);

            if (card != null) card.AddParametersToRequest(request);
            if (coupon.HasValue()) request.AddParameter("coupon", coupon);
            if (email.HasValue()) request.AddParameter("email", email);
            if (description.HasValue()) request.AddParameter("description", description);

            return Execute<StripeCustomer>(request);
        }
        public StripeCustomer CreateCustomer(ICreditCard card = null, string coupon = null, string email = null, string description = null, string plan = null, DateTimeOffset? trialEnd = null)
        {
            if (card != null) card.Validate();

            var request = new RestRequest();
            request.Method = Method.POST;
            request.Resource = "customers";

            if (card != null) card.AddParametersToRequest(request);
            if (coupon.HasValue()) request.AddParameter("coupon", coupon);
            if (email.HasValue()) request.AddParameter("email", email);
            if (description.HasValue()) request.AddParameter("description", description);
            if (plan.HasValue()) request.AddParameter("plan", plan);
            if (trialEnd.HasValue) request.AddParameter("trial_end", trialEnd.Value.ToUnixEpoch());

            return Execute<StripeCustomer>(request);
        }
예제 #8
0
        /// <summary>
        /// Creates a charge using a customer id and an optional source (Credit Card) object
        /// </summary>
        /// <param name="amount">Amount to be charged</param>
        /// <param name="currency">3-letter ISO currency code</param>
        /// <param name="source"></param>
        /// <param name="description">Description displayed on the Stripe web interface</param>
        /// <param name="metadata"></param>
        /// <param name="capture">Whether or not to immediately capture the charge. When false, the charge issues an authorization (or pre-authorization), and will need to be captured later.</param>
        /// <param name="statementDescriptor">An arbitrary string to be displayed on your customer's credit card statement</param>
        /// <param name="receiptEmail">The email address to send this charge's receipt to. The receipt will not be sent until the charge is paid.</param>
        /// <param name="destination">An account to make the charge on behalf of</param>
        /// <param name="applicationFee">Fixed amount to charge for our service to the receiver. Comes out of total amount charged</param>
        /// <param name="shipping">Shipping information for the charge. Helps prevent fraud on charges for physical goods.</param>
        /// <returns>Stripe Charge Object</returns>
        public StripeObject CreateCharge(decimal amount, string currency, ICreditCard source,
                                         string description         = null, IDictionary <object, object> metadata = null, bool capture       = true,
                                         string statementDescriptor = null, string receiptEmail                   = null, string destination = null,
                                         decimal?applicationFee     = null, IDictionary <object, object> shipping = null)
        {
            Require.Argument("amount", amount);
            Require.Argument("currency", currency);
            Require.Argument("card", source);

            var request = GetCreateChargeRequest(amount, currency, null, description, metadata, capture,
                                                 statementDescriptor, receiptEmail, destination, applicationFee, shipping);

            source.Validate();
            source.AddParametersToRequest(request);

            return(ExecuteObject(request));
        }
        public StripeObject UpdateCustomer(string customerId, ICreditCard card = null, string coupon = null, string email = null, string description = null, int? accountBalance = null, string defaultCard = null)
        {
            if (card != null) card.Validate();

            var request = new RestRequest();
            request.Method = Method.POST;
            request.Resource = "customers/{customerId}";

            request.AddUrlSegment("customerId", customerId);

            if (card != null) card.AddParametersToRequest(request);
            if (coupon.HasValue()) request.AddParameter("coupon", coupon);
            if (email.HasValue()) request.AddParameter("email", email);
            if (description.HasValue()) request.AddParameter("description", description);
            if (accountBalance.HasValue) request.AddParameter("account_balance", accountBalance.Value);
            if (defaultCard.HasValue()) request.AddParameter("default_card", defaultCard);

            return ExecuteObject(request);
        }
예제 #10
0
        public StripeObject CreateCard(string customerOrRecipientId, ICreditCard card, bool isRecipient = false)
        {
            Require.Argument("customerOrRecipientId", customerOrRecipientId);
            Require.Argument("card", card);

            if (card != null)
            {
                card.Validate();
            }

            var request = new RestRequest();

            request.Method   = Method.POST;
            request.Resource = string.Format("{0}/{customerOrRecipientId}/cards", isRecipient ? "recipients" : "customers");

            request.AddUrlSegment("customerOrRecipientId", customerOrRecipientId);

            card.AddParametersToRequest(request);

            return(ExecuteObject(request));
        }
        public StripeObject UpdateCustomersSubscription(string customerId, string planId, string coupon = null, bool? prorate = null, DateTimeOffset? trialEnd = null, ICreditCard card = null)
        {
            Require.Argument("customerId", customerId);
            Require.Argument("planId", planId);

            if (card != null) card.Validate();

            var request = new RestRequest();
            request.Method = Method.POST;
            request.Resource = "customers/{customerId}/subscription";

            request.AddUrlSegment("customerId", customerId);

            request.AddParameter("plan", planId);
            if (coupon.HasValue()) request.AddParameter("coupon", coupon);
            if (prorate.HasValue) request.AddParameter("prorate", prorate.Value);
            if (trialEnd.HasValue) request.AddParameter("trial_end", trialEnd.Value.ToUnixEpoch());
            if (card != null) card.AddParametersToRequest(request);

            return ExecuteObject(request);
        }
        public StripeObject CreateCharge(decimal amount, string currency, ICreditCard card, string description = null)
        {
            Require.Argument("amount", amount);
            Require.Argument("currency", currency);
            Require.Argument("card", card);
            card.Validate();

            if (amount < 0.5M)
                throw new ArgumentOutOfRangeException("amount", amount, "Amount must be at least 50 cents");

            var request = new RestRequest();
            request.Method = Method.POST;
            request.Resource = "charges";

            request.AddParameter("amount", Convert.ToInt32(amount * 100M));
            request.AddParameter("currency", currency);
            card.AddParametersToRequest(request);
            if (description.HasValue()) request.AddParameter("description", description);

            return ExecuteObject(request);
        }
        public StripeObject CreateCard(string customerOrRecipientId, ICreditCard card, bool isRecipient = false)
        {
            Require.Argument("customerOrRecipientId", customerOrRecipientId);
            Require.Argument("card", card);

            if (card != null)
            {
                card.Validate();
            }

            var request = new RestRequest();

            request.Method = Method.POST;
            request.Resource = string.Format("{0}/{{customerOrRecipientId}}/cards", isRecipient ? "recipients" : "customers");

            request.AddUrlSegment("customerOrRecipientId", customerOrRecipientId);

            card.AddParametersToRequest(request);

            return ExecuteObject(request);
        }
예제 #14
0
        public StripeObject CreateCustomer(ICreditCard card = null, string coupon = null, string email = null, string description = null, string plan = null, DateTimeOffset?trialEnd = null)
        {
            if (card != null)
            {
                card.Validate();
            }

            var request = new RestRequest();

            request.Method   = Method.POST;
            request.Resource = "customers";

            if (card != null)
            {
                card.AddParametersToRequest(request);
            }
            if (coupon.HasValue())
            {
                request.AddParameter("coupon", coupon);
            }
            if (email.HasValue())
            {
                request.AddParameter("email", email);
            }
            if (description.HasValue())
            {
                request.AddParameter("description", description);
            }
            if (plan.HasValue())
            {
                request.AddParameter("plan", plan);
            }
            if (trialEnd.HasValue)
            {
                request.AddParameter("trial_end", trialEnd.Value.ToUnixEpoch());
            }

            return(ExecuteObject(request));
        }
예제 #15
0
        public StripeObject UpdateCustomersSubscription(string customerId, string planId, string coupon = null, bool?prorate = null, DateTimeOffset?trialEnd = null, ICreditCard card = null)
        {
            Require.Argument("customerId", customerId);
            Require.Argument("planId", planId);

            if (card != null)
            {
                card.Validate();
            }

            var request = new RestRequest();

            request.Method   = Method.POST;
            request.Resource = "customers/{customerId}/subscription";

            request.AddUrlSegment("customerId", customerId);

            request.AddParameter("plan", planId);
            if (coupon.HasValue())
            {
                request.AddParameter("coupon", coupon);
            }
            if (prorate.HasValue)
            {
                request.AddParameter("prorate", prorate.Value);
            }
            if (trialEnd.HasValue)
            {
                request.AddParameter("trial_end", trialEnd.Value.ToUnixEpoch());
            }
            if (card != null)
            {
                card.AddParametersToRequest(request);
            }

            return(ExecuteObject(request));
        }