Exemplo n.º 1
0
        /// <summary>
        /// 生成微信二维码订单
        /// 窦海超
        /// 2015年5月13日 14:57:38
        /// </summary>
        /// <param name="orderNo">订单号</param>
        /// <param name="WxCodeUrl">微信地址</param>
        /// <param name="TotalPrice">总金额,注意:微信要乘以100=最后支付的金额,这里传值前不要乘以100</param>
        /// <returns></returns>
        public ResultModel <PayResultModel> CreateWxPayOrder(string orderNo, decimal totalPrice, string wxCodeUrl)
        {
            //支付方式-主订单ID-子订单ID
            PayResultModel resultModel = new PayResultModel();
            string         code_url    = wxCodeUrl;

            if (string.IsNullOrEmpty(code_url))//先查一下库是否存在二维码地址,不存在去微信生成
            {
                string       wx_nonceStr = RequestHandler.getNoncestr();
                WXpayService wxpay       = new WXpayService("127.0.0.1", orderNo, "e代送", wx_nonceStr, (Convert.ToInt32(totalPrice * 100)).ToString());//传给微信的金额
                code_url = wxpay.CreateNativeApi();
                if (string.IsNullOrEmpty(code_url))
                {
                    return(ResultModel <PayResultModel> .Conclude(AliPayStatus.fail));
                }
                int productId = ParseHelper.ToInt(orderNo.Split('_')[0]);
                int orderId   = ParseHelper.ToInt(orderNo.Split('_')[1]);
                int childId   = ParseHelper.ToInt(orderNo.Split('_')[2]);
                if (productId == ProductEnum.OrderChildPay.GetHashCode())
                {
                    //如果是子订单支付
                    orderChildDao.UpdateWxCodeUrl(orderId, childId, code_url);//把获取到的支付宝地址更新到子订单下
                }
            }

            resultModel.aliQRCode = code_url;                         //微信地址
            resultModel.orderNo   = orderNo;                          //订单号
            resultModel.payAmount = totalPrice;                       //总金额,没乘以100的值
            resultModel.payType   = PayTypeEnum.WeiXin.GetHashCode(); //微信
            resultModel.notifyUrl = ETS.Config.WXNotifyUrl;           //回调地址
            return(ResultModel <PayResultModel> .Conclude(AliPayStatus.success, resultModel));
        }
Exemplo n.º 2
0
 /// <summary>
 /// 查询支付状态
 /// 窦海超
 /// 2015年5月12日 14:36:55
 /// </summary>
 /// <returns></returns>
 public dynamic GetOrderPayStatus(OrderPayModel model)
 {
     try
     {
         PayStatusModel orderChildModel = orderChildDao.GetPayStatus(model.orderId, model.childId);
         if (orderChildModel == null)
         {
             return(new { status_code = -1, status_message = "order_id:" + model.orderId + "_" + model.childId + "错误" });
         }
         if (orderChildModel.PayStatus == PayStatusEnum.HadPay.GetHashCode())//如果数据库里返回已完成直接返回
         {
             return(new { status_code = 1, status_message = string.Empty, data = new { pay_status = 1 } });
         }
         string orderNo = string.Concat(model.productId, "_", model.orderId, "_", model.childId + "_", model.payStyle);
         //支付宝
         if (model.payType == PayTypeEnum.ZhiFuBao.GetHashCode())
         {
             int unfinish = new OrderChildDao().CheckOrderChildPayStatus(model.orderId);
             //return alipayIntegrate.GetOrder(orderNo, model.orderId, model.childId, unfinish);
             return(null);
         }
         //微信
         if (model.payType == PayTypeEnum.WeiXin.GetHashCode())
         {
             WXpayService wxpay = new WXpayService();
             return(wxpay.GetOrder(orderNo));
         }
     }
     catch (Exception ex)
     {
         LogHelper.LogWriter(ex, "查询支付状态异常");
         return(new { status_code = -1, status_message = string.Empty });
     }
     return(null);
 }