protected void Page_Load(object sender, EventArgs e) { try { //参数&参数校验 var pageName = this.Request["pageName"]; var customerID = this.Request["customerId"]; var goUrl = this.Request["goUrl"]; if (string.IsNullOrWhiteSpace(pageName)) { this.WriteError("QueryString参数中不存在pageName节"); return; } if (string.IsNullOrWhiteSpace(customerID)) { this.WriteError("QueryString参数中不存在customerId节"); return; } if (string.IsNullOrWhiteSpace(goUrl)) { this.WriteError("QueryString参数中不存在goUrl节"); return; } // var loggingSessionInfo = Default.GetBSLoggingSession(customerID, "1"); goUrl = "http://" + HttpUtility.UrlDecode(goUrl); var configBll = new WeiXinH5ConfigBLL(loggingSessionInfo); var pagePath = configBll.GetPagePathByPageName(customerID, pageName); Random rad = new Random(); Loggers.Debug(new DebugLogInfo() { Message = string.Format("NoAuthGoto: pagePath:{0};goUrl:{1}", pagePath, goUrl) }); goUrl = goUrl.Replace("_pageName_", pagePath); if (goUrl.IndexOf("?") > 0) { goUrl = goUrl + "&customerId=" + customerID + "&rid=" + rad.Next(1000, 100000) + ""; } else { goUrl = goUrl + "?customerId=" + customerID + "&rid=" + rad.Next(1000, 100000) + ""; } Response.Write(goUrl); Loggers.Debug(new DebugLogInfo() { Message = string.Format("跳转URL:{0}", goUrl) }); Response.Redirect(goUrl); } catch (ThreadAbortException) { } catch (Exception ex) { Loggers.Exception(new ExceptionLogInfo(ex)); this.WriteError(string.Format("发生异常,异常信息:{0}", ex.Message)); } }
/// <summary> /// 页面跳转 /// </summary> /// <param name="openId"></param> private void PageRedict(string applicationId, string openId, string token) { //if (goUrl.IndexOf("HtmlApp/Lj/auth.html?pageName=GoodsList")>0) //{ // goUrl = goUrl.Replace("HtmlApp/Lj/auth.html?pageName=GoodsList", "HtmlApps/auth.html?pageName=GoodsList"); // Loggers.Debug(new DebugLogInfo() // { // Message = string.Format("url替换:old={0};new={1};", "HtmlApp/Lj/auth.html?pageName=GoodsList", "HtmlApps/auth.html?pageName=GoodsList") // }); //} //if (goUrl.IndexOf("HtmlApp/Lj/auth.html?pageName=MyOrder") > 0) //{ // goUrl = goUrl.Replace("HtmlApp/Lj/auth.html?pageName=MyOrder", "HtmlApps/auth.html?pageName=MyOrder"); // Loggers.Debug(new DebugLogInfo() // { // Message = string.Format("url替换:old={0};new={1};", "HtmlApp/Lj/auth.html?pageName=MyOrder", "HtmlApps/auth.html?pageName=MyOrder") // }); //} //if (goUrl.IndexOf("HtmlApp/Lj/auth.html?pageName=JiFenShop") > 0) //{ // goUrl = goUrl.Replace("HtmlApp/Lj/auth.html?pageName=JiFenShop", "HtmlApps/auth.html?pageName=JiFenShop"); // Loggers.Debug(new DebugLogInfo() // { // Message = string.Format("url替换:old={0};new={1};", "HtmlApp/Lj/auth.html?pageName=JiFenShop", "HtmlApps/auth.html?pageName=JiFenShop") // }); //} var decodeUrl = HttpUtility.UrlDecode(goUrl); if (!decodeUrl.StartsWith("http://")) { goUrl = "http://" + decodeUrl; } else { goUrl = decodeUrl; } Loggers.Debug(new DebugLogInfo() { Message = string.Format("zk goUrl:{0}", goUrl) }); if (!string.IsNullOrWhiteSpace(this.pageName)) { //根据pageName进行路径替换 var configBll = new WeiXinH5ConfigBLL(loggingSessionInfo); var pagePath = configBll.GetPagePathByPageName(customerId, pageName); Loggers.Debug(new DebugLogInfo() { Message = string.Format("4x: pagePath:{0};goUrl:{1}", pagePath, goUrl) }); goUrl = goUrl.Replace("_pageName_", pagePath); } if (openId == null || openId.Equals(""))//没有获取到相应的openid,也跳转 { Random rad = new Random(); if (goUrl.IndexOf("?") > 0) { goUrl = goUrl + "&CheckOAuth=unAttention" + "&rid=" + rad.Next(1000, 100000) + ""; } else { goUrl = goUrl + "?CheckOAuth=unAttention" + "&rid=" + rad.Next(1000, 100000) + ""; } Loggers.Debug(new DebugLogInfo() { Message = string.Format("没有获得会员的OPEN ID时的跳转URL:{0}", goUrl) }); Response.Redirect(goUrl); } else { VipBLL vipServer = new VipBLL(loggingSessionInfo); VipEntity vipInfo = new VipEntity(); vipInfo = authBll.GetUserIdByOpenId(loggingSessionInfo, openId);//根据openid获取会员信息 //Loggers.Debug(new DebugLogInfo() //{ // Message = string.Format("66x: openId:{0};", "进来了" + openId + "--openId") //}); #region 本系统中不存在这个会员 或者未关注 if (vipInfo == null || vipInfo.VIPID.Equals("") || vipInfo.Status == 0) //会员不存在或没有关注,从微信里查找会员信息,新增一条vip数据 { Response.Write("会员不存在或没有关注"); VipEntity vipInfotmp = new VipEntity(); #region snsapi_userinfo 这种模式的 if (scope.Equals("1")) { //封装方法,调用第四步,根据第四步的数据,新增一条vip数据 if (null == vipInfo || vipInfo.VIPID.Equals("")) { vipInfotmp.VIPID = authBll.SetVipInfoByToken(token, openId, loggingSessionInfo, this.Response);//根据token和openid获取会员信息 if (objectType.Equals("Coupon"))//如果是优惠券根据给定的VipSourceId=27给定 { vipInfotmp.VipSourceId = "26"; // vipInfo.VipSourceName = "优惠券二维码"; } else if (objectType.Equals("SetoffPoster"))//如果是海报根据给定的VipSourceId=29给定 { vipInfotmp.VipSourceId = "28"; // vipInfo.VipSourceName = "集客海报二维码"; } else if (objectType.Equals("Goods")) { vipInfotmp.VipSourceId = "31"; //vipInfo.VipSourceName = "员工集客"; } else if (objectType.Equals("CTW")) { vipInfotmp.VipSourceId = "24"; } else if (objectType.Equals("Material")) { vipInfotmp.VipSourceId = "32"; } vipServer.Update(vipInfotmp, false); } else //状态为未关注,vipInfo.Status == 0 { if (vipInfo.Status == 0) { if (objectType.Equals("Coupon"))//如果是优惠券根据给定的VipSourceId=27给定 { vipInfo.VipSourceId = "26"; // vipInfo.VipSourceName = "优惠券二维码"; } else if (objectType.Equals("SetoffPoster"))//如果是海报根据给定的VipSourceId=29给定 { vipInfo.VipSourceId = "28"; // vipInfo.VipSourceName = "集客海报二维码"; } else if (objectType.Equals("Goods")) { vipInfo.VipSourceId = "31"; //vipInfo.VipSourceName = "员工集客"; } else if (objectType.Equals("CTW")) { vipInfo.VipSourceId = "24"; } else if (objectType.Equals("Material")) { vipInfo.VipSourceId = "32"; } } vipInfo.IsDelete = 0; // vipInfo.Status = 1; //潜在用户?这个时候如果没关注,也算潜在用户吗?没关注不算潜在用户,所以不改变他的状态** vipServer.Update(vipInfo, false); vipInfotmp.VIPID = vipInfo.VIPID; } } #endregion #region snsapi_base这种情况下,,获取不到会员的详细信息,只能获取到openid else { #region Jermyn20140604,会员没有关注,先采集信息 if (vipInfo == null || vipInfo.VIPID == null) { vipInfotmp.VIPID = authBll.SetVipInfoByToken(token, openId, loggingSessionInfo, this.Response); #region previous logic /****** * vipInfotmp.VIPID = Guid.NewGuid().ToString().Replace("-", ""); * vipInfotmp.VipCode = vipServer.GetVipCode(); * vipInfotmp.WeiXinUserId = openId; * vipInfotmp.Status = 0; * vipInfotmp.VipSourceId = "3"; * vipInfotmp.ClientID = customerId; * vipInfotmp.WeiXin = strWeiXinId; * vipInfotmp.VipPasswrod = "e10adc3949ba59abbe56e057f20f883e"; * vipInfotmp.Col50 = "通过Auth认证时,未关注,主动采取的信息。"; * vipServer.Create(vipInfotmp); ********/ #endregion if (objectType.Equals("Coupon"))//如果是优惠券根据给定的VipSourceId=27给定 { vipInfo.VipSourceId = "26"; // vipInfo.VipSourceName = "优惠券二维码"; } else if (objectType.Equals("SetoffPoster"))//如果是海报根据给定的VipSourceId=29给定 { vipInfo.VipSourceId = "28"; // vipInfo.VipSourceName = "集客海报二维码"; } else if (objectType.Equals("Goods")) { vipInfo.VipSourceId = "31"; //vipInfo.VipSourceName = "员工集客"; } else if (objectType.Equals("CTW")) { vipInfo.VipSourceId = "24"; } else if (objectType.Equals("Material")) { vipInfo.VipSourceId = "32"; } vipServer.Update(vipInfotmp, false); } else { vipInfotmp.VIPID = vipInfo.VIPID;//设置vipid } #endregion } #endregion Random rad = new Random(); //if (goUrl.IndexOf("?") > 0) //{ // goUrl = goUrl + "&customerId=" + customerId + "&applicationId=" + applicationId + "&openId=" + openId + "&userId=" + vipInfotmp.VIPID + "&CheckOAuth=unAttention" + "&rid=" + rad.Next(1000, 100000) + ""; //} //else //{ // goUrl = goUrl + "?customerId=" + customerId + "&applicationId=" + applicationId + "&openId=" + openId + "&userId=" + vipInfotmp.VIPID + "&CheckOAuth=unAttention" + "&rid=" + rad.Next(1000, 100000) + ""; //} if (goUrl.IndexOf("?") > 0) { goUrl = goUrl + "&customerId=" + customerId + "&applicationId=" + applicationId + "&CheckOAuth=unAttention" + "&rid=" + rad.Next(1000, 100000) + ""; } else { goUrl = goUrl + "?customerId=" + customerId + "&applicationId=" + applicationId + "&CheckOAuth=unAttention" + "&rid=" + rad.Next(1000, 100000) + ""; } Response.Cookies["openId_" + customerId].Value = openId; Response.Cookies["userId_" + customerId].Value = vipInfotmp.VIPID;//vipInfo.VIPID; Loggers.Debug(new DebugLogInfo() { Message = string.Format("会员没有关注时的跳转URL:{0}", goUrl) }); //在这里建立上下线关系 SetShareVip(vipInfotmp.VIPID, openId); Response.Redirect(goUrl); } #endregion #region 会员已经存在(关注过) else { Response.Write("获取vip信息"); Response.Write("</br>"); // string strGotoUrl = "";//"/OnlineClothing/tmpGoUrl.html?customerId=" + customerId + "&openId=" + OpenId + "&userId=" + vipId + "&backUrl=" + HttpUtility.UrlEncode(goUrl) + ""; Random rad = new Random(); //if (goUrl.IndexOf("?") > 0) //{ // strGotoUrl = goUrl + "&customerId=" + customerId + "&applicationId=" + applicationId + "&openId=" + openId + "&userId=" + vipInfo.VIPID + "&rid=" + rad.Next(1000, 100000) + ""; //} //else //{ // strGotoUrl = goUrl + "?customerId=" + customerId + "&applicationId=" + applicationId + "&openId=" + openId + "&userId=" + vipInfo.VIPID + "&rid=" + rad.Next(1000, 100000) + ""; //} if (goUrl.IndexOf("?") > 0) { strGotoUrl = goUrl + "&customerId=" + customerId + "&applicationId=" + applicationId + "&rid=" + rad.Next(1000, 100000) + ""; } else { strGotoUrl = goUrl + "?customerId=" + customerId + "&applicationId=" + applicationId + "&rid=" + rad.Next(1000, 100000) + ""; } Response.Cookies["openId_" + customerId].Value = openId; Response.Cookies["userId_" + customerId].Value = vipInfo.VIPID; Response.Write(strGotoUrl); Loggers.Debug(new DebugLogInfo() { Message = string.Format("有会员信息时的跳转URL:{0}", strGotoUrl) }); //在这里建立上下线关系 //SetShareVip(vipInfotmp.VIPID); SetShareVip(vipInfo.VIPID, openId); Response.Redirect(strGotoUrl); } #endregion } }