需求背景:微信小程序里,需要判断使用该小程序的用户是否有关注该小程序关联的公众号,如未关注要引导用户去关注公众号(用于公众号推送信息)



官网:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
接口(获取Code):
https://open.weixin.qq.com/connect/oauth2/authorize?appid=${APPID}&redirect_uri=${REDIRECT_URI}&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 参数:APPID:公众号的唯一标识 redirect_uri:授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理 http://test/test.html
用户同意授权,页面将跳转http://test/test.html?code=CODE&state=STATE
代码:
{appid}}&redirect_uri={{url}}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect"> Page({ /** * 页面的初始数据 */ data: { url: 'http://test/test.htm', appid:'wxfe00000000' }, }) 
点击同意之后会重定向到test.html 的页面 并携带参数 code=CODE&state=STATE。
test.html页面代码
接口(获取ACCESS_TOKEN):
https://api.weixin.qq.com/sns/oauth2/access_token?appid=${APPID}&secret=${SECRET}&code=${CODE}&grant_type=authorization_code 参数:APPID:公众号appID SECRET:应用密钥 AppSecret(不建议直接填写,最好通过接口获取) CODE:刚刚获取的Code值
返回:
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE", "is_snapshotuser": 1, "unionid": "UNIONID" } https://api.weixin.qq.com/cgi-bin/user/info?access_token=${ACCESS_TOKEN}&openid=${OPENID}&lang=zh_CN 参数: ACCESS_TOKEN:调用接口凭证 (上一步获取的access_token) OPENID:普通用户的标识在这里插入代码片,对当前公众号唯一(上一步获取的openid)
返回:
"subscribe": 1, //用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号 "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", //用户的标识,对当前公众号唯一 "language": "zh_CN", "subscribe_time": 1382694957, "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL", "remark": "", "groupid": 0, "tagid_list":[128,2], "subscribe_scene": "ADD_SCENE_QR_CODE", "qr_scene": 98765, "qr_scene_str": "" 写好了发现换了手机就提示无法打开该页面 啊啊啊啊啊谁懂啊,然后查了一下现在不能使用这种方法了


