示例#1
0
        public async Task CreateSubscription()
        {
            var plan = new PayPalPlan
            {
                Currency    = "RUB",
                Total       = 100m,
                Name        = "Basic annual subscription",
                PeriodType  = PeriodType.Month,
                Description = "Annual subscription plan (Russia 100r.)",
                Frequency   = 1,
                CancelUrl   = "http://localhost:1234",
                ReturnUrl   = "http://localhost:1234",
            };

            await _payPalService.CreatePlanAsync(plan);

            await _payPalService.ActivatePlanAsync(plan);


            var agreement = new PayPalAgreement
            {
                Name         = "Bandmap pro-account",
                Description  = "Annual subscription giving special features to the user on the Bandmap service",
                PayPalPlanId = plan.Id
            };
            var agreementResult = await _payPalService.CreateAgreementAsync(agreement);
        }
示例#2
0
        public async Task <string> GetOrCreatePayPalPlanIdAsync(CreatePlanParameter parameter)
        {
            var planId = await _paymentsUnitOfWork.PayPalPlanRepository.GetPlanIdAsync(parameter.ProductName);

            if (!string.IsNullOrEmpty(planId))
            {
                return(planId);
            }

            var product = await _paymentsUnitOfWork.ProductRepository.GetAsync(parameter.ProductName);

            var payPalPlan = new PayPalPlan
            {
                Name        = product.Title,
                Description = product.Description,
                Currency    = product.Currency,
                Frequency   = 1,
                PeriodType  = ToPeriodType(product.Period),
                Total       = product.Price,
                ReturnUrl   = parameter.ReturnUrl,
                CancelUrl   = parameter.CancelUrl
            };
            await _payPalService.CreatePlanAsync(payPalPlan);

            await _payPalService.ActivatePlanAsync(payPalPlan);

            var plan = new Core.Models.PayPalPlan
            {
                Id          = payPalPlan.Id,
                ProductName = parameter.ProductName,
            };
            await _paymentsUnitOfWork.PayPalPlanRepository.CreateAsync(plan);

            await _paymentsUnitOfWork.SaveAsync();

            return(payPalPlan.Id);
        }