public async Task CreateOrderTest() { // Arrange var args = new OrderCreateArguments(); _stripe.Post( Arg.Is <StripeRequest <OrderCreateArguments, Order> >(a => a.UrlPath == "orders" && a.Model == args), _cancellationToken).Returns(Task.FromResult(new StripeResponse <Order>())); // Act var response = await _client.CreateOrder(args, _cancellationToken); // Assert response.Should().NotBeNull(); }
public PaymentDto CreateOrder(SysUser sysUser, [FromForm] OrderPo orderPo) { //1.创建订单号 string orderSn = OrderUtil.GetOrderCode(); //2.扣减库存 seckillsClient.SeckillSetStock(orderPo.ProductId, orderPo.ProductCount); //3.设置订单 var configuration = new MapperConfiguration(cfg => { cfg.CreateMap <OrderPo, Order>(); }); IMapper mapper = configuration.CreateMapper(); Order order = mapper.Map <OrderPo, Order>(orderPo); order.OrderSn = orderSn; order.UserId = sysUser.UserId; //4.设置订单项 OrderItem orderItem = new OrderItem(); orderItem.ItemCount = orderPo.ProductCount; orderItem.ItemPrice = orderPo.OrderTotalPrice; orderItem.ItemTotalPrice = orderPo.OrderTotalPrice; orderItem.ProductUrl = orderPo.ProductUrl; orderItem.ProductId = orderPo.ProductId; orderItem.OrderSn = orderSn; order.OrderItems = new List <OrderItem>() { orderItem }; //5.保存订单 order = orderClient.CreateOrder(order); //6.创建支付信息 PaymentDto paymentDto = new PaymentDto(); paymentDto.OrderSn = orderSn; paymentDto.UserId = sysUser.UserId; paymentDto.ProductId = orderPo.ProductId; paymentDto.ProductName = orderPo.ProductName; paymentDto.OrderTotalPrice = orderPo.OrderTotalPrice; return(paymentDto); }