Exemplo n.º 1
0
        /// <summary>
        /// 获取传入的用户信息和微信会员信息
        /// </summary>
        /// <param name="context"></param>
        /// <param name="memberModel"></param>
        /// <param name="userInfo"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        private bool GetWeixinMemberInfo(HttpContext context, out WXMemberInfo memberModel, out ZentCloud.BLLJIMP.Model.UserInfo userInfo, out string msg)
        {
            //取得OpenID支持两种模式:传入模式,授权Session模式
            string openId        = context.Request[systemSet.WXCurrOpenerOpenIDKey];
            string userAutoIDHex = context.Request[systemSet.UserAutoIDHexKey];

            memberModel = new WXMemberInfo();
            msg         = "";

            //判断用户微信是否已认证,认证则根据Session取openId,否则根据Url取得
            userInfo = userBll.GetUserInfoByAutoIDHex(userAutoIDHex);

            if (userInfo == null)
            {
                msg = "用户不存在!";
                return(false);
            }

            if (userModel.IsWeixinVerify == 1 && context.Session[systemSet.WXCurrOpenerOpenIDKey] != null)
            {
                //如果是微信认证用户而且认证取到的openID也存在,则会忽略浏览器url上的openid
                openId = context.Session[systemSet.WXCurrOpenerOpenIDKey].ToString();
            }

            memberModel = weixinBll.GetWXMemberInfo(userModel.UserID, openId);

            if (memberModel == null)
            {
                msg = "会员不存在!";
                return(false);
            }

            return(true);
        }