微信公众号获取用户信息流程

1、配置跳转链接

用户同意授权,获取code
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECTURI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

参数是否必须说明
appid公众号的唯一标识
redirect_uri授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
response_type返回类型,请填写code
scope应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
state重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
#wechat_redirect无论直接打开还是做页面302重定向时候,必须带此参数
forcePopup强制此次授权需要用户弹窗确认;默认为false;需要注意的是,若用户命中了特殊场景下的静默授权逻辑,则此参数不生效

这里只需要填写 appidredirect_uri 即可,scope填写为snsapi_userinfo,即弹出授权页面,用户选择授权后跳转重定向url。

前端操作

2、获取URL中的code参数

前端通过调用getUrlQueryString方法,获取到跳转页面URL中携带的codestate

getUrlQueryString() {
    const url = window.location.href;
    let urlQuery = url.split('?')[1];
    const urlSearchParams = new URLSearchParams(urlQuery);
    const params = Object.fromEntries(urlSearchParams.entries());
    return params;
}

3、在业务请求中携带code参数

服务端操作

4、通过code换取网页授权access_token

获取code后,请求以下链接获取access_token:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

参数是否必须说明
appid公众号的唯一标识
secret公众号的appsecret
code前端传来的code参数
grant_type填写为authorization_code
返回说明
{
  "access_token":"ACCESS_TOKEN",
  "expires_in":7200,
  "refresh_token":"REFRESH_TOKEN",
  "openid":"OPENID",
  "scope":"SCOPE",
  "is_snapshotuser": 1,
  "unionid": "UNIONID"
}
参数说明
access_token网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
expires_inaccess_token接口调用凭证超时时间,单位(秒)
refresh_token用户刷新access_token
openid用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID
scope用户授权的作用域,使用逗号(,)分隔
is_snapshotuser是否为快照页模式虚拟账号,只有当用户是快照页模式虚拟账号时返回,值为1
unionid用户统一标识(针对一个微信开放平台账号下的应用,同一用户的 unionid 是唯一的),只有当scope为"snsapi_userinfo"时返回

5、拉取用户信息(需scope为 snsapi_userinfo)

如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。

请求方法

http:GET(请使用https协议):
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

参数说明
access_token网页授权接口调用凭证,为第四步取到的access_token
openid用户的唯一标识
lang返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
返回说明
{   
  "openid": "OPENID",
  "nickname": NICKNAME,
  "sex": 1,
  "province":"PROVINCE",
  "city":"CITY",
  "country":"COUNTRY",
  "headimgurl":"https://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
  "privilege":[ "PRIVILEGE1" "PRIVILEGE2"     ],
  "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
参数说明
参数描述
openid用户的唯一标识
nickname用户昵称
sex用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
province用户个人资料填写的省份
city普通用户个人资料填写的城市
country国家,如中国为CN
headimgurl用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
privilege用户特权信息,json 数组,如微信沃卡用户为(chinaunicom)
unionid只有在用户将公众号绑定到微信开放平台账号后,才会出现该字段。
### 回答1: 在 PHP 中获取微信公众号用户信息流程为: 1. 通过微信 OAuth2.0 获取用户授权。首先,需要在微信公众平台注册账号并获取 appID 和 appSecret。然后,需要向微信服务器请求获取用户授权,微信会返回一个授权码 code。 2. 使用授权码 code 和 appID 以及 appSecret 向微信服务器请求获取用户 access_token 。 3. 使用 access_token 和 openid 向微信服务器请求获取用户信息。 4. 对得到的用户信息进行处理。 获取用户信息需要用到微信公众平台的接口, 可以使用第三方类库简化操作 例如: EasyWechat 和 Overtrue/wechat 。 如果你还有问题,可以提供更多细节,我会尽量给你更多的帮助. ### 回答2: 要获取用户信息,可以通过微信公众平台提供的接口来实现。首先,需要在公众号开发者平台上注册一个开发者账号,并创建一个公众号。 接下来,需要在公众号后台配置好服务器信息,包括服务器地址、令牌和加密密钥,并将验证服务器的URL返回给微信服务器进行验证。 验证通过后,就可以使用微信公众平台提供的接口来获取用户信息了。可以通过用户授权方式获得用户的基本信息,包括用户的唯一标识openid和用户的基本资料,如昵称、头像等。 获取用户信息的接口主要有两个:一是snsapi_base,只能获取用户openid;二是snsapi_userinfo,可以获取用户的基本资料。 在使用接口前,需要先引入微信开放平台的SDK文件,并进行身份验证。然后,通过调用接口函数,传入相应的参数,即可获取用户信息获取用户信息后,可以将其保存到数据库中,用于后续的业务处理。在获取用户信息时,需要注意用户授权的范围,如果用户没有进行授权或授权失败,就无法获取用户的信息。 在实际项目中,还可以根据不同的需求对用户信息进行处理,比如需要使用用户的地理位置信息,可以通过接口获取用户的地理位置等,以实现更多的功能。最后,使用获取到的用户信息进行个性化的推送或其他相关操作,增强用户体验。 总之,通过使用微信公众号提供的接口,可以轻松实现获取用户信息的功能,为开发者提供更多的可能性。 ### 回答3: 要使用PHP获取微信公众号用户信息,需要先通过微信开放平台的授权流程获取用户的openid,然后再通过openid获取用户的详细信息。下面是具体步骤: 1. 注册微信开放平台账号并创建公众号,并获得APPID和APPSECRET。 2. 在前端页面中引入微信JS-SDK库,实现用户授权登录。 3. 在服务器端创建一个用于获取access_token的接口,包括appid和appsecret,并将access_token保存在session或数据库中。 4. 用户在前端点击授权登录后,跳转至微信授权页面,获取一个临时授权码code。 5. 通过临时授权码code,调用接口获取access_token和openid。接口请求地址为:https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code 其中,APPID为公众号的appid,SECRET为公众号的appsecret,CODE为临时授权码。 6. 将获取到的openid存储在session或数据库中,以便后续使用。 7. 通过openid,调用获取用户详细信息的接口。接口请求地址为:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 其中,ACCESS_TOKEN为之前获取到的access_token,OPENID为用户的openid。 8. 解析接口返回的用户详细信息,包括昵称、头像等。 9. 将用户详细信息展示在前端页面或进行其他操作。 通过以上步骤,可以使用PHP获取微信公众号用户的信息。注意保管好appid和appsecret,以及进行相应的安全验证,确保用户信息的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值