/// <summary> /// 创建产品框架订单 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <Order> CreateProductOrder(PurchasePayInput input) { var product = await _entityManager.GetProductByCode(input.ProductCode); // 生成ordercode var tradeno = _orderManager.GetOrderMaxCode(input.OrderSourceType, PayTypeEnum.Alipay); // 创建订单 var order = new Order { OrderCode = tradeno, ProductCode = product.Code, ProductId = product.Id, ProductIndate = product.Indate, ProductCreateProjectCount = product.CreateProjectCount, ProductName = product.Name, Price = product.Price, Status = OrderStatusEnum.WaitForPayment, Discounts = 0m, ActualPayment = product.Price, UserId = AbpSession.UserId, UserName = AbpSession.GetUserName(), OrderSourceType = input.OrderSourceType, CourseId = null }; order = await _orderManager.CreateOrder(order); return(order); }
///// <summary> ///// 导出Product为excel表,等待开发。 ///// </summary> ///// <returns></returns> //public async Task<FileDto> GetToExcel() //{ // var users = await UserManager.Users.ToListAsync(); // var userListDtos = ObjectMapper.Map<List<UserListDto>>(users); // await FillRoleNames(userListDtos); // return _userListExcelExporter.ExportToFile(userListDtos); //} #region 生成订单逻辑 /// <summary> /// 创建课程订单 /// </summary> /// <param name="input"></param> /// <param name="isGiving">是否赠送</param> /// <returns></returns> private async Task <Order> CreateCourseOrder(PurchasePayInput input, bool isGiving = false) { //根据产品编码查询对应产品 var course = await _courseRepository.FirstOrDefaultAsync(a => a.CourseCode == input.ProductCode); return(await _orderManager.CreateCourseOrder(course)); }
/// <summary> /// 买产品送课程 /// </summary> /// <returns></returns> public async Task <Order> BuyProductAndSendCoursesAsync(PurchasePayInput input) { // //检查当前产品是否已经付款过了。还需要判断有效期是否过了。暂时不做处理。 //var PreOrder= _orderRepository.FirstOrDefaultAsync(a => a.ProductCode == input.ProductCode&&a.Status==OrderStatusEnum.ChangeHands); //if (PreOrder!=null) //{ // throw new UserFriendlyException("该产品已经付款了,"); //} var order = new Order(); if (input.OrderSourceType == OrderSourceType.Course) { order = await CreateCourseOrder(input); } else if (input.OrderSourceType == OrderSourceType.Product) { order = await CreateProductOrder(input); } return(order); }
public async Task <string> CreatePay(PurchasePayInput input) { //todo:处理订单类型 //判断哪些是课程的,哪些是框架的。 //如果是框架的订单,自动给客户开通视频播放功能。 //有效期为1年。 var webPayOutput = await _alipayHelper.WebPay(new WebPayInput { Data = new AlipayTradePagePayModel { Body = "支付Demo", Subject = "支付Demo", TotalAmount = "1", OutTradeNo = input.OrderCode, ProductCode = YoYoAlipayConsts.ProductCode_FAST_INSTANT_TRADE_PAY, TimeoutExpress = TimeoutExpress // 30分钟后过期,默认90分钟 }, //AsyncNotifyUrl = $"{GetHostUrl()}Purchase/Notify", //SynchronizationCallbackUrl = $"{GetHostUrl()}Purchase/Callback" }); return(webPayOutput.RedirectUrl); }