Example #1
0
        public ActionResult PayOrder(int oid = -1)
        {
            OrderInfo orderInfo = AdminOrders.GetOrderByOid(oid);

            if (orderInfo == null)
            {
                return(PromptView("订单不存在"));
            }
            if (orderInfo.StoreId != WorkContext.StoreId)
            {
                return(PromptView("不能操作其它店铺的订单"));
            }

            if (orderInfo.PayMode != 2)
            {
                return(PromptView(Url.Action("orderinfo", new { oid = oid }), "付款操作只适用于线下付款"));
            }
            if (orderInfo.OrderState != (int)OrderState.WaitPaying)
            {
                return(PromptView(Url.Action("orderinfo", new { oid = oid }), "当前不能支付订单"));
            }

            PayOrderModel model = new PayOrderModel();

            ViewData["orderInfo"] = orderInfo;
            return(View(model));
        }
Example #2
0
        public ActionResult PayOrder(PayOrderModel model, int oid = -1)
        {
            OrderInfo orderInfo = AdminOrders.GetOrderByOid(oid);

            if (orderInfo == null)
            {
                return(PromptView("订单不存在"));
            }

            if (orderInfo.PayMode != 2)
            {
                return(PromptView(Url.Action("orderinfo", new { oid = oid }), "付款操作只适用于线下付款"));
            }
            if (orderInfo.OrderState != (int)OrderState.WaitPaying)
            {
                return(PromptView(Url.Action("orderinfo", new { oid = oid }), "当前不能支付订单"));
            }

            if (ModelState.IsValid)
            {
                AdminOrders.PayOrder(oid, OrderState.Confirming, model.PaySN, DateTime.Now);
                CreateOrderAction(oid, OrderActionType.Pay, "您的订单成功支付,请等待确认");
                AddMallAdminLog("支付订单", "支付订单,订单ID为:" + oid);
                return(PromptView(Url.Action("orderinfo", new { oid = oid }), "订单支付成功"));
            }
            ViewData["orderInfo"] = orderInfo;
            return(View(model));
        }
Example #3
0
        public IActionResult PayOrder([FromBody] PayOrderModel payOrderModel)
        {
            Order result;

            try
            {
                result = orderService.PayOrder(User.Identity.Name, payOrderModel.OrderID, (decimal)payOrderModel.Ammount);
            }
            catch (OrderServiceException ex)
            {
                return(BadRequest(ex.Message));
            }
            return(new JsonResult(result));
        }
        public ActionResult PayOrder(PayOrderModel model)
        {
            OrderViewModel order = _orderLogic.Read(new OrderBindingModel
            {
                Id = model.OrderId
            }).FirstOrDefault();

            if (!ModelState.IsValid)
            {
                ViewBag.Order = order;
                return(View(model));
            }

            if (order.SumPaid > model.Sum)
            {
                ViewBag.Order = order;
                return(View(model));
            }

            _paymentLogic.CreateOrUpdate(new PaymentBindingModel
            {
                OrderId  = order.Id,
                ClientId = Program.Client.Id,
                Account  = model.Account,
                Date     = DateTime.Now,
                Sum      = model.Sum
            });

            _orderLogic.CreateOrUpdate(new OrderBindingModel
            {
                Id       = order.Id,
                ClientId = order.ClientId,
                Date     = order.Date,
                Status   = order.SumPaid + model.Sum < order.Sum ? OrderStatus.Оплачивается : OrderStatus.Оплачен,
                Sum      = order.Sum,
                Products = order.Products.Select(rec => new OrderProductBindingModel
                {
                    Id        = rec.Id,
                    OrderId   = rec.OrderId,
                    ProductId = rec.ProductId,
                    Count     = rec.Count
                }).ToList()
            });

            return(RedirectToAction("Index"));
        }
Example #5
0
        public async Task <IActionResult> TryToPayOrder([FromBody] PayOrderModel model)
        {
            try
            {
                var result = await _repairsRepository.TryToPayOrder(model.RepairId);

                return(Json(
                           new
                {
                    Success = true,
                    Data = result.ToString().ToLower()
                }));
            }
            catch (Exception exception)
            {
                return(Json(new { Success = false, exception.Message }));
            }
        }
Example #6
0
        public async Task <UnifiedOrderReturnModel> Unifiedorder([FromForm] PayOrderModel payOrder)
        {
            //string mchid, string orderid, string body, int paytype, string amount, string attach, string ip, string callbackurl, string notifyurl, string sign
            SortedDictionary <string, string> para = new SortedDictionary <string, string>();

            para.Add("mchid", payOrder.MchId);
            para.Add("orderid", payOrder.OrderId);
            para.Add("body", payOrder.Body);
            para.Add("paytype", payOrder.PayType.ToString());
            para.Add("amount", payOrder.Amount);
            para.Add("attach", payOrder.Attach);
            para.Add("ip", payOrder.Ip);
            para.Add("callbackurl", payOrder.CallBackUrl);
            para.Add("notifyurl", payOrder.NotifyUrl);

            string temp = string.Format("{0}&key={1}", OnlinePay.GetParamSrc(para), WebConfig.MchKey);

            Dos.Common.LogHelper.Debug(temp);

            UnifiedOrderReturnModel r = new UnifiedOrderReturnModel();

            if (payOrder.MchId != WebConfig.MchId)
            {
                Dos.Common.LogHelper.Debug("商户号不存在");
                r.Type    = PayReturnTypeEnum.Err;
                r.Content = "商户号不存在";
                return(r);
            }
            string cusSign = Dos.Common.EncryptHelper.MD5EncryptWeChat(temp, "utf-8");

            if (cusSign.ToLower() != payOrder.Sign.ToLower())
            {
                Dos.Common.LogHelper.Debug("签名错误");
                r.Type    = PayReturnTypeEnum.Err;
                r.Content = "签名错误";
                return(r);
            }
            return(await PayOrderBll._.Unifiedorder(payOrder.MchId, payOrder.OrderId, payOrder.Body, payOrder.PayType, payOrder.Amount, payOrder.Attach, payOrder.Ip, payOrder.CallBackUrl, payOrder.NotifyUrl));
        }
Example #7
0
        public PayValue OrderPay(PayValue payValue)
        {
            PayValue      returnValue   = new PayValue();
            PayOrderModel payOrderModel = (PayOrderModel)payValue.ReturnObject;

            //备注
            byte[] bytes       = System.Text.Encoding.Default.GetBytes(payOrderModel.Note);
            string base64_memo = Convert.ToBase64String(bytes);

            StringBuilder sb = new StringBuilder();

            sb.Append("user_id=");
            sb.Append(payOrderModel.Userid);
            sb.Append("&user_name=");
            sb.Append(payOrderModel.Receiver);
            sb.Append("&user_cert_type=");
            if (payOrderModel.PassPortType == 1)
            {
                sb.Append("00");
            }
            else if (payOrderModel.PassPortType == 2)
            {
                sb.Append("02");
            }
            else
            {
                sb.Append("99");
            }
            sb.Append("&user_cert_no=");
            sb.Append(payOrderModel.PassPortNum);
            sb.Append("&user_mobile=");
            sb.Append(payOrderModel.Phone);

            byte[] userInfobytes  = System.Text.Encoding.Default.GetBytes(sb.ToString());
            String userInfoBase64 = Convert.ToBase64String(userInfobytes);

            //设置支付请求参数
            SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();

            sParaTemp.Add("out_trade_no", payOrderModel.OrderId);                  //商家订单号
            sParaTemp.Add("total_fee", payOrderModel.Totalfee.ToString("f2"));     //商品金额,以元为单位
            sParaTemp.Add("return_url", ConfigHelper.EReturnUrl);                  //交易完成后跳转的URL
            sParaTemp.Add("notify_url", ConfigHelper.ENotifyUrl);                  //接收后台通知的URL
            sParaTemp.Add("currency_type", payOrderModel.PayCurrencys.ToString()); //货币种类
            sParaTemp.Add("order_create_ip", payOrderModel.Createip);              //创建订单的客户端IP(消费者电脑公网IP,用于防钓鱼支付)
            sParaTemp.Add("sign_type", ConfigHelper.ESignType);                    //签名算法(暂时只支持SHA256)
            sParaTemp.Add("store_oi_type", StringUtils.ToInt(payOrderModel.Storeoitype, 1).ToString());

            sParaTemp.Add("goods_amount", payOrderModel.OrderGoodsAmount.ToString("f2")); //支付货款
            sParaTemp.Add("goods_amount_curr", payOrderModel.PayCurrencys.ToString());    //货币种类
            sParaTemp.Add("tax_amount", payOrderModel.OrderTaxAmount.ToString("f2"));     //支付税款
            sParaTemp.Add("tax_amount_curr", payOrderModel.PayCurrencys.ToString());      //货币种类
            sParaTemp.Add("freight", payOrderModel.OrderFreight.ToString("f2"));          //支付运费
            sParaTemp.Add("freight_curr", payOrderModel.PayCurrencys.ToString());         //货币种类
            sParaTemp.Add("submission_type", "01");
            sParaTemp.Add("base64_user_info", userInfoBase64);                            //用户信息
            sParaTemp.Add("pay_id", payOrderModel.PayId);
            //可选参数
            sParaTemp.Add("base64_memo", base64_memo);          //订单备注的BASE64编码

            //建立请求
            string sHtmlText = Submit.BuildRequestUrl(sParaTemp);

            returnValue.HasError     = false;
            returnValue.ReturnString = sHtmlText;
            return(returnValue);
        }