Maison >Applet WeChat >Développement WeChat >Comment obtenir des informations utilisateur via l'autorisation d'une page Web
Les étapes pour obtenir les informations de l'utilisateur sont les suivantes :
1 Étape 1 : L'utilisateur s'engage à autoriser et obtenir le code
2 Étape 2 : Échanger le code pour l'autorisation de la page Web access_token
3 Étape 3 : Actualisez access_token (si nécessaire)
4 Étape 4 : Extrayez les informations utilisateur (besoin d'avoir la portée snsapi_userinfo)
1 Obtenez le code
Assurez-vous que le public WeChat le compte a une portée d'autorisation (paramètre scope) (une fois que le compte de service a obtenu l'interface avancée , il aura snsapi_base et snsapi_userinfo dans le paramètre scope par défaut), guidez les abonnés pour ouvrir la page suivante :
ouvrez .weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
S'il vous demande "Le lien est inaccessible ", veuillez vérifier si les paramètres sont mal renseignés, s'il dispose de l'autorisation de portée d'autorisation correspondant au paramètre de portée.
Remarque spéciale : étant donné que l'opération d'autorisation sécurité est de haut niveau, lors du lancement d'une demande d'autorisation, WeChat effectuera régulièrement une vérification de correspondance forte sur le lien d'autorisation si la commande. des paramètres du lien est Non, la page d'autorisation ne sera pas accessible normalement
Parmi eux :
AppID - l'identifiant unique du compte officiel
REDIRECT_URI - jump url
SCOPE - la valeur est snsapi_base (pas la page d'autorisation apparaît et saute directement. Vous ne pouvez obtenir que l'openid de l'utilisateur) ou snsapi_userinfo (la page d'autorisation apparaît. Vous pouvez obtenir le surnom, le sexe et l'emplacement via openid . De plus, même si vous n'y prêtez pas attention, tant que l'utilisateur l'autorise, vous pouvez également l'obtenir Informations)
STATE - Les développeurs peuvent personnaliser la valeur du paramètre a-zA-Z0-9
state est le paramètre STATE passé tel qu'il est ci-dessus
<code class="hljs php">$code = I('get.code');if (empty($code)) { //todo 非微信访问 exit('</code>'); } else { //授权后操作 }Ici, nous pouvons obtenir le code pour l'acquisition ultérieure d'access_token. Après avoir obtenu le code, demandez le lien suivant pour obtenir le access_token : api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_codeappid - l'identifiant unique du compte officiel
secret - key
code - le code renvoyé ci-dessus
grant_type - la valeur est authorisation_code
<code class="hljs bash">$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret');$str = file_get_contents ($url);$str = json _decode($str, true);$access_token = $str['access_token'];</code>Ici, access_token peut être
mis en cache pour éviter l'acquisition fréquente de code d'implémentation. Prenez le framework TP
comme exemple :
<code class="hljs php">$access_token = S('access_token');if (empty($access_token)) { $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret'); $str = file_get_contents($url); $str = json_decode($str, true); $access_token = $str['access_token']; S('access_token', $access_token, 3600);}</code>. Après avoir obtenu access_token, l'openid (identifiant unique de l'utilisateur) sera également renvoyé. Le document officiel WeChat explique : l'identifiant unique de l'utilisateur. Veuillez noter que lorsque l'utilisateur ne suit pas le compte officiel et visite la page Web du compte officiel, un unique. L'utilisateur et le compte officiel seront également générés. OpenID
interroger <.> s'il y a un utilisateur lié à cet openid dans la base de données, puis il n'est pas nécessaire de ré-obtenir les données utilisateur, obtenez directement le paramètre user_id de la base de données session, connectez-vous directement pour accéder à 3 Ignorez la troisième étape, n'obtenez à nouveau le access_token que lorsque nécessaire
4 Extrayez les informations utilisateur (besoin d'avoir la portée snsapi_userinfo)
Si la base de données n'est pas liée à cet identifiant WeChat utilisateur, cela équivaut à la première visite et à la première connexion de l'utilisateur, puis la quatrième étape est utilisée pour obtenir les informations de l'utilisateur (après l'autorisation de l'utilisateur. Dans ce cas, la portée de l'autorisation de la page Web est snsapi_userinfo, le développeur peut alors extraire les informations de l'utilisateur via access_token et openid. ), puis créez un utilisateur en arrière-plan et liez cet utilisateur WeChat (via openid)
Méthode de demande
access_token - le access_token obtenu ci-dessusopenid - l'identifiant unique du compte public
Code d'implémentation :
<code class="hljs php">$access_token = S('access_token');if (empty($access_token)) { $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret'); $str = file_get_contents($url); $str = json_decode($str, true); $access_token = $str['access_token']; S('access_token', $access_token, 3600);}</code>
1.
Téléchargement du code source de la plateforme de compte public WeChat
2 Code source du robot Weizhichuang T+ 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!