微信公众号开发之获取微信用户的openID

时间:2021-12-25 20:58:06

(注:openID同一用户同一应用唯一,UnionID同一用户不同应用唯一。不同应用指微信开放平台下的不同用户。)

1、  申请测试号(获得appID、appsecret)

2、  填写服务器配置并验证。

服务端编写接口,参数为(signature,timestamp,nonce,echostr),并原样返回echostr

   微信公众号开发之获取微信用户的openID

验证之后,可开通更多公众平台接口功能。

3、  网页授权获取用户基本信息。

3.1、在接口权限表配置授权页面回调域名或ip

  微信公众号开发之获取微信用户的openID

3.2、服务端编写接口,该接口为回调页面的[redirect_uri],即确认授权之后页面将跳转至 [redirect_uri]?code=CODE&state=STATE。服务端接收参数CODE值。

3.3、微信用户访问下面链接,授权。

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

(scope=snsapi_base,默认授权,直接跳转;scope= snsapi_userinfo,授权再跳转)

微信公众号开发之获取微信用户的openID

3.3、获取code后,请求以下链接,即可返回openID等数据(如下图)。

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

微信公众号开发之获取微信用户的openID

(3、方法二:接收事件推送(事件:关注、取关、扫码、报位置、自定义菜单事件),这些事件触发的时候,会把一个xml数据包(如下图)发送到步骤2配的URL上,在服务端解析即可。

我的代码中用到dom4j解析xml。事件推送以及Token验证共用那个URL。

微信公众号开发之获取微信用户的openID

微信公众号开发之获取微信用户的openID

微信公众号开发之获取微信用户的openID

其中FromUserName即为openID。)

4、获得openID