public void Serializes_Customer()
        {
            var dto = new CreateStripeCustomer
            {
                Card = new StripeCard
                {
                    Name = "Name",
                    Number = "4242424242424242",
                    Cvc = "123",
                    ExpMonth = 1,
                    ExpYear = 2,
                    AddressLine1 = "1 Address",
                    AddressLine2 = "2 Address",
                    AddressCountry = "Country",
                    AddressState = "State",
                    AddressZip = "12345",
                },
                Coupon = "Coupon",
                Plan = "Plan",
                AccountBalance = 10,
                Description = "Description",
                Email = "Email",
                Quantity = 1,
                TrialEnd = new DateTime(2014, 1, 1),
            };

            var qs = QueryStringSerializer.SerializeToString(dto);
            qs.Print();
        }
        public void Serializes_Customer()
        {
            var dto = new CreateStripeCustomer
            {
                Card = new StripeCard
                {
                    Name           = "Name",
                    Number         = "4242424242424242",
                    Cvc            = "123",
                    ExpMonth       = 1,
                    ExpYear        = 2,
                    AddressLine1   = "1 Address",
                    AddressLine2   = "2 Address",
                    AddressCountry = "Country",
                    AddressState   = "State",
                    AddressZip     = "12345",
                },
                Coupon         = "Coupon",
                Plan           = "Plan",
                AccountBalance = 10,
                Description    = "Description",
                Email          = "Email",
                Quantity       = 1,
                TrialEnd       = new DateTime(2014, 1, 1),
                Metadata       = new Dictionary <string, string> {
                    { "order_id", "1234" }
                },
            };

            var qs = QueryStringSerializer.SerializeToString(dto);

            qs.Print();
        }
        public void Initialize()
        {
            this.apiKeyRepository = new Mock <IStripeApiKeyRepository>(MockBehavior.Strict);
            this.stripeService    = new Mock <IStripeService>(MockBehavior.Strict);

            this.target = new CreateStripeCustomer(
                this.apiKeyRepository.Object,
                this.stripeService.Object);
        }
        public async Task <IHttpActionResult> StripeCreateCustomer(CreateStripeCustomer data)
        {
            try
            {
                StripeConfiguration.SetApiKey(StripeKey);

                string userId = User.Identity.GetUserId();

                var UserModel = userdb.Users.Find(userId);

                //Ana es loca

                var stripeTokenCreateOptions = new StripeTokenCreateOptions
                {
                    Card = new StripeCreditCardOptions
                    {
                        Number          = data.Number,
                        ExpirationMonth = Convert.ToInt32(data.ExpiryMonth),
                        ExpirationYear  = Convert.ToInt32(data.ExpiryYear),
                        Cvc             = data.CVC,
                        Name            = data.Name
                    }
                };

                var tokenService = new StripeTokenService();
                var stripeToken  = tokenService.Create(stripeTokenCreateOptions);
                var token        = stripeToken.Id;


                var customerOptions = new StripeCustomerCreateOptions()
                {
                    Description = "Customer for " + UserModel.Email,
                    SourceToken = token
                };

                var            customerService = new StripeCustomerService();
                StripeCustomer customer        = customerService.Create(customerOptions);

                UserModel.StripeCustomerId = customer.Id;

                var result = await userdb.SaveChangesAsync();
            }
            catch (Exception sex)
            {
                return(Content(HttpStatusCode.BadRequest, sex));
            }

            return(Ok());
        }
        public void Serializes_Customer_Metadata()
        {
            var dto = new CreateStripeCustomer
            {
                AccountBalance = 100,
                Metadata       = new Dictionary <string, string> {
                    { "order_id", "1234" }
                },
            };

            var qs = QueryStringSerializer.SerializeToString(dto);

            qs.Print();
            Assert.That(qs, Is.EqualTo("account_balance=100&metadata[order_id]=1234"));
        }
        public void Serializes_Customer_Metadata()
        {
            var dto = new CreateStripeCustomer
            {
                AccountBalance = 100,
                Metadata = new Dictionary<string, string>
                {
                    { "order_id", "1234" },
                    { "ref_id", "456" },
                },
            };

            var qs = QueryStringSerializer.SerializeToString(dto);
            qs.Print();
            Assert.That(qs, Is.EqualTo("account_balance=100&metadata[order_id]=1234&metadata[ref_id]=456"));
        }