Maison > développement back-end > tutoriel php > Comment obtenir des informations utilisateur basées sur la page Web PHP WeChat

Comment obtenir des informations utilisateur basées sur la page Web PHP WeChat

墨辰丷
Libérer: 2023-03-26 08:24:02
original
2707 Les gens l'ont consulté

Cet article vous fournit principalement une analyse détaillée du processus d'utilisation de PHP pour créer une page Web WeChat afin d'obtenir des informations utilisateur de base, ainsi qu'une explication étape par étape.

Lors du développement de pages Web WeChat, de nombreux utilisateurs ont besoin d'obtenir les informations de base de l'utilisateur, telles que le pays, la province, la ville, le pseudo, etc. Ensuite, nous analyserons en détail comment les obtenir avec succès en fonction des bases du langage PHP.

Conditions nécessaires :

1) Authentification du compte public

2) Il existe une interface d'autorisation de page Web pour obtenir des informations utilisateur de base

Remarque : Récemment, un ami a déclaré que lors de la demande d'un compte test sur la plateforme publique, il apparaîtra que les informations utilisateur ne peuvent pas être obtenues. Ce sera normal si vous passez à un compte public certifié !

Si vous rencontrez également ce problème, vous pouvez essayer de le tester dans un compte public certifié ! Merci à tous pour votre soutien !

Remplissez le nom de domaine de la page de rappel d'autorisation

Connectez-vous à la plateforme publique-->Centre des développeurs-->Tableau des autorisations de l'interface

Recherchez la page Web pour autoriser et obtenir les informations utilisateur de base, puis modifiez-la-->Remplissez votre nom de domaine comme suit :

Enregistrez. it!

À propos de la page Web Explication de la différence entre les deux étendues d'autorisation (officielle)

1 Autorisation de page Web initiée avec snsapi_base car la portée est utilisée pour. obtenez l'openid de l'utilisateur qui entre dans la page, et est autorisé à sauter silencieusement et automatiquement à la page de rappel. Ce que l'utilisateur perçoit, c'est qu'il accède directement à la page de rappel (souvent une page professionnelle)

2. Autorisation de la page Web initiée avec snsapi_userinfo car la portée est utilisée pour obtenir les informations de base de l'utilisateur. Cependant, ce type d'autorisation nécessite le consentement manuel de l'utilisateur, et puisque l'utilisateur a accepté, les informations de base de l'utilisateur peuvent être obtenues après autorisation sans y prêter attention.

3. L'interface « Obtenir les informations de base de l'utilisateur » dans l'interface de gestion des utilisateurs peut obtenir les informations de base de l'utilisateur en fonction de l'OpenID de l'utilisateur uniquement après que l'utilisateur a interagi avec le compte officiel ou après que l'événement a été poussé. après avoir suivi le message de l'utilisateur. Cette interface, y compris d'autres interfaces WeChat, nécessite que l'utilisateur (c'est-à-dire openid) suive le compte officiel avant de pouvoir l'appeler avec succès.

Parce que le scope a deux modes, nous les expliquerons séparément ci-dessous :

Le scope est snsapi_base, alors l'utilisateur doit suivre le compte officiel pour obtenir l'information

Créez d'abord vous-même deux fichiers : index.php et getUserInfo.php

Exemple de code

index.php est le suivant :

//scope=snsapi_base 实例
$appid='你的AppId';
$redirect_uri = urlencode ( 'http://你的域名/getUserInfo.php' );
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
header("Location:".$url);
Copier après la connexion

getUserInfo.php est le suivant :

$appid = "你的AppId";
$secret = "你的AppSecret";
$code = $_GET["code"];
//第一步:取全局access_token
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
$token = getJson($url);
//第二步:取得openid
$oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
$oauth2 = getJson($oauth2Url);
 
//第三步:根据全局access_token和openid查询用户信息
$access_token = $token["access_token"];
$openid = $oauth2['openid'];
$get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";
$userinfo = getJson($get_user_info_url);
//打印用户信息
print_r($userinfo);
function getJson($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output, true);
}
Copier après la connexion

la portée est snsapi_userinfo . Les utilisateurs n'ont pas besoin de suivre le compte officiel pour accéder aux informations, mais il y aura une interface sur laquelle l'utilisateur pourra cliquer pour confirmer ! C’est l’équivalent d’une autorisation de connexion !

Exemple de code

index.php est le suivant :

//scope=snsapi_userinfo实例
$appid='你的AppId';
$redirect_uri = urlencode ( 'http://你的域名/getUserInfo.php' );
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
header("Location:".$url);
Copier après la connexion

getUserInfo. php est la suivante :

$appid = "你的AppId";
$secret = "你的AppSecret";
$code = $_GET["code"];
//第一步:取得openid
$oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
$oauth2 = getJson($oauth2Url);
//第二步:根据全局access_token和openid查询用户信息
$access_token = $oauth2["access_token"];
$openid = $oauth2['openid'];
$get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";
$userinfo = getJson($get_user_info_url);
//打印用户信息
print_r($userinfo);
function getJson($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output, true);
}
Copier après la connexion

Étapes du test :

Après avoir créé les deux fichiers index.php et getUserInfo.php

Testez d'abord : la portée est snsapi_base

1) Suivez d'abord le compte public

2) Changez l'URL : http:// votre nom de domaine/index.php génère un code QR

3) Scannez-le avec WeChat

Testez à nouveau : la portée est snsapi_userinfo

1) Remplacer le code

2) Ne plus suivre le compte public actuel.

3) Scannez ensuite le code QR que vous venez de générer avec WeChat.

Recommandations associées :

PHP implémente le développement de l'autorisation de connexion à la page Web WeChat

PHP implémente la connexion par autorisation de page Web WeChat

Étapes pour mettre en œuvre la connexion autorisée à la page Web WeChat à l'aide d'ajax (avec code)

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