Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielanalyse zum Erhalten von Benutzerinformationen basierend auf der PHP-WeChat-Webseite

Beispielanalyse zum Erhalten von Benutzerinformationen basierend auf der PHP-WeChat-Webseite

coldplay.xixi
coldplay.xixinach vorne
2020-08-05 17:18:052228Durchsuche

Beispielanalyse zum Erhalten von Benutzerinformationen basierend auf der PHP-WeChat-Webseite

Bei der Entwicklung von WeChat-Webseiten müssen viele Benutzer die grundlegenden Informationen des Benutzers wie Land, Provinz, Stadt, Spitzname usw. abrufen. Als Nächstes werden wir detailliert analysieren, wie diese basierend auf den Grundlagen von PHP erfolgreich abgerufen werden können Sprache.

Empfehlungen für entsprechende Videos: PHP-Programmierung vom Anfänger bis zum Experten

Erforderliche Bedingungen:

1) Offizielle Kontozertifizierung

2) Es gibt eine Webseiten-Autorisierungsschnittstelle, um grundlegende Benutzerinformationen zu erhalten

Hinweis : Kürzlich sagte ein Freund: Bei der Beantragung eines Testkontos auf der öffentlichen Plattform scheint es, dass die Benutzerinformationen nicht abgerufen werden können. Es ist normal, wenn Sie zu einem zertifizierten öffentlichen Konto wechseln!

Wenn dieses Problem auch bei Ihnen auftritt, können Sie es in einem zertifizierten öffentlichen Konto testen! Vielen Dank an alle für Ihre Unterstützung!

Geben Sie den Domänennamen der Autorisierungsrückrufseite ein.

Melden Sie sich bei der öffentlichen Plattform an Ändern Sie es-->Geben Sie Ihren Domainnamen ein:

Einfach speichern!

Erklärung zum Unterschied zwischen den beiden Bereichen der Webseitenautorisierung (offiziell)

1 Initiiert mit snsapi_base, da der Bereich verwendet wird, um Benutzer zu erhalten, die die Seiten-OpenID eingeben, und es wird stillschweigend autorisiert und springt automatisch zur Rückrufseite. Was der Benutzer wahrnimmt, ist, dass er direkt die Rückrufseite (oft eine Geschäftsseite) aufruft

2 Die mit snsapi_userinfo initiierte Webseitenautorisierung wird verwendet, um die grundlegenden Informationen des Benutzers zu erhalten. Diese Art der Autorisierung erfordert jedoch eine manuelle Zustimmung des Benutzers. Da der Benutzer zugestimmt hat, besteht keine Notwendigkeit, darauf zu achten, und die grundlegenden Informationen des Benutzers können nach der Autorisierung abgerufen werden.

3. Die „Schnittstelle zum Abrufen grundlegender Benutzerinformationen“ in der Benutzerverwaltungsoberfläche kann die grundlegenden Informationen des Benutzers nur dann abrufen, wenn der Benutzer mit dem offiziellen Konto interagiert oder das folgende Ereignis auslöst. Diese Schnittstelle, einschließlich anderer WeChat-Schnittstellen, erfordert, dass der Benutzer (d. h. openid) dem offiziellen Konto folgt, bevor sie erfolgreich aufgerufen werden kann.

Da Scope über zwei Modi verfügt, werden wir diese im Folgenden separat erläutern:

scope ist snsapi_base, dann muss der Benutzer dem offiziellen Konto folgen, um die Informationen zu erhalten

Erstellen Sie zunächst zwei Dateien: index.php und getUserInfo.php

Codebeispiel

index.php lautet wie folgt:

//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);

getUserInfo.php lautet wie folgt:

$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);
}

scope ist snsapi_userinfo Benutzer können Informationen erhalten, ohne dem offiziellen Konto zu folgen, aber es wird eine Schnittstelle für Benutzer geben Klicken Sie zum Bestätigen! Es kommt einer Login-Autorisierung gleich!

Codebeispiel

index.php lautet wie folgt:

//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);

getUserInfo.php lautet wie folgt:

$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);
}

Testschritte:

Nach dem Erstellen der beiden Dateien index.php und getUserInfo.php

Testen Sie zuerst : Geltungsbereich ist snsapi_base

1) Folgen Sie zuerst dem öffentlichen Konto

2) Generieren Sie einen QR-Code mit der URL: http://Ihr Domainname/index.php!

3) Scannen Sie ihn mit WeChat

und dann testen: Scope ist snsapi_userinfo

1) Ersetzen Sie den Code

2) Entfolgen Sie dem aktuellen offiziellen Konto.

3) Scannen Sie dann mit WeChat den QR-Code, den Sie gerade generiert haben.

Verwandte Lernempfehlungen :

PHP-Programmierung
(Video)

Das obige ist der detaillierte Inhalt vonBeispielanalyse zum Erhalten von Benutzerinformationen basierend auf der PHP-WeChat-Webseite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen