Example #1
0
        public PayOutput GetPayOutput(PayInput input)
        {
            OrderDto order = Get(new OrderGetInput()
            {
                Id = input.Id
            });

            if (order.PaymentStatus == PaymentStatus.Payed)
            {
                throw new UserFriendlyException("the order has payed!");
            }
            PayOutput payOutput = new PayOutput()
            {
                Order = order
            };

            return(payOutput);
        }
Example #2
0
        public PayOutput GetPayOrderInfo(PayOrderDto payInfo, string payApi)
        {
            var formData = new Dictionary <string, object>();

            formData.Add("uid", payInfo.Uid);
            formData.Add("price", payInfo.Price);
            formData.Add("istype", payInfo.Istype);
            formData.Add("notify_url", payInfo.Notify_url);
            formData.Add("return_url", payInfo.Return_url);
            formData.Add("orderid", payInfo.Orderid);
            formData.Add("orderuid", payInfo.Orderuid);
            formData.Add("goodsname", payInfo.Goodsname);
            formData.Add("key", payInfo.Key);

            dynamic result;

            try
            {
                var response = _httpClient.Post(payApi, formData, null, new { format = "json" });
                result = response.RawText.ToObject();
            }
            catch (Exception e)
            {
                _logger.Error(e);
                string payType          = string.Empty;
                string recommendPaytype = string.Empty;
                if (payInfo.Istype == 1)
                {
                    payType          = "支付宝";
                    recommendPaytype = "微信";
                }
                else
                {
                    payType          = "微信";
                    recommendPaytype = "支付宝";
                }
                throw new LotteryException(string.Format("{0}支付系统异常,推荐使用{1}支付,或稍后重试", payType, recommendPaytype));
            }

            string qrcodeLink = result.data.qrcode.ToString();

            if (qrcodeLink.IsNullOrEmpty())
            {
                string payType          = string.Empty;
                string recommendPaytype = string.Empty;
                if (payInfo.Istype == 1)
                {
                    payType          = "支付宝";
                    recommendPaytype = "微信";
                }
                else
                {
                    payType          = "微信";
                    recommendPaytype = "支付宝";
                }
                throw new LotteryException(string.Format("{0}支付系统异常,推荐使用{1}支付,或稍后重试", payType, recommendPaytype));
            }
            var output = new PayOutput()
            {
                IsType             = result.data.istype,
                Msg                = payInfo.Goodsname,
                QrCodeImageAddress = string.Format(LotteryConstants.QrCodeUrl, result.data.qrcode),
                QrCode             = result.data.qrcode,
                RealPrice          = result.data.realprice
            };

            return(output);
        }
Example #3
0
        public ActionResult Index(PayInput input)
        {
            PayOutput PayOutput = _orderAppService.GetPayOutput(input);

            return(View(PayOutput));
        }