订阅号在内嵌网页中获取微信用户的基本信息

前言:

最近项目需要做微信公众号的开发,是针对订阅号进行处理的,现需要在订阅号中嵌入的网页中获取进入用户的微信基本信息,查阅了微信官方api感觉云里雾里的,在多次尝试成功之后,分享一下【吐槽微信官方api真的是冗长且麻烦,此处用反向思路思考如何解决】:

①首先根据获取用户信息接口的要求,需要获取access_token和openid。

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

②要获取以上俩参数,经过查阅官方文档,需通过微信网页授权来获取。以下就是以微信测试公众号为例来介绍如何获得。

疑问:手上有两个同样都是订阅号,可是一个有微信网页授权的接口权限,一个没有微信网页授权的接口权限,还得后续继续分析一下出现不同的因素????????

微信订阅号开发-接口配置【以测试号为例】

1、在此处填写自己服务器的接口地址

提交之后微信后台发送请求到该接口进行验证,官方文档说明:微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数描述
signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp时间戳
nonce随机数
echostr随机字符串

若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

2、java服务端接受处理

@GetMapping("/sayHello")
	public String login(String signature,String timestamp,String nonce,String echostr) {
		System.out.println(signature);
		System.out.println(timestamp);
		System.out.println(nonce);
		System.out.println(echostr);
		return echostr;
	}

测试阶段,所以直接返回微信要求的值。

注:后续用户在微信公众号的发送的消息都回触发该消息的方法。

以上似乎与获取微信用户基本信息的流程没啥必然关系。。。。。。。。。。。官网说法只是用于验证开发者服务器,是否该处配置的域名会作为其他地方回调的限制,还待进一步论证。


3、微信网页获取用户信息:

第一步:用户同意授权,获取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

其中,redirect_uri是关键参数,该参数是网页用户授权之后的回调页面,其返回值则是code,后续需要用该code换取用的openid,然后在获取用户信息。而配置该参数的则是在【微信公众号平台】:开发-接口权限--网页服务--网页授权界面的修改。如下图:

同样的也可在:公众号设置--功能设置--网页授权域名中进行配置。

下图为微信测试账号系统中的网页授权调整界面,正式版设置的则需要在公众号设置--功能设置--网页授权域名中进行配置进行配置。

如此,授权之后就可以获取到该用户的code,

注意:必须填写域名,即不需要添加http等信息,否则会报10003错误,rediret_ui与和后台配置不符。

第二步:通过code换取网页授权access_token

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

利用该接口则可以获取到当前用户的openid,以及接口调用的access_token凭证。

第三步:拉取用户信息(需scope为 snsapi_userinfo)

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

此时使用该接口就可以获得微信用的基本信息。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微信H5网页授权是指在使用微信浏览器访问H5网页时通过微信授权登录,获取用户基本信息。这个过程分为三个步骤:引导用户授权获取授权码、通过授权获取用户信息。 首先,用户进入H5网页后,网页需要引导用户进行授权登录。网页可以通过调用微信JS-SDK微信授权接口,弹出微信授权登录的窗口。用户点击确认后,微信会生成一个授权码,并跳转回H5网页。 然后,网页需要使用授权码去微信服务器获取用户基本信息网页可以通过HTTP请求,将授权码发送给微信服务器的接口,并附上AppID和AppSecret等参数。微信服务器验证授权码的有效性后,会返回用户基本信息,如openid、昵称、头像等。 最后,网页可以根据获取用户基本信息,进行相应的业务操作。比如显示用户的头像和昵称,或者根据openid等唯一标识,将用户与其它业务系统进行关联。 需要注意的是,进行微信H5网页授权需要先申请微信开放平台的开发者账,并创建一个公众或移动应用。通过在微信开放平台进行配置获取AppID和AppSecret等必要的参数,用于网页授权的流程。 总结起来,微信H5网页授权获取用户基本信息是通过使用微信授权接口,引导用户进行授权登录,再通过授权码和微信服务器进行交互,最终获取用户基本信息。这个过程可以实现在H5网页上使用微信登录,并获取用户信息的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值