Heim >Backend-Entwicklung >PHP-Problem >So implementieren Sie die WeChat-Anmeldung in PHP

So implementieren Sie die WeChat-Anmeldung in PHP

王林
王林Original
2021-10-14 15:21:295620Durchsuche

So implementieren Sie die WeChat-Anmeldung in PHP: 1. Autorisieren Sie mit Zustimmung des Benutzers und erhalten Sie den Code. 2. Tauschen Sie den Code gegen den Webseiten-Autorisierungs-Access_token aus. 3. Erhalten Sie die Benutzerinformationen.

So implementieren Sie die WeChat-Anmeldung in PHP

Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP 7, Thinkpad T480-Computer.

Es ist nicht schwierig, sich mit PHP bei WeChat anzumelden. Es kann einfach in drei Schritte unterteilt werden, wie unten gezeigt:

Schritt 1: Der Benutzer stimmt zu, den Code zu autorisieren und zu erhalten

//微信登录
	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);
	}

Schritt 2: Tauschen Sie den aus Code für die Webseitenautorisierung 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'])
        {
        
     }

}

Zusätzlich: Im Code verwendete Methoden

// 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;
	}

Empfohlenes Lernen: php-Schulung

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die WeChat-Anmeldung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn