Ejemplo n.º 1
0
        public void UpdateSubscription(StripeChargeRequest req)
        {
            var newPlan = GetById(req.TenantId, req.SubscriptionLevel);
            var info    = GetByBusinessId(req.BusinessId);

            var items = new List <SubscriptionItemUpdateOption> {
                new SubscriptionItemUpdateOption {
                    PlanId = newPlan.StripePlanId
                }
            };
            var options = new SubscriptionUpdateOptions
            {
                Items   = items,
                Prorate = false
            };

            var          service      = new SubscriptionService();
            Subscription subscription = service.Update(info.StripeSubscriptionId, options);



            dataProvider.ExecuteNonQuery(
                "Subscriptions_Update",
                (parameters) =>
            {
                parameters.AddWithValue("@SubscriptionLevel", req.SubscriptionLevel);
                parameters.AddWithValue("@StripeSubscriptionId", info.StripeSubscriptionId);
                parameters.AddWithValue("@BusinessId", req.BusinessId);
            }

                );
        }
Ejemplo n.º 2
0
 public HttpResponseMessage Update(StripeChargeRequest req)
 {
     if (!ModelState.IsValid)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
     }
     stripeService.UpdateSubscription(req);
     return(Request.CreateResponse(HttpStatusCode.OK));
 }
Ejemplo n.º 3
0
        public HttpResponseMessage SignUp(StripeChargeRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            //int userId = User.Identity.GetId().Value;
            int userId = 3;

            stripeService.Subscribe(request, userId);
            return(Request.CreateResponse(HttpStatusCode.Created));
        }
Ejemplo n.º 4
0
        public void CancelSubscription(StripeChargeRequest req)
        {
            var          info         = GetByBusinessId(req.BusinessId);
            var          service      = new SubscriptionService();
            Subscription subscription = service.Cancel(info.StripeSubscriptionId, null);


            dataProvider.ExecuteNonQuery(
                "Subscriptions_Cancel",
                (parameters) =>
            {
                parameters.AddWithValue("@BusinessId", req.BusinessId);
            }

                );
        }
Ejemplo n.º 5
0
        public void Subscribe(StripeChargeRequest req, int userId)
        {
            // do a data provider call for AppUser GetById
            // that will give you the email address

            var plan = GetById(req.TenantId, req.SubscriptionLevel);

            var customers = new Stripe.CustomerService();
            var customer  = customers.Create(new CustomerCreateOptions
            {
                SourceToken = req.StripeToken,
                Email       = req.Email,
            });
            var items = new List <SubscriptionItemOption> {
                new SubscriptionItemOption {
                    PlanId = plan.StripePlanId
                }
            };
            var options = new SubscriptionCreateOptions
            {
                Items      = items,
                CustomerId = customer.Id
            };
            var          service      = new SubscriptionService();
            Subscription subscription = service.Create(options);

            dataProvider.ExecuteNonQuery(
                "Subscriptions_Insert",
                (parameters) =>
            {
                parameters.AddWithValue("@TenantId", req.TenantId);
                parameters.AddWithValue("@BusinessId", req.BusinessId);
                parameters.AddWithValue("@SubscriptionLevel", req.SubscriptionLevel);
                parameters.AddWithValue("@StripeToken", req.StripeToken);
                parameters.AddWithValue("@StripeCustomerId", subscription.CustomerId);
                parameters.AddWithValue("@StripeSubscriptionId", subscription.Id);
                parameters.AddWithValue("@StartDate", subscription.CurrentPeriodStart);
                parameters.AddWithValue("@EndDate", subscription.CurrentPeriodEnd);
                parameters.Add("@Id", SqlDbType.Int).Direction = ParameterDirection.Output;
            }
                );
        }
        public ActionResult <StripeResult> Get([FromBody] StripeChargeRequest request)
        {
            StripeConfiguration.ApiKey = StripeApiKey;

            StripeResult         result  = new StripeResult();
            PaymentIntentService service = new PaymentIntentService();

            try
            {
                PaymentIntent charge = service.Get(request.Id);
                result.Data    = charge;
                result.Success = true;
            }
            catch (StripeException exception)
            {
                result.Success = false;
                result.Error   = _stripeErrorHandler.ErrorHandler(exception);
            }

            return(result);
        }
Ejemplo n.º 7
0
        public IHttpActionResult Charge(StripeChargeRequest request)
        {
            var myCharge = new StripeChargeCreateOptions();

            // always set these properties
            myCharge.Amount   = request.OrderAmount;
            myCharge.Currency = "usd";

            // set this if you want to
            myCharge.Description = request.Description;

            myCharge.SourceTokenOrExistingSourceId = request.Token;

            var          chargeService = new StripeChargeService();
            StripeCharge stripeCharge  = chargeService.Create(myCharge);

            if (stripeCharge.Paid)
            {
                return(Ok(new
                {
                    stripeCharge.Amount,
                    stripeCharge.Created,
                    stripeCharge.Currency,
                    stripeCharge.FailureCode,
                    stripeCharge.FailureMessage,
                    stripeCharge.Id,
                    stripeCharge.LiveMode,
                    stripeCharge.Paid,
                    stripeCharge.ReceiptEmail,
                    stripeCharge.StatementDescriptor,
                    stripeCharge.Status
                }));
            }
            else
            {
                return(BadRequest("Could not complete transaction"));
            }
        }