微信开发——网页授权

微信开发——网页授权
项目需求:通过用户在微信中打开网页获取用户的openid来实现绑定消费卡的功能。
项目开发:首先我们需要配置微信的运行环境,这里请参考我的第一篇关于微信开发的日志。
第一步我们得去平台配置网页回调授权的页面,位于网页服务——>网页账号——>修改,可以参照图一:修改回调域名参见图二
微信开发——网页授权_第1张图片
图一:设置回调域名地址
微信开发——网页授权_第2张图片
图二:设置OAuth2.0网页授权回调域名
第一步完成之后,我们去做第二步,我们分析需要何种授权方式?
方式一:以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面),这种方式只能获取openid;
方式二:以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
第三步:两种方式的对比,这个请大家参照微信开发者文档。
第四步:介绍一下它的流程
1、引导用户进入授权页面(上面我们配置好的域名)同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
step1:获取code
 WX_APPID,     //微信APPID
            'redirect_uri'  => REDIRECT_URI, //回调地址
            'response_type' => 'code',
            'scope'         => 'snsapi_base',//授权方式 snsapi_base 或者 snsapi_userinfo
            'state'         => $_SERVER['REQUEST_TIME']
        );
        $api = 'https://open.weixin.qq.com/connect/oauth2/authorize?'#wechat_redirect';
        header('Refresh:0; url='.$api);
}
?>

step2: 获取openid
 WX_APPID,
          'secret'     => WX_APPSECRET,
          'code'       => $code,
          'grant_type' => 'authorization_code'
        );
        $get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?'.http_build_query($dt);
        $json_obj = $this->DoCurl($get_token_url);
        $openid = $json_obj['openid'];
}

step3:获取用户信息(当scope为snsapi_userinfo时有效)
 $access_token,
          'openid'       => $this->openid,
          'lang'         => 'zh_CN'
        );
        $get_userinfo_url = 'https://api.weixin.qq.com/sns/userinfo?'.http_build_query($dt);
        $json_obj = $this->DoCurl($get_userinfo_url);
    }
?>

step4:封装方法DoCurl()(这个的配置是在服务器中开启的 具体百度 (windows直接开就行,linux需要phpize编译安装加入模块)
 
   

 
    
   最后的最后,本人博客水平有限,希望有问题的大家指证出来,我好修改。我的邮件是[email protected] 
   




你可能感兴趣的:(微信公众号开发,PHP开发,框架开发)