微信授权和应用场景

工具 && 文档

授权方式

  • 第一步:用户同意授权,获取code
  • 第二步:通过code换取网页授权access_token
  • 第三步:刷新access_token(如果需要)
  • 第四步:拉取用户信息(需scope为 snsapi_userinfo).
    • unionid 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。
  • 附:检验授权凭证(access_token)是否有效

静默授权

scope=snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid)

可以获取到openid

弹授权窗口授权

scope=snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )

可以获取到openid以及其他的基础信息

通过openid获取用户信息

需要用户关注公众号

通过openid和全局的access_token进行获取,详见 获取用户基本信息(UnionID机制).

应用场景

需要获取用户信息的授权登录

场景1:用户登录(每次都需要更新用户信息)
先通过静默的方式获取openid并尝试获取用户信息,获取失败走弹窗授权流程,获取成功则继续走网站流程.

场景2:用户登录(不需要更新用户信息)
先通过静默的方式获取openid,查询openid是否已存在,不存在则尝试获取用户信息,获取失败则转到弹出授权窗口的方式进行授权,然后注册登录.

已存在用户信息则直接登录.

仅需要openid

场景1: 在公众号中使用非当前公众号发起支付,A 公众号授权;B 公众号 支付;

在发起支付之前,B公众号通过静默的方式获取用户openid(jssdk加密需要单独处理),然后绑定到当前登录的用户信息里,如果不绑定需要每次都获取.通过B公众号的openid发起支付即可.

获取用户基本信息(UnionID机制)

场景1:判断用户是否已关注
查询信息中 subscribe=0 标示未关注