示例#1
0
        public ActionResult AlipayPay()
        {
            ViewData["html"] = string.Empty;
            try
            {
                int OrderId = Convert.ToInt32(Request.QueryString["id"]);
                if (OrderId > 0)
                {
                    hotel3g.Repository.Order order = hotel3g.Repository.OrderRepository.GetOrderInfo(OrderId);

                    MemberInfo MemberInfoDeatil = hotel3g.Repository.MemberHelper.GetMemberInfo(order.HotelID.ToString());
                    //获取会员卡

                    string cardno =
                        hotel3g.Repository.MemberHelper.GetCardNo(order.UserWeiXinID, order.WeiXinID);

                    MemberCard Card     = hotel3g.Repository.MemberHelper.GetMemberCard(cardno, order.HotelID.ToString());
                    decimal    Discount = hotel3g.Repository.MemberHelper.GetDiscountByRatePlanID(order.RatePlanID.ToString(), order.HotelID.ToString()) / 10;

                    //获取会员 折扣
                    decimal rate = 0;

                    #region
                    if (!string.IsNullOrEmpty(cardno) && MemberInfoDeatil != null)
                    {
                        if (Card.night >= MemberInfoDeatil.vip4 && MemberInfoDeatil.vip4 > 0 && MemberInfoDeatil.vip4rate > 0)
                        {
                            rate = MemberInfoDeatil.vip4rate;
                        }
                        else if (Card.night >= MemberInfoDeatil.vip3 && MemberInfoDeatil.vip3 > 0 && MemberInfoDeatil.vip3rate > 0)
                        {
                            rate = MemberInfoDeatil.vip3rate;
                        }
                        else if (Card.night >= MemberInfoDeatil.vip2 && MemberInfoDeatil.vip2 > 0 && MemberInfoDeatil.vip2rate > 0)
                        {
                            rate = MemberInfoDeatil.vip2rate;
                        }
                        else if (Card.night >= MemberInfoDeatil.vip1 && MemberInfoDeatil.vip1 > 0 && MemberInfoDeatil.vip1rate > 0)
                        {
                            rate = MemberInfoDeatil.vip1rate;
                        }
                        else if (Card.night >= MemberInfoDeatil.vip0 && MemberInfoDeatil.vip0rate > 0)
                        {
                            rate = MemberInfoDeatil.vip0rate;
                        }
                    }
                    #endregion


                    if (order == null || order.PayType != "0")
                    {
                        throw new HttpException(404, "404");
                    }
                    ////////////////////////////////////////////调用授权接口alipay.wap.trade.create.direct获取授权码token////////////////////////////////////////////
                    //返回格式
                    string format = "xml";
                    //必填,不需要修改
                    //返回格式
                    string v = "2.0";
                    //必填,不需要修改
                    //请求号
                    string req_id = DateTime.Now.ToString("yyyyMMddHHmmss");
                    //必填,须保证每次请求都是唯一
                    //req_data详细信息
                    //服务器异步通知页面路径
                    string notify_url = GlobalConfig.WebSite + "/AliPay/AlipayNotify.html";
                    //需http://格式的完整路径,不允许加?id=123这类自定义参数
                    //页面跳转同步通知页面路径
                    string call_back_url = GlobalConfig.WebSite + "/AliPay/AlipayCallback.html";
                    //需http://格式的完整路径,不允许加?id=123这类自定义参数
                    //操作中断返回地址
                    string merchant_url = GlobalConfig.WebSite + "/Pay/Result";
                    //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数
                    //卖家支付宝帐户
                    string seller_email = WayAlipay.Alipay.Config.SellerEmail;
                    //必填
                    //商户订单号
                    string out_trade_no = Prefix + order.Id.ToString();
                    //商户网站订单系统中唯一订单号,必填
                    //订单名称
                    string subject = order.HotelName.Trim() + "  " + order.RoomName + (string.IsNullOrEmpty(order.RatePlanName) ? "" : string.Format("({0})", order.RatePlanName));
                    //必填
                    //付款金额
                    //string total_fee = ((int)Math.Ceiling((order.OrderAmount * Discount) * (rate / 10))).ToString();
                    string total_fee = ((int)Math.Ceiling(order.OrderAmount * (rate / 10))).ToString();
                    //必填
                    //请求业务参数详细
                    string req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url + "</notify_url><call_back_url>" + call_back_url + "</call_back_url><seller_account_name>" + seller_email + "</seller_account_name><out_trade_no>" + out_trade_no + "</out_trade_no><subject>" + subject + "</subject><total_fee>" + total_fee + "</total_fee><merchant_url>" + merchant_url + "</merchant_url></direct_trade_create_req>";
                    //必填
                    //把请求参数打包成数组
                    Dictionary <string, string> sParaTempToken = new Dictionary <string, string>();
                    sParaTempToken.Add("partner", WayAlipay.Alipay.Config.Partner);
                    sParaTempToken.Add("_input_charset", WayAlipay.Alipay.Config.Input_charset.ToLower());
                    sParaTempToken.Add("sec_id", WayAlipay.Alipay.Config.Sign_type.ToUpper());
                    sParaTempToken.Add("service", "alipay.wap.trade.create.direct");
                    sParaTempToken.Add("format", format);
                    sParaTempToken.Add("v", v);
                    sParaTempToken.Add("req_id", req_id);
                    sParaTempToken.Add("req_data", req_dataToken);

                    //建立请求
                    string sHtmlTextToken = WayAlipay.Alipay.Submit.BuildRequest(sParaTempToken);
                    //URLDECODE返回的信息
                    System.Text.Encoding code = System.Text.Encoding.GetEncoding(WayAlipay.Alipay.Config.Input_charset);
                    sHtmlTextToken = HttpUtility.UrlDecode(sHtmlTextToken, code);

                    //解析远程模拟提交后返回的信息
                    Dictionary <string, string> dicHtmlTextToken = WayAlipay.Alipay.Submit.ParseResponse(sHtmlTextToken);

                    //获取token
                    string request_token = dicHtmlTextToken["request_token"];

                    ////////////////////////////////////////////根据授权码token调用交易接口alipay.wap.auth.authAndExecute////////////////////////////////////////////
                    //业务详细
                    string req_data = "<auth_and_execute_req><request_token>" + request_token + "</request_token></auth_and_execute_req>";
                    //必填

                    //把请求参数打包成数组
                    Dictionary <string, string> sParaTemp = new Dictionary <string, string>();
                    sParaTemp.Add("partner", WayAlipay.Alipay.Config.Partner);
                    sParaTemp.Add("_input_charset", WayAlipay.Alipay.Config.Input_charset.ToLower());
                    sParaTemp.Add("sec_id", WayAlipay.Alipay.Config.Sign_type.ToUpper());
                    sParaTemp.Add("service", "alipay.wap.auth.authAndExecute");
                    sParaTemp.Add("format", format);
                    sParaTemp.Add("v", v);
                    sParaTemp.Add("req_data", req_data);

                    //建立请求
                    string sHtmlText = WayAlipay.Alipay.Submit.BuildRequest(sParaTemp, "get", "确认");
                    ViewData["html"] = sHtmlText;
                }
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("淘宝wap支付调用异常-{0}", ex.Message.ToString());
            }
            return(View());
        }
        public void postweixin(string code, string state)
        {
            if (!string.IsNullOrEmpty(code) && !string.IsNullOrEmpty(state))
            {
                string openid = "", weixinstr = "";
                bool   boocuy = true;

                /** ================会员卡销售支付========= */
                if (state.Contains("K"))
                {
                    var dt = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 * from WeiXin..MemberCardBuyRecord where OrderNo=@OrderId", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                        { "OrderId", new HotelCloud.SqlServer.DBParam {
                              ParamValue = state
                          } }
                    });
                    if (dt.Rows.Count > 0)
                    {
                        foreach (System.Data.DataRow dr in dt.Rows)
                        {
                            openid = getopenid(dr["weixinId"].ToString().Trim(), code);
                            var weixinstrtable = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 weixintype,edition from  WeiXin..WeiXinNO where WeiXinID=@WeiXinID", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                                { "WeiXinID", new HotelCloud.SqlServer.DBParam {
                                      ParamValue = dr["weixinId"].ToString().Trim()
                                  } }
                            });
                            if (weixinstrtable != null)
                            {
                                if (weixinstrtable.Rows.Count > 0)
                                {
                                    foreach (System.Data.DataRow rd in weixinstrtable.Rows)
                                    {
                                        /** ================判断公众号认证情况========= */
                                        weixinstr = rd["weixintype"].ToString();
                                        edition   = rd["edition"].ToString();
                                    }
                                }
                            }
                            if ((string.IsNullOrEmpty(weixinstr) || (weixinstr != "2" && weixinstr != "4")) && dr["weixinId"].ToString().Trim() == "gh_def2f166ed9e")
                            {
                                /** ================未认证情况 进行调整到二维码扫描支付========= */
                                Response.Redirect("http://hotel.weikeniu.com/WeiXinZhiFu/qrcode.aspx?OrderNo=" + dr["OrderNo"].ToString().Trim(), false);
                            }
                            else
                            {
                                int total_fee = Convert.ToInt32(Convert.ToDecimal(dr["BuyMoney"].ToString()) * 100);

                                /** ================Ashbur微信号对应支付金额 0.01元========= */
                                if (openid == "oPfrcjmqyO33T8a8Dn21Kq-QMAcg")
                                {
                                    total_fee = 1;
                                }
                                if (openid == "oUM4bwdTr3DXhUkGf43lGiipmxMA")
                                {
                                    total_fee = 1;
                                }
                                if (openid == "oZLQzv-cg1KvGmrTnq0xdxhK-4kc")
                                {
                                    total_fee = 1;
                                }

                                if (string.IsNullOrEmpty(openid))
                                {
                                    WxPayAPI.Log.Error(this.GetType().ToString(), "wxOAuthRedirect|This page have not get params, cannot be inited, exit...");
                                }
                                else
                                {
                                    HotelID      = dr["HotelId"].ToString().Trim();
                                    UserWeiXinID = dr["userWeixinId"].ToString().Trim();
                                    WeiXinID     = dr["weixinId"].ToString().Trim();

                                    WxPayAPI.WxPayData data = new WxPayAPI.WxPayData();
                                    data.SetValue("body", "会员卡购买");
                                    data.SetValue("attach", "presale");
                                    data.SetValue("out_trade_no", dr["OrderNo"].ToString().Trim());
                                    data.SetValue("total_fee", total_fee);
                                    data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));
                                    data.SetValue("time_expire", DateTime.Now.AddMinutes(30).ToString("yyyyMMddHHmmss"));
                                    data.SetValue("goods_tag", "会员卡消费");
                                    data.SetValue("trade_type", "JSAPI");
                                    data.SetValue("openid", openid);
                                    WxPayAPI.JsApiPay jsApiPay = new WxPayAPI.JsApiPay();
                                    jsApiPay.openid    = openid;
                                    jsApiPay.total_fee = total_fee;
                                    WxPayAPI.WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(data);
                                    wxJsApiParam = jsApiPay.GetJsApiParameters();
                                    WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam);
                                }
                            }
                        }
                    }
                    else
                    {
                        WxPayAPI.Log.Debug(this.GetType().ToString(), "无效订单或者非预订订单");
                    }
                    boocuy = false;
                    return;
                }

                /** ================酒店周边购物消费========= */
                if (state.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 = state
                          } }
                    });
                    if (dt.Rows.Count > 0)
                    {
                        foreach (System.Data.DataRow dr in dt.Rows)
                        {
                            openid = getopenid(dr["weixinID"].ToString().Trim(), code);
                            var weixinstrtable = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 weixintype,edition from  WeiXin..WeiXinNO where WeiXinID=@WeiXinID", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                                { "WeiXinID", new HotelCloud.SqlServer.DBParam {
                                      ParamValue = dr["weixinID"].ToString().Trim()
                                  } }
                            });
                            if (weixinstrtable != null)
                            {
                                if (weixinstrtable.Rows.Count > 0)
                                {
                                    foreach (System.Data.DataRow rd in weixinstrtable.Rows)
                                    {
                                        /** ================判断公众号认证情况========= */
                                        weixinstr = rd["weixintype"].ToString();
                                        edition   = rd["edition"].ToString();
                                    }
                                }
                            }
                            if ((string.IsNullOrEmpty(weixinstr) || (weixinstr != "2" && weixinstr != "4")) && dr["weixinID"].ToString().Trim() == "gh_def2f166ed9e")
                            {
                                Response.Redirect("http://hotel.weikeniu.com/WeiXinZhiFu/qrcode.aspx?OrderNo=" + dr["OrderId"].ToString().Trim(), false);
                            }
                            else
                            {
                                int total_fee = Convert.ToInt32(Convert.ToDecimal(dr["Money"].ToString()) * 100);

                                /** ================Ashbur微信号对应支付金额 0.01元========= */
                                if (openid == "oPfrcjmqyO33T8a8Dn21Kq-QMAcg")
                                {
                                    total_fee = 1;
                                }
                                if (openid == "oUM4bwdTr3DXhUkGf43lGiipmxMA")
                                {
                                    total_fee = 1;
                                }
                                if (openid == "oZLQzv-cg1KvGmrTnq0xdxhK-4kc")
                                {
                                    total_fee = 1;
                                }

                                if (string.IsNullOrEmpty(openid))
                                {
                                    WxPayAPI.Log.Error(this.GetType().ToString(), "wxOAuthRedirect|This page have not get params, cannot be inited, exit...");
                                }
                                else
                                {
                                    HotelID      = dr["HotelId"].ToString().Trim();
                                    UserWeiXinID = dr["userweixinID"].ToString().Trim();
                                    WeiXinID     = dr["weixinID"].ToString().Trim();

                                    WxPayAPI.WxPayData data = new WxPayAPI.WxPayData();
                                    data.SetValue("body", "酒店周边购物消费");
                                    data.SetValue("attach", "presale");
                                    data.SetValue("out_trade_no", dr["OrderId"].ToString().Trim());
                                    data.SetValue("total_fee", total_fee);
                                    data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));
                                    data.SetValue("time_expire", DateTime.Now.AddMinutes(30).ToString("yyyyMMddHHmmss"));
                                    data.SetValue("goods_tag", "酒店周边购物消费");
                                    data.SetValue("trade_type", "JSAPI");
                                    data.SetValue("openid", openid);
                                    WxPayAPI.JsApiPay jsApiPay = new WxPayAPI.JsApiPay();
                                    jsApiPay.openid    = openid;
                                    jsApiPay.total_fee = total_fee;
                                    WxPayAPI.WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(data);
                                    wxJsApiParam = jsApiPay.GetJsApiParameters();
                                    WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam);
                                }
                            }
                        }
                    }
                    else
                    {
                        WxPayAPI.Log.Debug(this.GetType().ToString(), "无效订单或者非预订订单");
                    }
                    boocuy = false;
                    return;
                }

                /** ================充值卡消费========= */
                if (state.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 = state
                          } }
                    });
                    if (dt.Rows.Count > 0)
                    {
                        foreach (System.Data.DataRow dr in dt.Rows)
                        {
                            openid = getopenid(dr["HotelWeiXinId"].ToString().Trim(), code);
                            var weixinstrtable = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 weixintype,edition from  WeiXin..WeiXinNO where WeiXinID=@WeiXinID", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                                { "WeiXinID", new HotelCloud.SqlServer.DBParam {
                                      ParamValue = dr["HotelWeiXinId"].ToString().Trim()
                                  } }
                            });
                            if (weixinstrtable != null)
                            {
                                if (weixinstrtable.Rows.Count > 0)
                                {
                                    foreach (System.Data.DataRow rd in weixinstrtable.Rows)
                                    {
                                        /** ================判断公众号认证情况========= */
                                        weixinstr = rd["weixintype"].ToString();
                                        edition   = rd["edition"].ToString();
                                    }
                                }
                            }
                            if ((string.IsNullOrEmpty(weixinstr) || (weixinstr != "2" && weixinstr != "4")) && dr["HotelWeiXinId"].ToString().Trim() == "gh_def2f166ed9e")
                            {
                                Response.Redirect("http://hotel.weikeniu.com/WeiXinZhiFu/qrcode.aspx?OrderNo=" + dr["OrderNo"].ToString().Trim(), false);
                            }
                            else
                            {
                                int total_fee = Convert.ToInt32(Convert.ToDecimal(dr["SPrice"].ToString()) * 100);

                                /** ================Ashbur微信号对应支付金额 0.01元========= */
                                if (openid == "oPfrcjmqyO33T8a8Dn21Kq-QMAcg")
                                {
                                    total_fee = 1;
                                }
                                if (openid == "oUM4bwdTr3DXhUkGf43lGiipmxMA")
                                {
                                    total_fee = 1;
                                }
                                if (openid == "oZLQzv-cg1KvGmrTnq0xdxhK-4kc")
                                {
                                    total_fee = 1;
                                }

                                if (string.IsNullOrEmpty(openid))
                                {
                                    WxPayAPI.Log.Error(this.GetType().ToString(), "wxOAuthRedirect|This page have not get params, cannot be inited, exit...");
                                }
                                else
                                {
                                    HotelID      = dr["HotelId"].ToString().Trim();
                                    UserWeiXinID = dr["UserWeiXinId"].ToString().Trim();
                                    WeiXinID     = dr["HotelWeiXinId"].ToString().Trim();

                                    WxPayAPI.WxPayData data = new WxPayAPI.WxPayData();
                                    data.SetValue("body", "充值卡消费");
                                    data.SetValue("attach", "presale");
                                    data.SetValue("out_trade_no", dr["OrderNo"].ToString().Trim());
                                    data.SetValue("total_fee", total_fee);
                                    data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));
                                    data.SetValue("time_expire", DateTime.Now.AddMinutes(30).ToString("yyyyMMddHHmmss"));
                                    data.SetValue("goods_tag", "充值卡消费");
                                    data.SetValue("trade_type", "JSAPI");
                                    data.SetValue("openid", openid);
                                    WxPayAPI.JsApiPay jsApiPay = new WxPayAPI.JsApiPay();
                                    jsApiPay.openid    = openid;
                                    jsApiPay.total_fee = total_fee;
                                    WxPayAPI.WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(data);
                                    wxJsApiParam = jsApiPay.GetJsApiParameters();
                                    WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam);
                                }
                            }
                        }
                    }
                    else
                    {
                        WxPayAPI.Log.Debug(this.GetType().ToString(), "无效订单或者非预订订单");
                    }
                    boocuy = false;
                    return;
                }


                /** ================度假产品消费========= */
                if (state.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 = state
                          } }
                    });
                    if (dt.Rows.Count > 0)
                    {
                        foreach (System.Data.DataRow dr in dt.Rows)
                        {
                            openid = getopenid(dr["HotelWeiXinId"].ToString().Trim(), code);
                            var weixinstrtable = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 weixintype,edition from  WeiXin..WeiXinNO where WeiXinID=@WeiXinID", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                                { "WeiXinID", new HotelCloud.SqlServer.DBParam {
                                      ParamValue = dr["HotelWeiXinId"].ToString().Trim()
                                  } }
                            });
                            if (weixinstrtable != null)
                            {
                                if (weixinstrtable.Rows.Count > 0)
                                {
                                    foreach (System.Data.DataRow rd in weixinstrtable.Rows)
                                    {
                                        /** ================判断公众号认证情况========= */
                                        weixinstr = rd["weixintype"].ToString();
                                        edition   = rd["edition"].ToString();
                                    }
                                }
                            }
                            if ((string.IsNullOrEmpty(weixinstr) || (weixinstr != "2" && weixinstr != "4")) && dr["HotelWeiXinId"].ToString().Trim() == "gh_def2f166ed9e")
                            {
                                /** ================未认证情况 进行调整到二维码扫描支付  目前这个方式也不OK========= */
                                Response.Redirect("http://hotel.weikeniu.com/WeiXinZhiFu/qrcode.aspx?OrderNo=" + dr["OrderNo"].ToString().Trim(), false);
                            }
                            else
                            {
                                int total_fee = Convert.ToInt32(Convert.ToDecimal(dr["OrderMoney"].ToString()) * 100);

                                /** ================Ashbur微信号对应支付金额 0.01元========= */
                                if (openid == "oPfrcjmqyO33T8a8Dn21Kq-QMAcg")
                                {
                                    total_fee = 1;
                                }
                                if (openid == "oUM4bwdTr3DXhUkGf43lGiipmxMA")
                                {
                                    total_fee = 1;
                                }
                                if (openid == "oZLQzv-cg1KvGmrTnq0xdxhK-4kc")
                                {
                                    total_fee = 1;
                                }

                                if (string.IsNullOrEmpty(openid))
                                {
                                    WxPayAPI.Log.Error(this.GetType().ToString(), "wxOAuthRedirect|This page have not get params, cannot be inited, exit...");
                                }
                                else
                                {
                                    HotelID      = dr["HotelId"].ToString().Trim();
                                    UserWeiXinID = dr["UserWeiXinId"].ToString().Trim();
                                    WeiXinID     = dr["HotelWeiXinId"].ToString().Trim();

                                    WxPayAPI.WxPayData data = new WxPayAPI.WxPayData();
                                    data.SetValue("body", dr["ProductName"].ToString().Trim());
                                    data.SetValue("attach", "presale");
                                    data.SetValue("out_trade_no", dr["OrderNo"].ToString().Trim());
                                    data.SetValue("total_fee", total_fee);
                                    data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));
                                    data.SetValue("time_expire", DateTime.Now.AddMinutes(30).ToString("yyyyMMddHHmmss"));
                                    data.SetValue("goods_tag", dr["ProductName"].ToString().Trim() + "[" + dr["TcName"].ToString().Trim() + "]");
                                    data.SetValue("trade_type", "JSAPI");
                                    data.SetValue("openid", openid);
                                    WxPayAPI.JsApiPay jsApiPay = new WxPayAPI.JsApiPay();
                                    jsApiPay.openid    = openid;
                                    jsApiPay.total_fee = total_fee;
                                    WxPayAPI.WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(data);
                                    wxJsApiParam = jsApiPay.GetJsApiParameters();
                                    WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam);
                                }
                            }
                        }
                    }
                    else
                    {
                        WxPayAPI.Log.Debug(this.GetType().ToString(), "无效订单或者非预订订单");
                    }
                    boocuy = false;
                    return;
                }

                /** ================ 酒店周边餐饮消费========= */
                if (state.Contains("L"))
                {
                    var dt = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 bagging,amount,youhuiamount,ISNULL(CouponMoney,0) as CouponMoney,hotelid,userweixinid,hotelWeixinId,orderCode,(select sum(AliPayAmount) from  WeiXin..wkn_payrecords where OrderNO=orderCode and Channel='微信支付回调') as zhifu,storeID  from WeiXin..T_OrderInfo where orderCode=@orderCode", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                        { "orderCode", new HotelCloud.SqlServer.DBParam {
                              ParamValue = state
                          } }
                    });
                    if (dt.Rows.Count > 0)
                    {
                        foreach (System.Data.DataRow dr in dt.Rows)
                        {
                            openid = getopenid(dr["hotelWeixinId"].ToString().Trim(), code);
                            var weixinstrtable = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 weixintype,edition from  WeiXin..WeiXinNO where WeiXinID=@WeiXinID", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                                { "WeiXinID", new HotelCloud.SqlServer.DBParam {
                                      ParamValue = dr["hotelWeixinId"].ToString().Trim()
                                  } }
                            });
                            if (weixinstrtable != null)
                            {
                                if (weixinstrtable.Rows.Count > 0)
                                {
                                    foreach (System.Data.DataRow rd in weixinstrtable.Rows)
                                    {
                                        /** ================判断公众号认证情况========= */
                                        weixinstr = rd["weixintype"].ToString();
                                        edition   = rd["edition"].ToString();
                                    }
                                }
                            }
                            if ((string.IsNullOrEmpty(weixinstr) || (weixinstr != "2" && weixinstr != "4")) && dr["hotelWeixinId"].ToString() == "gh_def2f166ed9e")
                            {
                                /** ================未认证情况 进行调整到二维码扫描支付========= */
                                Response.Redirect("http://hotel.weikeniu.com/WeiXinZhiFu/qrcode.aspx?OrderNo=" + dr["orderCode"].ToString().Trim(), false);
                            }
                            else
                            {
                                string bagging      = dr["bagging"].ToString();
                                string youhuiamount = dr["youhuiamount"].ToString();
                                if (string.IsNullOrEmpty(bagging))
                                {
                                    bagging = "0";
                                }
                                if (string.IsNullOrEmpty(youhuiamount))
                                {
                                    youhuiamount = "0";
                                }
                                Zhifu = dr["zhifu"].ToString();;
                                if (string.IsNullOrEmpty(Zhifu))
                                {
                                    Zhifu = "0";
                                }
                                int total_fee = Convert.ToInt32((Convert.ToDecimal(dr["amount"].ToString()) - Convert.ToDecimal(youhuiamount) + Convert.ToDecimal(bagging) - Convert.ToDecimal(dr["CouponMoney"].ToString())) * 100);

                                /** ================Ashbur微信号对应支付金额 0.01元========= */
                                if (openid == "oPfrcjmqyO33T8a8Dn21Kq-QMAcg")
                                {
                                    total_fee = 1;
                                }
                                if (openid == "oUM4bwdTr3DXhUkGf43lGiipmxMA")
                                {
                                    total_fee = 1;
                                }
                                if (openid == "oZLQzv-cg1KvGmrTnq0xdxhK-4kc")
                                {
                                    total_fee = 1;
                                }

                                if (string.IsNullOrEmpty(openid))
                                {
                                    WxPayAPI.Log.Error(this.GetType().ToString(), "wxOAuthRedirect|This page have not get params, cannot be inited, exit...");
                                }
                                else
                                {
                                    HotelID      = dr["hotelid"].ToString().Trim();
                                    UserWeiXinID = dr["userweixinid"].ToString().Trim();
                                    WeiXinID     = dr["hotelWeixinId"].ToString().Trim();
                                    storeId      = dr["storeId"].ToString().Trim();

                                    WxPayAPI.WxPayData data = new WxPayAPI.WxPayData();
                                    data.SetValue("body", "酒店周边餐饮消费");
                                    data.SetValue("attach", "consumption");
                                    data.SetValue("out_trade_no", dr["orderCode"].ToString().Trim());
                                    data.SetValue("total_fee", total_fee);
                                    data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));
                                    data.SetValue("time_expire", DateTime.Now.AddMinutes(30).ToString("yyyyMMddHHmmss"));
                                    data.SetValue("goods_tag", "酒店周边餐饮消费");
                                    data.SetValue("trade_type", "JSAPI");
                                    data.SetValue("openid", openid);
                                    WxPayAPI.JsApiPay jsApiPay = new WxPayAPI.JsApiPay();
                                    jsApiPay.openid    = openid;
                                    jsApiPay.total_fee = total_fee;
                                    WxPayAPI.WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(data);
                                    wxJsApiParam = jsApiPay.GetJsApiParameters();
                                    WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam);
                                }
                            }
                        }
                    }
                    else
                    {
                        WxPayAPI.Log.Debug(this.GetType().ToString(), "无效订单或者非预订订单");
                    }
                    boocuy = false;
                    return;
                }
                /** ================ 酒店客房销售========= */
                if (boocuy)
                {
                    hotel3g.Repository.Order order = hotel3g.Repository.OrderRepository.GetOrderInfo(state);
                    var weixinstrtable             = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@"select top 1 weixintype,edition from  WeiXin..WeiXinNO where WeiXinID=@WeiXinID", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                        { "WeiXinID", new HotelCloud.SqlServer.DBParam {
                              ParamValue = order.WeiXinID.Trim()
                          } }
                    });
                    if (weixinstrtable != null)
                    {
                        if (weixinstrtable.Rows.Count > 0)
                        {
                            foreach (System.Data.DataRow rd in weixinstrtable.Rows)
                            {
                                /** ================判断公众号认证情况========= */
                                weixinstr = rd["weixintype"].ToString();
                                edition   = rd["edition"].ToString();
                            }
                        }
                    }
                    if ((string.IsNullOrEmpty(weixinstr) || (weixinstr != "2" && weixinstr != "4")) && order.WeiXinID.Trim() == "gh_def2f166ed9e")
                    {
                        /** ================未认证情况 进行调整到二维码扫描支付========= */
                        Response.Redirect("http://hotel.weikeniu.com/WeiXinZhiFu/qrcode.aspx?OrderNo=" + order.OrderNo.ToString(), false);
                    }
                    else
                    {
                        if (order == null || order.PayType != "0")
                        {
                            WxPayAPI.Log.Debug(this.GetType().ToString(), "无效订单或者非预订订单");
                        }
                        else
                        {
                            openid = getopenid(order.WeiXinID.Trim(), code);
                            int total_fee = order.OrderAmount * 100;

                            /** ================Ashbur微信号对应支付金额 0.01元========= */
                            if (openid == "oPfrcjmqyO33T8a8Dn21Kq-QMAcg")
                            {
                                total_fee = 1;
                            }
                            if (openid == "oUM4bwdTr3DXhUkGf43lGiipmxMA")
                            {
                                total_fee = 1;
                            }
                            if (openid == "oZLQzv-cg1KvGmrTnq0xdxhK-4kc")
                            {
                                total_fee = 1;
                            }

                            if (string.IsNullOrEmpty(openid))
                            {
                                WxPayAPI.Log.Error(this.GetType().ToString(), "wxOAuthRedirect|This page have not get params, cannot be inited, exit...");
                            }
                            else
                            {
                                HotelID      = order.HotelID.ToString().Trim();
                                UserWeiXinID = order.UserWeiXinID.Trim();
                                WeiXinID     = order.WeiXinID.Trim();
                                if (edition == "1")
                                {
                                    orderid = order.Id.ToString();
                                }
                                orderid = order.Id.ToString();

                                WxPayAPI.WxPayData data = new WxPayAPI.WxPayData();
                                data.SetValue("body", order.HotelName.Trim());
                                data.SetValue("attach", "weikeniuwx");
                                data.SetValue("out_trade_no", order.OrderNo);
                                data.SetValue("total_fee", total_fee);
                                data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));
                                data.SetValue("time_expire", DateTime.Now.AddMinutes(30).ToString("yyyyMMddHHmmss"));
                                data.SetValue("goods_tag", order.RoomName + "[" + order.RatePlanName + "]");
                                data.SetValue("trade_type", "JSAPI");
                                data.SetValue("openid", openid);
                                WxPayAPI.JsApiPay jsApiPay = new WxPayAPI.JsApiPay();
                                jsApiPay.openid    = openid;
                                jsApiPay.total_fee = total_fee;
                                WxPayAPI.WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(data);
                                wxJsApiParam = jsApiPay.GetJsApiParameters();
                                WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam);
                            }
                        }
                    }
                }
            }
        }