之前有写过一个获取用户信息的(用于微信登录的)
这个是那个的简单化 不需要用户点击确定(用于微信支付获取的openid)
今天把两种方法都写出来吧 以后可以直接CV使用了
获取用户登录用户信息的 点击允许的授权
public function wxLogin()
{
$AppID = Config::get('weixinpay_config.appid');
// $redirect_uri1 = urlencode('http://admin.php1314.cn/index/wxSample/getUserInfo');
$redirect_uri = urlencode(Config::get('weixinpay_config.redirect_uri'));
//die();
//跳转微信回调到redirect_uri获取code
$url1 = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$AppID&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
return redirect($url1);//参数snsapi_userinfo(弹框授权获取用户完整信息)
}
public function getUserInfo()//弹框授权
{
//echo '2';
$code = $_GET["code"];
$AppID = Config::get('weixinpay_config.appid');
$Appsecret = Config::get('weixinpay_config.key');
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$AppID&secret=$Appsecret&code=$code&grant_type=authorization_code";
$res = $this->sendRequest($url);
$access_token = $res["access_token"];
$openId = $res['openid'];
$getUserInfo = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openId&lang=zh_CN";
$user_info = $this->sendRequest($getUserInfo);
var_dump($user_info);
session('openid', $openId); //浏览器打开session为空的原因是 用户在微信打开 只会把session存到手机端
}
静默授权
public function wxLogin()
{
$AppID = Config::get('weixinpay_config.appid');
// $redirect_uri1 = urlencode('http://admin.php1314.cn/index/wxSample/getUserInfo');
$redirect_uri = urlencode(Config::get('weixinpay_config.redirect_uri'));
//跳转微信回调到redirect_uri获取code
$url1 = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$AppID&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
return redirect($url1);//参数scop=snsapi_base只获取openid
}
public function getUserInfo()//静默授权
{
//echo '2';
$code = $_GET["code"];
$AppID = Config::get('weixinpay_config.appid');
$Appsecret = Config::get('weixinpay_config.key');
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$AppID&secret=$Appsecret&code=$code&grant_type=authorization_code";
$res = $this->sendRequest($url);
$access_token = $res["access_token"];
$openId = $res['openid'];
session('openid', $openId); //浏览器打开session为空的原因是 用户在微信打开 只会把session存到手机端
}
两者区别也说的很清楚了!
来看看代码区别吧 其实也只是一个参数的问题而已!

评论已关闭