예제 #1
0
        public void GETWXCONFIG(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
        {
            Dictionary <string, string> param = new Dictionary <string, string>();

            TimeSpan ts           = DateTime.Now - new DateTime(1970, 1, 1);
            long     timestamp    = Convert.ToInt64(ts.TotalSeconds);
            string   appId        = CommonHelp.GetConfig("AppId");
            string   jsapi_ticket = CommonHelp.AppConfig("jsapi_ticket");
            string   nonceStr     = CommonHelp.GetRandomString(15);
            string   url          = P1;

            string TOP_FIELD_SIGN = "";

            param.Add("timestamp", timestamp.ToString());
            param.Add("jsapi_ticket", jsapi_ticket);
            param.Add("noncestr", nonceStr);
            param.Add("url", url);

            SortedDictionary <string, string>            dic = new SortedDictionary <string, string>(param);
            IEnumerator <KeyValuePair <string, string> > em  = dic.GetEnumerator();
            // 第1步:把所有参数名和参数值串在一起
            StringBuilder query = new StringBuilder();

            while (em.MoveNext())
            {
                string key = em.Current.Key;
                if (!TOP_FIELD_SIGN.Equals(key, StringComparison.CurrentCultureIgnoreCase))
                {
                    string value = em.Current.Value;
                    if (!string.IsNullOrWhiteSpace(value) && !string.IsNullOrWhiteSpace(key))
                    {
                        query.Append("&").Append(key).Append("=").Append(value);
                    }
                }
            }
            query = new StringBuilder(query.ToString().TrimStart('&'));
            string querystring = HttpUtility.HtmlDecode(query.ToString());
            // 第2步:使用sha1加密
            string signature = WXFWHelp.EnSha1(querystring);

            msg.Result = new
            {
                appId = appId,
                //jsapi_ticket = jsapi_ticket,
                timestamp = timestamp,
                noncestr  = nonceStr,
                url       = url,
                //query = querystring,
                signature = signature
            };
        }
예제 #2
0
        /// <summary>
        /// 绑定手机、姓名、身份证、专卖许可证
        /// </summary>
        public void BINDTOMONOLICENSE(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
        {
            JH_Auth_User j = JsonConvert.DeserializeObject <JH_Auth_User>(P1);

            if (j == null)
            {
                msg.ErrorMsg = "绑定失败";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.UserRealName.Trim()))
            {
                msg.ErrorMsg = "姓名不能为空";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.mobphone.Trim()))
            {
                msg.ErrorMsg = "手机号不能为空";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.IDCard.Trim()))
            {
                msg.ErrorMsg = "身份证号不能为空";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.ToMonoLicense.Trim()))
            {
                msg.ErrorMsg = "专卖许可证号不能为空";
                return;
            }
            string  _openid = CommonHelp.GetCookieString("openid");
            WX_User u       = new WX_UserB().GetEntity(d => d.Openid == _openid);

            msg.Result = u;
            if (u != null)
            {
                JH_Auth_User localuser = new JH_Auth_UserB().GetEntity(d => d.mobphone == j.mobphone.Trim());
                if (localuser == null)
                {
                    new JH_Auth_UserB().ExsSql("update JH_Auth_User set WXopenid='', IsWX=0, IDCard='',ToMonoLicense='' where WXopenid='" + _openid + "'");//清除以前绑定的用户
                    //新用户,随机生成
                    localuser               = new JH_Auth_User();
                    localuser.UserName      = "******" + Guid.NewGuid().ToString().Replace("-", "").Substring(0, 16);
                    localuser.UserRealName  = j.UserRealName.Trim();
                    localuser.UserPass      = CommonHelp.GetMD5("a123456");
                    localuser.pccode        = EncrpytHelper.Encrypt(localuser.UserName + "@" + localuser.UserPass + "@" + DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
                    localuser.ComId         = 10334;
                    localuser.Sex           = u.Sex;
                    localuser.mobphone      = j.mobphone.Trim();
                    localuser.BranchCode    = 0;
                    localuser.CRDate        = localuser.logindate = DateTime.Now;
                    localuser.CRUser        = "******";
                    localuser.IsUse         = "Y";
                    localuser.IsWX          = 1;
                    localuser.WXopenid      = _openid;
                    localuser.weixinCard    = j.weixinCard.Trim();
                    localuser.IDCard        = j.IDCard.Trim();
                    localuser.ToMonoLicense = j.ToMonoLicense.Trim();

                    new JH_Auth_UserB().Insert(localuser);
                    WXFWHelp.UpdateCookieAfterSignIn(localuser);
                    msg.Result = localuser;
                    //msg.ErrorMsg = "手机号不存在,请联系管理员";
                    return;
                }
                else
                {
                    //老用户
                    if (localuser.UserRealName == j.UserRealName.Trim())
                    {
                        new JH_Auth_UserB().ExsSql("update JH_Auth_User set WXopenid='', IsWX=0, IDCard='',ToMonoLicense='' where WXopenid='" + _openid + "'");//清除以前绑定的用户

                        localuser.WXopenid   = _openid;
                        localuser.IsWX       = 1;
                        localuser.weixinCard = j.weixinCard.Trim();
                        //localuser.pccode = EncrpytHelper.Encrypt(localuser.UserName + "@" + localuser.UserPass + "@" + DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
                        localuser.logindate     = DateTime.Now;
                        localuser.IDCard        = j.IDCard.Trim();
                        localuser.ToMonoLicense = j.ToMonoLicense.Trim();

                        new JH_Auth_UserB().Update(localuser);//更新logindate,pccode不能更新
                        WXFWHelp.UpdateCookieAfterSignIn(localuser);
                        msg.Result = localuser;
                    }
                    else
                    {
                        msg.ErrorMsg = "姓名与手机号不匹配";
                        return;
                    }
                }
            }
            else
            {
                msg.ErrorMsg = "微信登录异常";
                return;
            }
        }