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
2. Implémentation du code PHP
<?php $appid = “your_appid”; //appid $redirect_uri = urlencode('http://yourdomain.com/login.php'); //登录成功回调网址,请确保此地址跟公众号设置的授权回调页面路径一致。 $scope = 'snsapi_userinfo'; //snsapi_base 或 snsapi_userinfo $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope=' . $scope . '&state=STATE#wechat_redirect'; header('Location:' . $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.
<?php $appid = 'your_appid'; //appid $secret = 'your_appsecret'; //appsecret $code = $_GET['code']; //网页授权code $access_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid . '&secret=' . $secret . '&code=' . $code . '&grant_type=authorization_code'; //获取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.
<?php $access_token = $access_token_arr['access_token']; $openid = $access_token_arr['openid']; $user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $access_token . '&openid=' . $openid . '&lang=zh_CN'; //获取用户信息的链接 $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.
<?php if (!isset($_GET['code']) || empty($_GET['code'])) { //第一步:用户同意授权,获取code $appid = 'your_appid'; $redirect_uri = urlencode('http://yourdomain.com/login.php'); $scope = 'snsapi_userinfo'; $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope=' . $scope . '&state=STATE#wechat_redirect'; header('Location:' . $url); exit; } else { //第二步:通过code换取网页授权access_token以及openid,再获取用户信息 $appid = 'your_appid'; $secret = 'your_appsecret'; $code = $_GET['code']; $access_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid . '&secret=' . $secret . '&code=' . $code . '&grant_type=authorization_code'; $access_token = file_get_contents($access_token_url); $access_token_arr = json_decode($access_token, true); $access_token = $access_token_arr['access_token']; $openid = $access_token_arr['openid']; $user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $access_token . '&openid=' . $openid . '&lang=zh_CN'; $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!