21,886
社区成员
发帖
与我相关
我的任务
分享
public function snsapi_userinfo($redirect_uri)
{
// 1、准备Scope为snsapi_userinfo的网页授权页面URL;
$redirect_uri = urlencode($redirect_uri);
$snsapi_userinfo_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->appID}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";
// 2、用户手动同意授权,获取code;
// 页面将跳转至 redirect_uri/?code=CODE&state=STATE
if(!isset($_GET['code']))
{
header("Location:{$snsapi_userinfo_url}");
}
$code = $_GET['code'];
// 3、通过code换取网页授权access_token。
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$this->appID}&secret={$this->appsecret}&code={$code}&grant_type=authorization_code";
$result = $this->https_request($url);
$access_token = $result['access_token'];
$openid = $result['openid'];
//4、根据上一步获取的access_token和openid拉取用户信息。
$userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$openid}&lang=zh_CN";
return $this->https_request($userinfo_url);
}
require_once '../weixin_api.php';
$appId='wxce300ad82db464c2';
$appsecret='f8b3035d0492309f1d1d52270209955d';
//实例化
$wx=new WeiXin($appId,$appsecret);
$redirect_uri="http://1.wxdraw.applinzi.com/vote/vote.php";
$result=$wx->snsapi_userinfo($redirect_uri);
下面然后实例化这个类,然后调用这个方法,第一次可以成功是接受到code获取到access_token,和openid ,然后刷新页面应该是code取不到了,我现在很困惑是缓存code还是缓存access_token来,还有时间设置应该多久?