Heim  >  Artikel  >  Backend-Entwicklung  >  So erhalten Sie Benutzerinformationen auf der PHP-WeChat-Webseite

So erhalten Sie Benutzerinformationen auf der PHP-WeChat-Webseite

php中世界最好的语言
php中世界最好的语言Original
2017-12-20 16:43:401798Durchsuche

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 der PHP-Sprache erfolgreich abgerufen werden können .

Erforderliche Bedingungen:

1) Authentifizierung eines öffentlichen Kontos

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

Hinweis: Kürzlich sagte ein Freund, dass bei der Beantragung eines Testkontos auf der öffentlichen Plattform keine Benutzerinformationen eingeholt 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-->Developer Center-->Tabelle der Schnittstellenberechtigungen

Suchen Sie die Webseitenautorisierung, um die grundlegenden Informationen des Benutzers zu erhalten, und geben Sie dann Ihren Domainnamen ein:

Speichern Sie ihn

Zwei Dinge zur Webseitenautorisierung Erklärung der Unterschiede zwischen den beiden Bereichen (offiziell)

1. Webseitenautorisierung, die mit snsapi_base initiiert wird, da der Bereich zum Abrufen verwendet wird openid des Benutzers, der die Seite betritt, stillschweigend autorisiert wird und automatisch zur Rückrufseite springt. Was der Benutzer wahrnimmt, ist, dass er direkt die Rückrufseite (häufig eine Unternehmensseite) aufruft

2. Webseitenautorisierung initiiert mit snsapi_userinfo, da der Bereich zum Abrufen der grundlegenden Informationen des Benutzers verwendet wird. Diese Art der Autorisierung erfordert jedoch die manuelle Zustimmung des Benutzers. Da der Benutzer zugestimmt hat, können die grundlegenden Informationen des Benutzers nach der Autorisierung ohne Aufmerksamkeit abgerufen werden.

3. Die „Benutzer-Basisinformationsschnittstelle“ in der Benutzerverwaltungsoberfläche kann die Basisinformationen des Benutzers basierend auf der OpenID des Benutzers erst abrufen, nachdem der Benutzer mit dem offiziellen Konto interagiert oder nachdem das Ereignis übertragen wurde nachdem Sie der Nachricht des Benutzers gefolgt sind. 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 der Bereich über zwei Modi verfügt, werden wir diese im Folgenden separat erläutern:

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

Erstellen Sie zunächst selbst 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);}

Bereich ist snsapi_userinfo, ohne dem offiziellen Konto zu folgen, aber es wird eine Schnittstelle geben, auf die Benutzer klicken können zur Bestätigung! 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

Zuerst testen: Bereich ist snsapi_base

1) Folgen Sie dem ersten öffentlichen Konto

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

3) Scannen Sie ihn mit WeChat

Erneut testen: Geltungsbereich ist snsapi_userinfo

1) Ersetzen Sie den Code

2) Folgen Sie dem aktuellen öffentlichen Konto nicht mehr.

3) Dann scannen Sie mit WeChat den gerade generierten QR-Code


Ich glaube, Sie beherrschen die Methode, nachdem Sie diese Fälle gelesen haben Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Verwandte Lektüre:

Wie PHP das Problem des großen Website-Verkehrs und der hohen Parallelität löst

Was ist die gemeinsame Syntax? von AJAX

AJAX-Prinzipien und domänenübergreifende CORS-Methoden

Das obige ist der detaillierte Inhalt vonSo erhalten Sie Benutzerinformationen auf der PHP-WeChat-Webseite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn