/** * 调用统一下单,获得下单结果 * @return 统一下单结果 * @失败时抛异常WxPayException */ public WxPayAPI.WxPayData GetUnifiedOrderResult(decimal total_fee, string openid, string out_trade_no) { //统一下单 WxPayAPI.WxPayData data = new WxPayAPI.WxPayData(); data.SetValue("body", "四川红领巾少儿艺术团-报名活动"); data.SetValue("attach", "test"); data.SetValue("out_trade_no", out_trade_no); data.SetValue("total_fee", Convert.ToInt32(total_fee * 100)); data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); data.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss")); data.SetValue("goods_tag", "test"); data.SetValue("trade_type", "JSAPI"); data.SetValue("openid", openid); Log.WriteLog("GetUnifiedOrderResult!" + total_fee); WxPayAPI.WxPayData result = WxPayAPI.WxPayApi.UnifiedOrder(data); if (!result.IsSet("appid") || !result.IsSet("prepay_id") || result.GetValue("prepay_id").ToString() == "") { Log.WriteLog("UnifiedOrder response error!"); throw new WxPayException("UnifiedOrder response error!"); } Log.WriteLog("GetUnified77777"); unifiedOrderResult = result; return(result); }
//修改订单信息 public void SuccOrder() { WxPayAPI.WxPayData res = new WxPayAPI.WxPayData(); try { Log.WriteLog("SuccOrder:开始了"); WxPayAPI.WxPayData notifyData = GetNotifyData(); string out_trade_no = notifyData.GetValue("out_trade_no").ToString(); Log.WriteLog("SuccOrder:" + out_trade_no); //查询订单,判断订单真实性 if (!string.IsNullOrEmpty(out_trade_no)) { Order order = db.Orders.FirstOrDefault(c => c.Payno == out_trade_no); if (order != null) { order.Status = 1; order.PayTime = DateTime.Now; db.Orders.Update(order); if (db.SaveChanges() > 0) { Log.WriteLog("SuccOrder:Status"); var active = db.Actives.Find(order.ActiveId); active.Count++; db.Actives.Update(active); db.SaveChanges(); res.SetValue("return_code", "SUCCESS"); res.SetValue("return_msg", "OK"); Response.WriteAsync(res.ToXml()); Log.WriteLog("SuccOrder:SUCCESS"); } } else { Log.WriteLog("SuccOrder:订单查询失败"); res.SetValue("return_code", "FAIL"); res.SetValue("return_msg", "订单查询失败"); Response.WriteAsync(res.ToXml()); } } } catch (Exception e) { //打印日志 Log.WriteLog("SuccOrder:Message=" + e.Message); res.SetValue("return_code", "FAIL"); res.SetValue("return_msg", e.Message); Response.WriteAsync(res.ToXml()); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { OrderNo = HotelCloud.Common.HCRequest.GetString("OrderNo").ToUpper().Trim(); if (!string.IsNullOrEmpty(OrderNo)) { if (OrderNo.Contains("C")) { var dt = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 * from WeiXin..RechargeUser where OrderNo=@OrderNo", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "OrderNo", new HotelCloud.SqlServer.DBParam { ParamValue = OrderNo } } }); if (dt.Rows.Count > 0) { foreach (System.Data.DataRow dr in dt.Rows) { int OrderAmount = Convert.ToInt32(Convert.ToDecimal(dr["SPrice"].ToString()) * 1); OrderRoom = "充值扣款"; total_fee = OrderAmount.ToString(); } } } else if (OrderNo.Contains("K")) { var dt = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 * from WeiXin..MemberCardBuyRecord where OrderNo=@OrderNo", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "OrderNo", new HotelCloud.SqlServer.DBParam { ParamValue = OrderNo } } }); if (dt.Rows.Count > 0) { foreach (System.Data.DataRow dr in dt.Rows) { int OrderAmount = Convert.ToInt32(Convert.ToDecimal(dr["BuyMoney"].ToString()) * 1); OrderRoom = "会员卡购买"; total_fee = OrderAmount.ToString(); } } } else if (OrderNo.Contains("D")) { var dt = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 * from WeiXin..SupermarketOrder_Levi where OrderId=@OrderId", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "OrderId", new HotelCloud.SqlServer.DBParam { ParamValue = OrderNo.Trim() } } }); if (dt.Rows.Count > 0) { foreach (System.Data.DataRow dr in dt.Rows) { int OrderAmount = Convert.ToInt32(Convert.ToDecimal(dr["Money"].ToString()) * 1); OrderRoom = "酒店周边超市消费"; total_fee = OrderAmount.ToString(); } } } else if (OrderNo.Contains("P")) { var dt = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 * from WeiXin..SaleProducts_Orders where OrderNo=@OrderNo", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "OrderNo", new HotelCloud.SqlServer.DBParam { ParamValue = OrderNo } } }); if (dt.Rows.Count > 0) { foreach (System.Data.DataRow dr in dt.Rows) { int OrderAmount = Convert.ToInt32(Convert.ToDecimal(dr["OrderMoney"].ToString()) * 1); OrderRoom = dr["ProductName"].ToString().Trim() + "[" + dr["TcName"].ToString().Trim() + "]"; total_fee = OrderAmount.ToString(); } } } else if (OrderNo.Contains("L")) { var dt = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 bagging,amount,youhuiamount,hotelid,userweixinid,hotelWeixinId,orderCode,(select sum(AliPayAmount) from WeiXin..wkn_payrecords where OrderNO=orderCode and Channel='微信支付回调') as zhifu from WeiXin..T_OrderInfo where orderCode=@orderCode", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "orderCode", new HotelCloud.SqlServer.DBParam { ParamValue = OrderNo.Trim() } } }); if (dt.Rows.Count > 0) { foreach (System.Data.DataRow dr in dt.Rows) { string bagging = dr["bagging"].ToString(); string youhuiamount = dr["youhuiamount"].ToString(); if (string.IsNullOrEmpty(bagging)) { bagging = "0"; } if (string.IsNullOrEmpty(youhuiamount)) { youhuiamount = "0"; } int OrderAmount = Convert.ToInt32((Convert.ToDecimal(dr["amount"].ToString()) - Convert.ToDecimal(youhuiamount) + Convert.ToDecimal(bagging)) * 1); OrderRoom = "酒店周边餐饮消费"; total_fee = OrderAmount.ToString(); } } } else { hotel3g.Repository.Order order = hotel3g.Repository.OrderRepository.GetOrderInfo(OrderNo.Trim()); OrderRoom = order.RoomName + "[" + order.RatePlanName + "]"; total_fee = order.OrderAmount.ToString(); url = string.Format("http://hotel.weikeniu.com/Hotel/Index/{0}?key={1}@{2}", order.HotelID.ToString(), order.WeiXinID.ToString(), order.UserWeiXinID.ToString()); } } if (HotelCloud.Common.HCRequest.GetString("action") == "code") { WxPayAPI.NativePay np = new WxPayAPI.NativePay(); /** ================得到长连接========= */ string long_url = np.GetPrePayUrl(HotelCloud.Common.HCRequest.GetString("OrderNo")); WxPayAPI.WxPayData data = new WxPayAPI.WxPayData(); data.SetValue("long_url", long_url); /** ================减小二维码数据量,提升扫描速度和精确度========= */ WxPayAPI.WxPayData Result = WxPayAPI.WxPayApi.ShortUrl(data, 6); if (Result != null) { if (Result.GetValue("return_code").ToString() == "SUCCESS") { string ShortUrl = Result.GetValue("short_url").ToString(); WxPayAPI.Log.Debug("WxPayApi", "ShortUrl : " + long_url); Response.Write(CreateCode_Choose(ShortUrl, "Byte", "M", 8, 4)); } } Response.End(); } } }