Example #1
0
 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
            }
        }