php微信扫码登录和公众号登录

/**
 * 微信授权登录
 * @param  Request
 * @return [json]
 */
 

public function wxSignin(Request $request)
{

    $code        =    $request->input('code');
    $state       =    $request->input('state');
    $appid       =    config('wechat.appId');
    $secret      =    config('wechat.secret');

    $url         =    "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
    $data        =    $this->getclient($url);

    $access_token=    $data['access_token'];
    $openid      =    $data['openid'];
    $res         =    "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid";
    $userinfo    =    $this->getclient($res);

    $res         =    $this->post('wx/authorize',$userinfo,[]);

    if($res['status_code'] == 200) {
      \Cookie::queue('CG_TK', $res['data']['token'], $minutes = 525600, $path = null, $domain = null, $secure = false, $httpOnly = false);
   }
    return redirect('https://www.*******.cn/d/?openid='.$openid);  //跳转的路径


}
/**
 * 微信扫码登录
 * @param  Request
 * @return [json]
 */



public function qrcodeLogin(Request $request)
{

    $code        =    $request->input('code');
    $state       =    $request->input('state');
    $appid       =    config('wechat.webappId');
    $secret      =    config('wechat.webappsecret');

    $url         =    "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";

    $data        =    $this->getclient($url);      //微信扫码三次请求
    $refresh_token      =    $data['refresh_token'];
    $oneUrl             =    "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=$appid&grant_type=refresh_token&refresh_token=$refresh_token";

    $oneRequest         =    $this->getclient($oneUrl);
    $openid             =    $oneRequest['openid'];
    $access_token       =    $oneRequest['access_token'];
    $twoUrl             =    "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid";

    $twoRequest         =    $this->getclient($twoUrl);
    $data               =    $this->post('wx/authorize',$twoRequest,[]);



    return $data;

}

猜你喜欢

转载自blog.csdn.net/weixin_39201566/article/details/86063970