コード例 #1
0
        public async Task <ActionResult> Purchase(long paymentId, bool isUpgrade = false)
        {
            var payment = await _paymentAppService.GetPaymentAsync(paymentId);

            if (payment.Status != SubscriptionPaymentStatus.NotPaid)
            {
                throw new ApplicationException("This payment is processed before");
            }

            var model = new StripePurchaseViewModel
            {
                PaymentId          = payment.Id,
                Amount             = payment.Amount,
                Description        = payment.Description,
                IsRecurring        = payment.IsRecurring,
                Configuration      = _stripeConfiguration,
                UpdateSubscription = isUpgrade
            };

            if (payment.IsRecurring)
            {
                if (isUpgrade)
                {
                    return(View("UpdateSubscription", model));
                }

                return(View("Subscribe", model));
            }

            return(View(model));
        }
コード例 #2
0
        public async Task <ActionResult> Purchase(long paymentId)
        {
            var payment = await _paymentAppService.GetPaymentAsync(paymentId);

            if (payment.Status != SubscriptionPaymentStatus.NotPaid)
            {
                throw new ApplicationException("This payment is processed before");
            }

            var model = new StripePurchaseViewModel
            {
                PaymentId          = payment.Id,
                Amount             = payment.Amount,
                Description        = payment.Description,
                IsRecurring        = payment.IsRecurring,
                Configuration      = _stripeConfiguration,
                UpdateSubscription = payment.EditionPaymentType == EditionPaymentType.Upgrade
            };

            var sessionId = await StripePaymentAppService.CreatePaymentSession(new StripeCreatePaymentSessionInput()
            {
                PaymentId  = paymentId,
                SuccessUrl = _webUrlService.GetSiteRootAddress().EnsureEndsWith('/') + "Stripe/GetPaymentResult",
                CancelUrl  = _webUrlService.GetSiteRootAddress().EnsureEndsWith('/') + "Stripe/PaymentCancel",
            });

            if (payment.IsRecurring && payment.EditionPaymentType == EditionPaymentType.Upgrade)
            {
                model.IsRecurring = false;
            }

            model.SessionId = sessionId;

            return(View(model));
        }