/// <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); }
/// <summary> /// 查询支付状态 /// 窦海超 /// 2015年5月12日 14:35:19 /// </summary> /// <returns></returns> public dynamic GetOrderPayStatus(OrderPayModel model) { //OrderPayModel model = new OrderPayModel() //{ // childId = 1, // orderId = 2114, // payType = 1, // payStyle = 1 //}; return(payProvider.GetOrderPayStatus(model)); }
public bool UpdateOrderPay(OrderPayModel orderPayModel) { using (var cmd = DataCommandManager.GetDataCommand("UpdateOrderPay")) { cmd.SetParameterValue("@OrderId", orderPayModel.OrdeId); //cmd.SetParameterValue("@PayId", orderPayModel.PayId); cmd.SetParameterValue("@Status", orderPayModel.Status); return(cmd.ExecuteNonQuery() > 0); } }
public bool InsertOrderPay(OrderPayModel orderPayModel) { using (var cmd = DataCommandManager.GetDataCommand("InsertOrderPay")) { cmd.SetParameterValue("@PayId", orderPayModel.PayId); cmd.SetParameterValue("@OrderId", orderPayModel.OrdeId); cmd.SetParameterValue("@UserId", orderPayModel.UserId); cmd.SetParameterValue("@Status", orderPayModel.Status); cmd.SetParameterValue("@CreateTime", orderPayModel.CreateTime); return(cmd.ExecuteNonQuery() > 0); } }
public bool UpdateOrderPay(OrderPayModel orderPayModel) { return(orderDataAccess.UpdateOrderPay(orderPayModel)); }
public bool InsertOrderPay(OrderPayModel orderPayModel) { return(orderDataAccess.InsertOrderPay(orderPayModel)); }
public async Task <ApiResult> Pay(OrderPayModel model) { long orderStateId = await idNameService.GetIdByNameAsync("待付款"); User user = JwtHelper.JwtDecrypt <User>(ControllerContext); var dtos = await orderApplyService.GetModelListAsync(user.Id); if (dtos.OrderApplies.Count() <= 0) { return(new ApiResult { status = 0, msg = "下单列表无商品" }); } long id = await orderService.AddAsync(model.DeliveryTypeId, 0, user.Id, model.AddressId, model.PayTypeId, orderStateId, dtos.OrderApplies); if (id <= 0) { if (id == -4) { return(new ApiResult { status = 0, msg = "订单中有商品已经下架,请重新下单", data = 0 }); } return(new ApiResult { status = 0, msg = "生成订单失败" }); } OrderDTO order = await orderService.GetModelAsync(id); await goodsCarService.DeleteListAsync(user.Id); await orderApplyService.DeleteListAsync(user.Id); long payTypeId1 = await idNameService.GetIdByNameAsync("微信"); if (payTypeId1 != model.PayTypeId) { return(new ApiResult { status = 0, msg = "请选择微信支付" }); } WeChatPay weChatPay = new WeChatPay(); weChatPay.body = "订单支付"; weChatPay.out_trade_no = order.Code; weChatPay.openid = user.Code.Substring(3, 28); weChatPay.total_fee = Math.Truncate(order.Amount * 100).ToString(); string parm = HttpClientHelper.BuildParam(weChatPay); string key = System.Configuration.ConfigurationManager.AppSettings["KEY"]; parm = parm + "&key=" + key; string sign = CommonHelper.GetMD5(parm); HttpClient httpClient = new HttpClient(); string xml = HttpClientHelper.ObjSerializeXml(weChatPay, sign); //CacheHelper.SetCache("App_Order_Pay" + weChatPay.out_trade_no, sign, DateTime.UtcNow.AddMinutes(2), TimeSpan.Zero); string res = await HttpClientHelper.GetResponseByPostXMLAsync(httpClient, xml, "https://api.mch.weixin.qq.com/pay/unifiedorder"); if (!res.Contains("SUCCESS")) { return(new ApiResult { status = 0, msg = res }); } XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(res); XmlNode Child = xmlDoc.SelectSingleNode("xml/prepay_id"); log.DebugFormat($"微信支付统一下单:时间{DateTime.Now}"); TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); GetWechat getWeChat = new GetWechat(); getWeChat.timeStamp = Convert.ToInt64(ts.TotalSeconds).ToString(); getWeChat.package = "prepay_id" + Child.InnerText; parm = HttpClientHelper.BuildParam(getWeChat); parm = parm.Replace("prepay_id", "prepay_id="); parm = parm + "&key=" + key; string paySign = CommonHelper.GetMD5(parm); GetWechat1 getWeChat1 = new GetWechat1(); getWeChat1.appId = getWeChat.appId; getWeChat1.nonceStr = getWeChat.nonceStr; getWeChat1.package = "prepay_id=" + Child.InnerText; getWeChat1.signType = getWeChat.signType; getWeChat1.timeStamp = getWeChat.timeStamp; getWeChat1.paySign = paySign; getWeChat1.orderId = id; return(new ApiResult { status = 1, data = getWeChat1 }); }
public ActionResult OrderPay() { //订单id列表 string oidList = WebHelper.GetQueryString("oidList"); string paySystemName = ""; decimal allSurplusMoney = 0M; List <OrderInfo> orderList = new List <OrderInfo>(); foreach (string oid in StringHelper.SplitString(oidList)) { //订单信息 OrderInfo orderInfo = Orders.GetOrderByOid(TypeHelper.StringToInt(oid)); if (orderInfo != null && orderInfo.Uid == WorkContext.Uid && orderInfo.OrderState == (int)OrderState.WaitPaying && orderInfo.PayMode == 1 && (paySystemName.Length == 0 || paySystemName == orderInfo.PaySystemName)) { orderList.Add(orderInfo); } else { return(Redirect(Url.Action("index", "home"))); } paySystemName = orderInfo.PaySystemName; allSurplusMoney += orderInfo.SurplusMoney; } if (orderList.Count < 1 || allSurplusMoney == 0M) { return(Redirect(Url.Action("index", "home"))); } WeiXinConfig wxconfig = BMAConfig.WeiXinConfig; var appId = wxconfig.AppID; //WeixinConfig.AppID; var nonceStr = Util.CreateNonce_str(); var timestamp = DateTime.Now.Ticks.ToString().Substring(0, 10); var domain = wxconfig.Domain; var url = Request.Url.ToString().Replace("#", "");// domain + Request.Url.PathAndQuery; var jsTickect = WeiXinHelp.IsExistjsapi_ticket(); var string1 = ""; var signature = WeiXinHelp.GetjsSDK_Signature(nonceStr, jsTickect, timestamp, url); //JSAPI.GetSignature(jsTickect, nonceStr, timestamp, url, out string1); var userAgent = Request.UserAgent; var userVersion = userAgent.Substring(userAgent.LastIndexOf("/") + 1); //WeiXinConfig wxconfig = BMAConfig.WeiXinConfig; //Logs.Write(form.ToString()); var out_trade_no = orderList[0].OSN; //Guid.NewGuid().ToString(); //var domain = wxconfig.Domain; var body = "购买创梦星火商城商品"; var detail = "购买创梦星火商城商品"; var attach = "购买创梦星火商城商品"; var fee_type = "CNY"; var total_fee = Decimal.ToInt32(orderList[0].SurplusMoney) * 100;// *100; var trade_type = "JSAPI"; var spbill_create_ip = (trade_type == "APP" || trade_type == "NATIVE") ? Request.UserHostName : wxconfig.Spbill_create_ip; var time_start = DateTime.Now.ToString("yyyyMMddHHmmss"); var time_expire = DateTime.Now.AddDays(7).ToString("yyyyMMddHHmmss"); //默认1个小时订单过期,开发者可自定义其他超时机制,原则上微信订单超时时间不超过2小时 var goods_tag = "商品"; var notify_url = wxconfig.NOTIFY_URL; //与下面的Notify对应,开发者可自定义其他url地址 var product_id = orderList[0].Oid.ToString(); var openid = WorkContext.Openid; var partnerKey = wxconfig.PartnerKey; var content = WxPayAPI.UnifiedOrder( wxconfig.AppID, wxconfig.Mch_id, wxconfig.Device_info, Util.CreateNonce_str(), body, detail, attach, out_trade_no, fee_type, total_fee, spbill_create_ip, time_start, time_expire, goods_tag, notify_url, trade_type, product_id, openid, partnerKey); var prepay_id = ""; //var trade_type = ""; var paySign = ""; //var timestamp = ""; var nonce_str = ""; var return_code = ""; if (content.return_code.Value == "SUCCESS" && content.result_code.Value == "SUCCESS") { WxPayAPIHelp.WxPayData jsApiParam = new WxPayAPIHelp.WxPayData(); string payTimeSamp = DateTime.Now.Ticks.ToString().Substring(0, 10); jsApiParam.SetValue("appId", wxconfig.AppID); jsApiParam.SetValue("timeStamp", payTimeSamp); jsApiParam.SetValue("nonceStr", content.nonce_str.Value); jsApiParam.SetValue("package", "prepay_id=" + content.prepay_id.Value); jsApiParam.SetValue("signType", "MD5"); //prepay_id = content.prepay_id.Value; prepay_id = content.prepay_id.Value; trade_type = content.trade_type.Value; paySign = jsApiParam.MakeSign(); timestamp = payTimeSamp; nonce_str = content.nonce_str.Value; return_code = content.result_code.Value; } else { return(PromptView("错误编号:" + content.return_code.Value + "错误信息:" + content.return_msg.Value)); } OrderPayModel model = new OrderPayModel(); model.OidList = oidList; model.AllSurplusMoney = allSurplusMoney; model.OrderList = orderList; model.PayPlugin = Plugins.GetPayPluginBySystemName(paySystemName); model.nonceStr = nonceStr; model.jsapiTicket = jsTickect; model.nonce_str = nonce_str; model.paySign = paySign; model.signature = signature; model.timestamp = timestamp; model.userAgent = userAgent; model.userVersion = userVersion; model.appId = appId; model.prepay_id = prepay_id; return(View(model)); //return PromptView("出错了!"); }