Example #1
0
        public async Task <PayOutput> Pay(PayInput input)
        {
            var orderInfo = _sellAppService.GetOrderInfo(input.OrderId);

            if (orderInfo == null)
            {
                throw new LotteryDataException("下单失败,请稍后重试");
            }
            if (!orderInfo.OrderCost.Equals(input.Price))
            {
                throw new LotteryDataException("订单金额错误,请核对订单信息");
            }
            if (input.IsType != PayType.AliPay && input.IsType != PayType.Wechat)
            {
                throw new LotteryDataException("请选择支付方式");
            }
            var paysApiInfo = _sellAppService.GetPaysApiInfo();
            var payInfo     = new PayOrderDto()
            {
                Uid    = paysApiInfo.Uid,
                Price  = input.Price.ToString("#0.00"),
                Istype = (int)input.IsType,
                //  Goodsname = input.GoodsName,
                Notify_url = paysApiInfo.NotifyUrl,
                Return_url = paysApiInfo.ReturnUrl,
                Orderid    = input.OrderId,
                Orderuid   = _lotterySession.UserName,
            };

            payInfo.Key = GetPayKey(payInfo, paysApiInfo.Token);

            return(_sellAppService.GetPayOrderInfo(payInfo, paysApiInfo.PaysApi));
        }