/// <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)); }
/// <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); }