Maison >développement back-end >Problème PHP >Comment implémenter la connexion WeChat en php

Comment implémenter la connexion WeChat en php

王林
王林original
2021-10-14 15:21:295622parcourir

Comment implémenter la connexion WeChat en PHP : 1. Autorisez avec le consentement de l'utilisateur et obtenez le code ; 2. Échangez le code pour l'autorisation de la page Web access_token ;

Comment implémenter la connexion WeChat en php

L'environnement d'exploitation de cet article : système windows10, php 7, ordinateur thinkpad t480.

Il n'est pas difficile d'utiliser php pour se connecter à WeChat. Cela peut être simplement divisé en trois étapes, comme indiqué ci-dessous :

Étape 1 : L'utilisateur accepte d'autoriser et d'obtenir le 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);
	}

Étape 2 : Échanger le code. code pour l'autorisation de page Web 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'])
        {
        
     }

}

Supplémentaire : méthodes utilisées dans le 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;
	}

Apprentissage recommandé : formation php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn