public BasketController(Delaney.Services.Data.Core.IUnitOfWork unitOfWork) : base(unitOfWork) { }
/// <summary> /// Use classes from the PayPalCheckoutSdk to build an OrderRequest /// </summary> /// <returns></returns> public static OrderRequest Build(Delaney.Services.Data.Core.IUnitOfWork unitOfWork) { var basket = unitOfWork.Baskets.SingleOrDefault(x => x.Id == x.Id); if (basket == null) { return(null); } //https://developer.paypal.com/docs/api/reference/locale-codes/# OrderRequest orderRequest = new OrderRequest() { CheckoutPaymentIntent = PayPal.Values.CheckoutPaymentIntent.CAPTURE, ApplicationContext = new ApplicationContext { BrandName = "Delaneys.space", LandingPage = PayPal.Values.LandingPage.LOGIN, UserAction = PayPal.Values.UserAction.PAY_NOW, ShippingPreference = PayPal.Values.ShippingPreference.NO_SHIPPING, Locale = "en-GB" }, PurchaseUnits = new List <PurchaseUnitRequest> { new PurchaseUnitRequest { //ReferenceId = "Delaneys.space", // [required] The merchant ID for the purchase unit. Description = "Software published by Delaneys.space", SoftDescriptor = "Delaneys.space", AmountWithBreakdown = new AmountWithBreakdown { CurrencyCode = PayPal.Values.CurrencyCode.GBP, Value = basket.Total.ToString(), AmountBreakdown = new AmountBreakdown { ItemTotal = new Money { CurrencyCode = basket.CurrencyCode, Value = basket.SubTotal.ToString() }, Discount = new Money { CurrencyCode = basket.CurrencyCode, Value = basket.Discount.ToString() } } }, Items = new List <Item>() } } }; foreach (var product in basket.Products) { orderRequest.PurchaseUnits[0] .Items .Add(new Item { Name = product.Name, Description = product.Description, UnitAmount = new Money { CurrencyCode = basket.CurrencyCode, Value = product.Price.ToString() }, Quantity = product.Quantity.ToString(), Category = PayPal.Values.Item.Category.DIGITAL_GOODS }); } return(orderRequest); }