zoukankan      html  css  js  c++  java
  • c# 微信开发 《授权页面》

    //授权页面
    public partial class wxProcess : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string reurl = "";
                //传递参数,获取用户信息后,可跳转到自己定义的页面,想怎么处理就怎么处理
                if (Request.QueryString["reurl"] != null && Request.QueryString["reurl"] != "")
                {
                    reurl = Request.QueryString["reurl"].ToString();
                }
                else
                {
                    
                }
    
                string code = "";
                string url = "";
                string appid = ConfigurationManager.AppSettings["WeixinAppid"].TryToString();
                //弹出授权页面(如在不弹出授权页面基础下未获得openid,弹出授权页面,提示用户授权)
                if (Request.QueryString["auth"] != null && Request.QueryString["auth"] != "" && Request.QueryString["auth"] == "1")
                {
                    url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid
                                       + "&redirect_uri=" + reurl + "&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
                    Response.Redirect(url);
                }
                else
                {
                    url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="
                                    + appid + "&redirect_uri=" + reurl + "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
                    //不弹出授权页面
                    Response.Redirect(url);
                }
            }
        }
    }
    
    
    ///需跳转页面
    public partial class Index : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                string code = "";
                if (Request.QueryString["code"] != null && Request.QueryString["code"] != "")
                {
                    //获取微信回传的code
                    code = Request.QueryString["code"].ToString();
                    string openid = WeiXinCommom.Get_token(code);  //获取token
                    if (!string.IsNullOrWhiteSpace(openid)) {
                        WeiXinService WeiXinService = new WeiXinService();
                        Entity UserInfo= WeixinDA.GetShowUserWeiXinInfo(openid); //获取用户信息
                        LogHelper.WriteFileLog("UserInfo", UserInfo.IsNull.ToString());
                        bool SaveUser = true;
                        if (UserInfo.IsNull) {  //如果不存在用户信息,用户已经关注了公众号,但是未注册到用户数据,重新注册
                            int CareUsCode = 11000;//关注公众号赠送积分的codeid
                            Entity CareUsData = WeixinDA.GetCategoryCodesByCodeID(CareUsCode);
                            int CareUsStatus = CareUsData.GetValue("Status").TryInt32();
                            SaveUser= WeiXinService.SaveUserInfo(openid); //返回fasle,用户未关注公众号
                            if (SaveUser) {
                                if (CareUsStatus == (int)BaseEnum.OnOff.On)//积分规则打开
                                {
                                    decimal Integration = CareUsData.GetValue("Value").TryDecimal();
                                    WeiXinService.AddOpenIDIntegration(openid, (int)BaseEnum.IntegrationType.CareUs, Integration);//第一次关注公众号赠送的积分
                                }
                            }
                        }
                        if (SaveUser)
                        {
                            string WeiXinInfoString = WeiXinService.GetShowUserWeiXinInfoHadTokenString(openid);
                            ClientScript.RegisterStartupScript(ClientScript.GetType(), "orderList", "<script>UserProfile.GetWeixinCode('" + WeiXinInfoString + "');</script>");
                        }
                        else {
                            string WeiXinInfoString = WeiXinService.GetShowUserWeiXinInfoHadTokenString(openid);
                            ClientScript.RegisterStartupScript(ClientScript.GetType(), "orderList", "<script>UserProfile.GetWeixinCode('');</script>");
                        }
                    }
                }
            }
        }
    //根据appid,secret,code获取微信openid、access token信息
            public static string Get_token(string Code)
            {
                //获取微信回传的openid、access token
                string WeixinData = WeiXinCommom.GetData("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appid + "&secret=" + appsecret + "&code=" + Code + "&grant_type=authorization_code");
                string openid = string.IsNullOrWhiteSpace(WeixinData) ? string.Empty : JObject.Parse(WeixinData)["openid"].TryString();
                return openid;
            }
    

      

    访问 HTTP://baidu.com.授权页面?需跳转页面

      

  • 相关阅读:
    log4net封装类
    (转)MySQL InnoDB 架构
    备份宽带不足,innobackupex备份导致从库不可写
    从库查询阻塞xtrabackup备份,应该是kill备份还是kill查询的问题
    rabbitmq群集安装
    MySQL索引选择问题(要相信MySQL自己选择索引的能力)
    binlog_format产生的延迟问题
    命令行登录mysql报Segmentation fault故障解决
    MySQL5.7.21启动异常的修复
    大查询对mha切换的影响
  • 原文地址:https://www.cnblogs.com/yyyuguo/p/8426823.html
Copyright © 2011-2022 走看看