当前位置: 代码迷 >> 综合 >> PHP获取微信的 openid 和基本信息(非小程序)
  详细解决方案

PHP获取微信的 openid 和基本信息(非小程序)

热度:86   发布时间:2023-12-12 21:21:40.0

 

本次开发,是一个投票的活动,由于没有登录,导致没有cookie和session;所以无法判断是否为某一特定的用户,这里就需要用微信端的openid来做判断;

官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

官方流程 
网页授权流程分为四步: 
1、引导用户进入授权页面同意授权,获取code 
2、通过code换取网页授权access_token(与基础支持中的access_token不同) 
3、如果需要,开发者可以刷新网页授权access_token,避免过期 
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

1.相关配置

1.1、首先是要在公众号后台进行配置,设置回调路径,具体要求参照官方文档。

在开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息中配置如下:

1.2,在开发者中心查看:appid和appsecret

2.获取code:

前端页面访问链接:{返回code,一般不会直接打印}

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx59669XXXXXX5320&redirect_uri=http://www.xxxxx.cn/getOpenid&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect
参数说明:
appid//公众平台的appid
redirect_uri//需要跳转的方法
scope:自己去官网看看

3.获取openid:

    function getOpenid(){$code = $_GET['code'];//获取code$appid= "wx596XXXXXXXXXX5320";$secret= "8c13a2XXXXXXXXXXXXXXXXf8ad6f02";$get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$get_token_url);curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);$res = curl_exec($ch);curl_close($ch);$json_obj = json_decode($res,true);$openId = $json_obj['openid'];echo $openId;}