微信公众号获取openid实现

开发一个只能在微信端打开的h5,需要获取用户的openId作为标识,并能在微信分享的时候自定义文案。

微信获取网页授权有两种方式:

1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送,才能根据用户openid来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户关注了公众号后,才能调用成功的。

其实两种方式实现都没有太大的差别,整体思路应该是一样的。这里我们以snsapi_base为例

代码实现如下:

代码实现

用户在微信中直接访问**/code接口,接口判断session中是否存在openid,如果有的话,redirect到前端对应的地址

如果session中不存在openid,判断请求参数中是否有认证要使用的code,如果没有,redirect到微信获取code的认证接口,回调地址还是这个**/code

如果有code,用code获取openid,将openid保存到session中,redirect到前端对应的地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容