Développer des documents officiels basés sur le compte public WeChat :
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 : Exchanger l'autorisation de la page Web access_token via le code
3 Étape 3 : Actualiser access_token (si nécessaire)
4 Étape 4 : Extraire les informations utilisateur (besoin d'avoir la portée snsapi_userinfo)
1 Obtenir le code
Sur le principe de s'assurer que le compte public WeChat dispose des autorisations de la portée d'autorisation (paramètre de portée) (le compte de service obtient un L'interface a snsapi_base et snsapi_userinfo dans le paramètre scope par défaut).
S'il apparaît "Le lien n'est pas accessible", veuillez vérifier si les paramètres sont mal rempli et si vous disposez des paramètres de portée correspondants Autorisations de portée d'autorisation
Remarque spéciale : en raison du niveau de sécurité élevé des opérations d'autorisation, lors du lancement d'une demande d'autorisation, WeChat effectuera régulièrement une correspondance forte. vérifiez sur le lien d'autorisation. Si l'ordre des paramètres du lien est incorrect, la page d'autorisation ne sera pas accessible normalement
Parmi eux :
AppID - l'identifiant unique. du compte officiel
REDIRECT_URI - sauter l'url
SCOPE - la valeur est snsapi_base (pas de pop-up La page d'autorisation saute directement et ne peut obtenir que l'openid de l'utilisateur) ou snsapi_userinfo (la page d'autorisation apparaît et vous pouvez obtenir le surnom, le sexe et l'emplacement via openid. Et même si vous ne suivez pas l'utilisateur, vous pouvez également obtenir les informations tant que l'utilisateur l'autorise)
STATE - Les développeurs peuvent personnaliser la valeur du paramètre a-zA. -Z0-9
2 Échangez le code pour l'autorisation de la page Web access_token
Si l'utilisateur accepte l'autorisation, la page passera à redirect_uri/?code=CODE&state=STATE state est le paramètre STATE passé tel quel
<code class="hljs php">$code = I('get.code'); if (empty($code)) { //todo 非微信访问 exit('</code>'); }else{ //授权后操作 }
secret - la clé
code - ci-dessus Le code retourné grant_type - la valeur est authorisation_code
code d'implémentation :
Ici, access_token peut être
mis en cache<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>
Code d'implémentation, en prenant le framework TP comme un exemple :
Après avoir obtenu access_token, openid (identifiant unique de l'utilisateur) sera également renvoyé. L'explication du document officiel de WeChat est : l'identifiant unique de l'utilisateur. Veuillez noter que dans Lorsque l'utilisateur ne le fait pas. suivez le compte officiel, lorsque l'utilisateur visite la page Web du compte officiel, un OpenID unique à l'utilisateur et au compte officiel sera également généré
<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>
openid identifie de manière unique l'utilisateur WeChat si l'utilisateur ne se connecte pas. pour la première fois, après avoir obtenu l'openid,
demandez
session, et connectez-vous directement pour accéder à 3 Ignorez la troisième étape et n'obtenez à nouveau le jeton d'accès qu'en cas de besoin
4 Extrayez les informations utilisateur (besoin d'avoir la portée snsapi_userinfo )Il n'y a aucune liaison de cet utilisateur WeChat ID dans la base de données. Ensuite, cela équivaut à la première visite et à la première connexion de l'utilisateur, et les informations de l'utilisateur sont obtenues via la quatrième étape (dans le cas de l'autorisation de l'utilisateur, la portée de l'autorisation de la page Web est snsapi_userinfo, le développeur peut alors extraire les informations utilisateur via access_token et openid). Créez ensuite un utilisateur en arrière-plan et liez cet utilisateur WeChat (via openid)
Méthode de requête
http : GET (Veuillez utiliser le protocole https)
openid - le identifiant unique du compte public
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!