Maison  >  Article  >  développement back-end  >  Étapes détaillées pour implémenter la fonction de connexion WeChat à l'aide de PHP

Étapes détaillées pour implémenter la fonction de connexion WeChat à l'aide de PHP

PHPz
PHPzoriginal
2023-04-04 10:40:532522parcourir

Ces dernières années, avec l'essor des réseaux sociaux et la popularité des smartphones, WeChat est devenu un élément indispensable de la vie quotidienne des gens. Dans le domaine des applications Internet, la mise en œuvre de la fonction de connexion WeChat est un élément très nécessaire. Comme nous le savons tous, le mécanisme d'autorisation de WeChat utilise le mécanisme d'autorisation OAuth 2.0, ce qui apporte une grande commodité à la mise en œuvre de notre fonction de connexion WeChat. Ci-dessous, nous présenterons en détail comment implémenter la fonction de connexion WeChat via le langage PHP.

1. Configuration de la plateforme de développement WeChat

  1. Connectez-vous à [WeChat Open Platform] (https://open.weixin.qq.com) pour créer un compte Une fois l'enregistrement terminé, entrez dans le centre de gestion de la plateforme ouverte WeChat. .
  2. Cliquez sur le menu « Gérer le compte officiel » sur la page centrale et saisissez les informations du compte officiel WeChat auquel il faut accéder.
  3. Après avoir été authentifiés par la plateforme ouverte WeChat, nous devons obtenir l'AppID et l'AppSecret de la plateforme ouverte WeChat et les enregistrer dans le code de connexion. Connectez-vous à [WeChat Open Platform](https://open.weixin.qq.com), entrez dans le centre de gestion, sélectionnez « Application mobile », puis sélectionnez « Ajouter une application mobile ».
  4. Remplissez les informations de base de l'application mobile et soumettez-la pour examen. Après examen et approbation, vous pouvez obtenir l'AppID et l'AppSecret.

2. Implémentation du code PHP

  1. Créer un lien de connexion WeChat
<?php
$appid = “your_appid”; //appid
$redirect_uri = urlencode(&#39;http://yourdomain.com/login.php&#39;); //登录成功回调网址,请确保此地址跟公众号设置的授权回调页面路径一致。
$scope = &#39;snsapi_userinfo&#39;; //snsapi_base 或 snsapi_userinfo
$url = &#39;https://open.weixin.qq.com/connect/oauth2/authorize?appid=&#39; . $appid . &#39;&redirect_uri=&#39; . $redirect_uri . &#39;&response_type=code&scope=&#39; . $scope . &#39;&state=STATE#wechat_redirect&#39;;
header(&#39;Location:&#39; . $url);
exit;
?>

Dans le code ci-dessus, nous devons remplir les paramètres $appid, $redirect_uri et $scope. Parmi eux, $appid est l'AppID qui nous est attribué par la plateforme ouverte WeChat ; $redirect_uri est l'URL de rappel après autorisation de l'utilisateur, qui doit être cohérente avec la page de rappel d'autorisation définie par le compte officiel ; $scope est divisé en snsapi_base et snsapi_userinfo, le premier ne peut obtenir que l'openid de l'utilisateur et le second peut obtenir les informations de base de l'utilisateur.

  1. Obtenez access_token et openid
<?php
$appid = &#39;your_appid&#39;; //appid
$secret = &#39;your_appsecret&#39;; //appsecret
$code = $_GET[&#39;code&#39;]; //网页授权code
$access_token_url = &#39;https://api.weixin.qq.com/sns/oauth2/access_token?appid=&#39; . $appid . &#39;&secret=&#39; . $secret . &#39;&code=&#39; . $code . &#39;&grant_type=authorization_code&#39;; //获取access_token和openid的链接
$access_token = file_get_contents($access_token_url);
$access_token_arr = json_decode($access_token, true); //将返回的json字符串转为数组
?>

Dans ce code, nous transmettons le code renvoyé par l'utilisateur après une autorisation réussie, puis transmettons le code au serveur WeChat pour obtenir access_token et openid.

  1. Obtenir les informations de base de l'utilisateur
<?php
$access_token = $access_token_arr[&#39;access_token&#39;];
$openid = $access_token_arr[&#39;openid&#39;];
$user_info_url = &#39;https://api.weixin.qq.com/sns/userinfo?access_token=&#39; . $access_token . &#39;&openid=&#39; . $openid . &#39;&lang=zh_CN&#39;; //获取用户信息的链接
$user_info = file_get_contents($user_info_url);
$user_info_arr = json_decode($user_info, true); //将返回的json字符串转为数组
?>

Dans ce code, nous utilisons access_token et openid pour obtenir les informations de base de l'utilisateur, telles que le surnom de l'utilisateur, le sexe, la ville, etc. Il convient de noter qu'avant d'obtenir les informations de base de l'utilisateur, nous devons nous assurer que l'utilisateur a autorisé la portée de snsapi_userinfo.

  1. Exemple de code de connexion complet
<?php
if (!isset($_GET[&#39;code&#39;]) || empty($_GET[&#39;code&#39;])) {
    //第一步:用户同意授权,获取code
    $appid = &#39;your_appid&#39;;
    $redirect_uri = urlencode(&#39;http://yourdomain.com/login.php&#39;);
    $scope = &#39;snsapi_userinfo&#39;;
    $url = &#39;https://open.weixin.qq.com/connect/oauth2/authorize?appid=&#39; . $appid . &#39;&redirect_uri=&#39; . $redirect_uri . &#39;&response_type=code&scope=&#39; . $scope . &#39;&state=STATE#wechat_redirect&#39;;
    header(&#39;Location:&#39; . $url);
    exit;
} else {
    //第二步:通过code换取网页授权access_token以及openid,再获取用户信息
    $appid = &#39;your_appid&#39;;
    $secret = &#39;your_appsecret&#39;;
    $code = $_GET[&#39;code&#39;];
    $access_token_url = &#39;https://api.weixin.qq.com/sns/oauth2/access_token?appid=&#39; . $appid . &#39;&secret=&#39; . $secret . &#39;&code=&#39; . $code . &#39;&grant_type=authorization_code&#39;;
    $access_token = file_get_contents($access_token_url);
    $access_token_arr = json_decode($access_token, true);
    $access_token = $access_token_arr[&#39;access_token&#39;];
    $openid = $access_token_arr[&#39;openid&#39;];
    $user_info_url = &#39;https://api.weixin.qq.com/sns/userinfo?access_token=&#39; . $access_token . &#39;&openid=&#39; . $openid . &#39;&lang=zh_CN&#39;;
    $user_info = file_get_contents($user_info_url);
    $user_info_arr = json_decode($user_info, true);

    //TODO:在这里可以将用户信息存入数据库,供之后使用
    //......
}
?>

3 Résumé

Comme mentionné ci-dessus, en quelques étapes simples, nous pouvons utiliser le langage PHP pour implémenter la fonction de connexion WeChat. Cet article présente uniquement la méthode de mise en œuvre la plus élémentaire de la connexion WeChat. Dans l'application réelle, d'autres problèmes nécessitent une attention particulière, tels que le jugement des autorisations des utilisateurs, la période de validité de l'autorisation, etc. J'espère que cet article pourra fournir de l'aide aux développeurs qui doivent implémenter la connexion WeChat.

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