It is not difficult to use php to realize WeChat login, which can be divided into three steps

 It is actually not difficult to use php to implement WeChat login, which can be simply divided into three steps.

Step 1: The user agrees to authorize and obtain the code

//微信登录

    public function wxlogin()
    {
        $appid = "";
        $secret = "";
        $str="http://***.***.com/getToken";
        $redirect_uri=urlencode($str);
        //通过code获得 access_token + openid
        $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
       header("Location:" . $url);

    }

Step 2: Exchange the code for the web page authorization access_token

public function getToken()

{

$code = $_GET["code"];

 

        $appid = "";

       $secret = "";

 

//通过code获得 access_token + openid

       $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid

        ."&secret=" . $secret . "&code=" . $code . "&grant_type=authorization_code";

        $jsonResult =$this->https_request($url);

        $resultArray = json_decode($jsonResult, true);

 

        $access_token = $resultArray["access_token"];

        $openid = $resultArray["openid"];

 

//第三步  获取用户信息

         //通过access_token + openid 获得用户所有信息,结果全部存储在$infoArray里,后面再写自己的代码逻辑

        $infoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" . $access_token . "&openid=" . $openid.'&lang=zh_CN';

        $infoResult = $this->https_request($infoUrl);

        $infoArray = json_decode($infoResult, true);

 

       if($infoArray['unionid'])

        {

         

     }

 

}

Additional: methods used in the code 

// An highlighted block

function https_request($url, $data = null)

    {

        $curl = curl_init();

        curl_setopt($curl, CURLOPT_URL, $url);

        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);

        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

        if (!empty($data)){

            curl_setopt($curl, CURLOPT_POST, 1);

            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

        }

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

        $output = curl_exec($curl);

        curl_close($curl);

        return $output;

    }

Guess you like

Origin blog.csdn.net/ffffffff8/article/details/132579217