公众号中openid的获取

  1. 要获取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(实际上跳转至REDIRECT_URI/?code=CODE&state=STATE),可以被前端获取
  2. 注意,code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期
  3. 获取code之后,由后端发起请求https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code,获取openid,返回给前端
  4. 公众号中用户信息有两种获取方式:
    1. 静默授权:只获取openid,无需用户同意,参数scope=snsapi_base
    2. 非静默授权:可以获取openid,用户的头像,昵称等基本信息,会有弹窗让用户手动授权,参数scope=snsapi_userinfo