• 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.授权页面?需跳转页面

      

  • 相关阅读:
    Entity Framework版本历史概览
    Windows客户端C/C++编程规范“建议”——风格
    Bitbucket免费的私有仓库
    呵呵!手把手带你在 IIS 上运行 Python(转)
    RDLC系列之七 条码打印
    WCF 、Web API 、 WCF REST 和 Web Service 的区别
    使用DataAnnotations实现数据验证
    WPF:如何为程序添加splashScreen(初始屏幕)
    无法解析此远程名称: 'www.***.com' 解决办法 请求因 HTTP 状态 417 失败
    关于“服务器提交了协议冲突. Section=ResponseStatusLine"问题
  • 原文地址:https://www.cnblogs.com/yyyuguo/p/8426823.html
Copyright © 2020-2023  润新知