微信公众平台页面授权处理方法(单一方法处理)

在使用微信公众平台进行第三方开发的过程中,我们经常会遇到需要调用微信页面授权、从而获取用户信息。但是单一的使用微信页面授权的方式进入页面,总会存在跳转到微信页面进行授权的问题,这样就会增加用户进入页面所费时间,从而影响用户体验。
所以我们需要一种方式,借助其他机制等,不必要使得用户每次均要跳转到微信页面授权位置。这样在用户不是第一次进入页面的过程中,即可以不用跳转微信页面授权,从而减少用户进入页面时间,提升用户体验。
这样的使用方式,可以借助服务器session机制,利用if判断,进行判断。
示例代码如下:

public function OAuth()
{
    header('Content-type: text/html; charset=utf-8');
    //首先获取微信配置信息
    $m_sssmall_conf_weixin = M('sssmall_conf_weixin');
    $conf = $m_sssmall_conf_weixin->where('id=1')->find();
    //将appid、appsecret设为超全局变量,便于调用。
    $appid = $conf['appid'];
    $appsecret = $conf['appsecret'];
    //$access_token = getApiToken();
    dump($_SESSION['oauth']);
    //条件判断(假如session不存在,进行页面授权,并设置session)
    if (empty($_SESSION['oauth']) && empty($_GET['code'])) {
        $redirect_uri = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; //此即为本页面地址
        $redirect_uri = urlencode($redirect_uri);
        $getCodeUrl = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope=snsapi_userinfo&state=oauth#wechat_redirect';
        redirect($getCodeUrl, 0);
    } elseif (!empty($_GET['code']) && empty($_SESSION['oauth'])) {
        $getAccesstokenUrl = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid . '&secret=' . $appsecret . '&code=' . $_GET['code'] . '&grant_type=authorization_code';
        $res = WeChat_request($getAccesstokenUrl);
        $openid = $res->openid;
        $_SESSION['oauth'] = $openid;
        dump($openid);
        //获取用户信息存储
    } else {
        dump('第二次进入');
        dump($_SESSION['oauth']);
    }
    dump('看到我就证明成功啦');
}

此处对于页面授权的重定向地址为此页面本身,重新进入页面后会进行条件判断,当openid信息已经存在使,即可不用在进行页面授权,从而提升用户体验。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值