Maison > Applet WeChat > Développement WeChat > Étapes de mise en œuvre pour obtenir l'autorisation d'une page Web pour les comptes publics WeChat

Étapes de mise en œuvre pour obtenir l'autorisation d'une page Web pour les comptes publics WeChat

PHPz
Libérer: 2017-04-02 16:08:22
original
2736 Les gens l'ont consulté

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 d'implémentation :

<code class="hljs php">$code = I(&#39;get.code&#39;);
if (empty($code)) {
   //todo 非微信访问
   exit(&#39;</code>&#39;);
 }else{ //授权后操作 }
Copier après la connexion
Ici, nous pouvons obtenir Le code est utilisé pour obtenir le access_token plus tard. 🎜>Après avoir obtenu le code, demandez le lien suivant pour obtenir l'access_token :

appid - l'identifiant unique du compte officiel

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 = &#39;https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=&#39; . C(&#39;wechat.AppID&#39;) . &#39;&secret=&#39; . C(&#39;wechat.AppSecret&#39;);
$str = file_get_contents($url);
$str = json_decode($str, true);
$access_token = $str[&#39;access_token&#39;];</code>
Copier après la connexion
pour éviter les acquisitions fréquentes

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(&#39;access_token&#39;);
if (empty($access_token)) {
  $url = &#39;https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=&#39; . C(&#39;wechat.AppID&#39;) . &#39;&secret=&#39; . C(&#39;wechat.AppSecret&#39;);
  $str = file_get_contents($url);
  $str = json_decode($str, true);
  $access_token = $str[&#39;access_token&#39;];
  S(&#39;access_token&#39;, $access_token, 3600);
}</code>
Copier après la connexion

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

s'il y a un utilisateur lié à cet openid dans la base de données. Il n'est alors pas nécessaire d'obtenir à nouveau les paramètres user_id de la base de données directement obtenus.

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)

access_token - le access_token obtenu ci-dessus

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal