微信企业号开发:微信用户信息和web网页的session的关系

cxchanpin      2022-02-12     582

关键词:

     微信企业号的用户是须要验证的,因此能关注企业号的用户事实上就是已经通过验证的用户。但企业应用中打开一个网页,在这个网页中怎样依据微信用户的信息创建web应用中最长使用的session呢?微信用户怎样和web的session关联起来呢?

   比如:一个应用。依据不同的人员,显示不同的内容,各个网页之间须要session来传递一些信息。在微信企业号中怎样处理呢?


这个问题须要涉及的接口是OAuth2验证接口,须要配置可信域名,初始化session。

一下以一个带有URL的菜单为例进行说明

1依据OAuth2验证接口改写URL

比如须要跳转到http://abc.def.com.cn:8082/index.aspx页面,则依据OAuth验证接口说明,菜单的URL应该是

https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=http://abc.def.com.cn:8082/index.aspx&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

当中appid为corpid。请改为自己实际的參数值,response_type固定为code。scope固定为snsapi_base,#wechat_redirect不用改,直接加上就能够了。

redirect_uri是须要跳转的URL,但须要urlencode处理,http://abc.def.com.cn:8082/index.aspx经过urlencode处理后为:http%3a%2f%2fabc.def.com.cn%3a8082%2findex.aspx,state不是必选的。能够填写a-zA-Z0-9的參数值组成的数据

因此菜单的URL应该为

https://open.weixin.qq.com/connect/oauth2/authorize?appid=myappid&redirect_uri=http%3a%2f%2fabc.def.com.cn%3a8082%2findex.aspx&response_type=code&scope=SCOPE&state=a#wechat_redirect

appid是myappid

response_type固定为code,scope固定为snsapi_base。state是a, 
redirect_uri是http://abc.def.com.cn:8082/index.aspx,
经过urlencode后是http%3a%2f%2fabc.def.com.cn%3a8082%2findex.aspx

这样配置菜单的连接后,在微信中打开时。http://abc.def.com.cn:8082/index.aspx就会多一个查询字符串code。依据code就能够获取到打开这个微信用户的信息,然后就能够初始化web应用的session了。

2须要配置可信域名

再依照以第一步处理后。在微信端打开连接。会出现一个错误,这个是由于没有配置可信域名。

redirect uri 參数错误

须要在微信管理端配置可信域名。假设redirect_uri有port号。那‘可信域名‘也必须加上port号OAuth2验证接口

比如依据须要跳转的http://abc.def.com.cn:8082/index.aspx。配置可信域名例如以下,注意不要http

技术分享

3初始化session

在进行了以上处理后,用户在点击菜单时,跳转的连接就会变为http://abc.def.com.cn:8082/index.aspx?code=3c452771ddfc0e75097d0509e0e555

也就是说多了一个查询字符串code,依据code就能够取到这个微信用户的UserId信息。

详细參考依据code获取成员信息

核心代码:

 /// <summary>
       /// 依据code获取成员信息
       /// </summary>
       /// <param name="userid"></param>
       /// <returns></returns>
       public static string GetUserInfo(string CODE)
       {
      // https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?

access_token=ACCESS_TOKEN&code=CODE string urlFormat = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={0}&code={1}"; var url = string.Format(urlFormat, BLLAccessToken.GetAccessToken(), CODE); string UserId = string.Empty; WebUtils wut = new WebUtils(); //数据不用加密发送 LogInfo.Info("依据code获取成员信息: " + CODE); string sendResult = wut.DoGet(url); OAuthResult tempAccessTokenjson = Tools.JsonStringToObj<OAuthResult>(sendResult); if (tempAccessTokenjson.HasError()) { LogInfo.Error("依据code获取成员信息返回错误: " + Tools.ToJsonString<OAuthResult>(tempAccessTokenjson)); } else { UserId = tempAccessTokenjson.UserId; } return UserId; }

index.aspx网页后端代码:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            string code = Request.QueryString["code"].ToLower().Trim();
            if (!string.IsNullOrEmpty(code))
            {
                if (HttpContext.Current.Session["usersession"] != null) //session信息已经存在。直接返回
                {
                    new AppException("usersession已经存在不须要在处理");
                    return;
                }
               string username= BLLUser.GetUserInfo(code);
               if (!string.IsNullOrEmpty(username))
               {
                   initSession(username);
                   new AppException("初始化initSession,code=" + code + ",username=" + username);
               }
               else
               {
                   new AppException("收到信息异常username为空");
               }
            }
            else {
                new AppException("收到信息异常code为空");
            }
        }
    }


















.net之微信企业号开发回调模式的接口开发

一、前言  微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息。为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微... 查看详情

微信web开发者工具如何进行调试微信网页授权

微信web开发者工具概述一个桌面应用,通过模拟微信客户端的表现,使得开发者可以使用这个工具方便地在PC或者Mac上进行开发和调试工作。主要功能使用微信号来调试微信网页授权;调试、检验页面的JS-SDK相关功能与权限,模... 查看详情

如何使用微信web开发者工具调试程序

微信web开发者工具使用教程:1、首先用户需要做的就是先下载安装,并启工具。即刻下载使用==》微信web开发者工具下载2、调试微信网页授权,具体操作步骤为:1)开发者可以在调试器中点击“登录”,使用手机微信扫码登录... 查看详情

微信公众号开发之网页授权(获取用户信息)

  这次暑假留在学校参与工作室的项目,对微信公众号比较感兴趣,所以参与这方面的学习研究。昨天完成了关于网页授权,获取用户信息方面的功能,所以乘热打铁,写上一篇。实现本篇涉及的功能,还需要完成一些基础。... 查看详情

微信的新消息推送是怎么实现的(企业号开发)

具体操作方法是,企业申请账号后,员工通过自己的微信订阅该企业号,然后可以使用目录下的各种功能模块,完成企业内部管理和交流。用户可以通过微信完成打卡、报销、会议等事务。用微信编辑器先编写好内容。和原来的... 查看详情

微信公众号开发网页授权获取用户基本信息(oauth2.0)

前言:1,在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发-接口权限-网页服务-网页帐号-网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符... 查看详情

微信企业号第三方应用开发[四]——用户登录应用

应用被授权方企业号授权后,授权方企业号用户即可以登录应用。至此,接入企业号第三方应用的开发到了最后一步——获取登录用户信息。 在企业号开发中要获取用户信息,需要获取到用户经OAuth2.0验证时生成的code... 查看详情

微信网页开发

微信网站一般是先要微信网页授权后获取到access_token,才有资格获取用户信息的,所以如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。第一步是先获取用... 查看详情

微信web开发者工具怎么用

微信web开发者工具使用,用到的工具:电脑,步骤如下:下载安装微信web开发者工具,打开微信web开发者工具界面如下:2.输入要调试微信程序的url,并选择移动设备的类型(安卓或者ios),以安卓为例:说明:左边选择相应的... 查看详情

微信appidopenid和unionid

参考技术A(多公众号如何判断是否是同一人)微信公众平台更新,为开发者提供UnionID机制经开发者反馈,由于同一公司下多个公众号之间需要用户帐号互通,微信开放平台提供了UnionID机制,来解决此问题。通过获取用户基本信... 查看详情

微信网页授权基本步骤

参考技术A一、首先在微信公众平台配置授权回调地址(“开发-接口权限-网页服务-网页帐号-网页授权获取用户基本信息”的配置选项中,修改授权回调域名);二、关于网页授权的两种scope的区别说明1、以snsapi_base为scope发起的网页... 查看详情

微信网页授权-公众号支付(获取openid用户信息等)

...公众号唯一的OpenID 业务功能描述:实现H5页面可以在微信浏览器里面进行微信支付,所以需要使用微信公号支付功能才能实现,微信公众号支付功能需要用户的openid,所以进入页面时需要通过网页授权首先获取到openid。 ... 查看详情

微信开发小结——积累与沉淀(代码片段)

前言微信开发是个人、企业或组织在拥有超大用户群体的微信应用上,利用微信公众平台,开发类似插件或服务的轻应用。微信公众平台分为三种:订阅号:主要面向媒体和个人,旨在为用户提供信息资讯ÿ... 查看详情

微信企业号开发:接收消息和事件(代码片段)

接收到的消息和事件,其实都是微信post到我们配置的URL的消息。接收普通消息就是用户给公众号发送的消息,事件是由于用户的特定操作,微信post给我们的消息。被动响应消息是我们收到微信post过来的普通消息或者... 查看详情

如何提交发布微信小程序

微信小程序是一种不需要下载安装即可使用的应用,它实现了应用「触手可及」的梦想,用户扫一扫或搜一下即可打开应用。那么,开发者该怎么进行申请呢?01微信小程序介绍:小程序是一种新的开放功能,开发者可以快速地... 查看详情

判断是不是关注公众号

参考技术A问题一:微信网页开发如何判断用户是否关注某个公众号和是否分享当前页面,求帮忙。急50分在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的... 查看详情

.net之微信企业号开发企业号人员身份认证与开发

...名密码进行登录的。。。2333但是,这样所就完全失去了微信企业号的意义,本来进入微信企业号的时候,就已经对人员身份进行认证了,你这里再让别人登录,不是显得多余么?于是,需要考虑的是,如何获取微信企业号中用... 查看详情

微信服务号订阅号和企业号的差别(运营和开发两个角度)

一、运营的角度1.1、概括订阅号:微信最初的形态是一个纯粹的社交工具,也就是人与人之间的联系工具,当中又分熟人之间的联系和陌生人之间的联系。于是就诞生了朋友圈和订阅号。而订阅号的作用就是媒体社交。订阅号最... 查看详情