每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同。如果公司有多个公众号,可以通过开放平台关联,这样同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
场景一:自定义菜单点击自动携带openId。
调用自定义菜单接口菜单url传静默授权后的url,如下:
{ "button":[ { "name":"菜单", "sub_button":[ { "type":"view", "name":"搜索", "url":"https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid=appid&redirect_uri=https:\/\/www.soso.com&response_type=code&scope=snsapi_base&state=appid_menuUrl_5902#wechat_redirect" }] }] }
这样用户点击菜单,微信会先回调我们redirect_uri,通过我们自定义的state(格式如 公众号ID_菜单标识_菜单ID)拿到对应的菜单url,通过code换取网页授权access_token获取用户openid后直接拼在真实菜单url后跳转。