Die Schritte zum Erhalten von Benutzerinformationen sind wie folgt:
1 Schritt 1: Der Benutzer erklärt sich damit einverstanden, den Code zu autorisieren und zu erhalten
2 Schritt 2: Tauschen Sie den Code gegen das Access_token für die Webseitenautorisierung aus
3 Schritt 3: Access_token aktualisieren (falls erforderlich)
4 Schritt 4: Benutzerinformationen abrufen (Bereich snsapi_userinfo erforderlich)
1 Code abrufen
Stellen Sie sicher, dass WeChat öffentlich ist Das Konto verfügt über einen Autorisierungsbereich (Bereichsparameter) (nachdem das Dienstkonto die erweiterte Schnittstelle erhalten hat, verfügt es standardmäßig über snsapi_base und snsapi_userinfo im Bereichsparameter). Führen Sie Follower dazu, die folgende Seite zu öffnen:
Öffnen Sie .weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
Wenn die Meldung erscheint: „Auf den Link kann nicht zugegriffen werden.“ "Bitte überprüfen Sie, ob die Parameter falsch ausgefüllt sind und ob die Autorisierungsbereichsberechtigung vorhanden ist, die dem Bereichsparameter entspricht.
Besonderer Hinweis: Da der Autorisierungsvorgang sicher ist, führt WeChat bei der Initiierung einer Autorisierungsanfrage regelmäßig eine strenge Übereinstimmungsprüfung des Autorisierungslinks durch Wenn einer der Parameter des Links „Nein“ lautet, ist die Autorisierungsseite normalerweise nicht zugänglich.
Unter anderem:
AppID – die eindeutige Kennung des offiziellen Kontos
REDIRECT_URI – Sprung URL
SCOPE - Der Wert ist snsapi_base (nicht Die Autorisierungsseite wird angezeigt und springt direkt. Sie können nur die OpenID des Benutzers abrufen) oder snsapi_userinfo (Die Autorisierungsseite wird angezeigt. Sie können den Spitznamen, das Geschlecht und den Standort über OpenID abrufen . Darüber hinaus können Sie, auch wenn Sie nicht aufpassen, diese Informationen erhalten, sofern der Benutzer dies zulässt.
STATE - Entwickler können den Parameterwert von a-zA-Z0-9 anpassen
2 Tauschen Sie den Code für die Webseitenautorisierung aus, access_token
Wenn der Benutzer der Autorisierung zustimmt, springt die Seite zu „redirect_uri/?code=CODE&state=STATE“.
state ist der STATE-Parameter, der wie oben übergeben wird
Implementierungscode:
<code class="hljs php">$code = I('get.code');if (empty($code)) { //todo 非微信访问 exit('</code>'); } else { //授权后操作 }
Hier können wir den Code für die anschließende Erfassung von access_token erhalten.
Nachdem Sie den Code erhalten haben, fordern Sie den folgenden Link an, um das Access_token zu erhalten:
api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
appid – die eindeutige Kennung des offiziellen Kontos
geheim – Schlüssel
Code – der oben zurückgegebene Code
grant_type – der Wert ist Authorization_code
Implementierungscode:
<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>
Hier kann das Zugriffstoken zwischengespeichert werden, um eine häufige Erfassung von
Implementierungscode zu vermeiden. Nehmen Sie als Beispiel das TP Framework
<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 identifiziert einen WeChat-Benutzer eindeutig. Wenn sich der Benutzer nicht zum ersten Mal anmeldet, kann er
ob ein Benutzer an diese OpenID in der Datenbank gebunden ist, und dann ist es nicht erforderlich, die Benutzerdaten erneut abzurufen. Rufen Sie die Datenbankbenutzer-ID-Einstellung Sitzung direkt ab und melden Sie sich direkt an, um auf zuzugreifen 3 Ignorieren Sie den dritten Schritt und rufen Sie das access_token nur bei Bedarf erneut ab.
4. Benutzerinformationen abrufen (muss den Bereich snsapi_userinfo haben)
Wenn die Datenbank nicht an diesen WeChat gebunden ist Die ID des Benutzers entspricht dem ersten Besuch und der ersten Anmeldung des Benutzers. Die Benutzerinformationen werden im vierten Schritt (nach der Benutzerautorisierung) abgerufen. In diesem Fall lautet der Autorisierungsbereich der Webseite snsapi_userinfo, dann kann der Entwickler Benutzerinformationen abrufen access_token und openid) und erstellen Sie dann einen Benutzer im Hintergrund und binden Sie diesen WeChat-Benutzer
(über openid)
http: GET (bitte https-Protokoll verwenden) api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&
=zh_CNaccess_token – das erhaltene access_token oben
openid – die eindeutige Kennung des öffentlichen Kontos
Implementierungscode:
<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>
[Verwandte Empfehlungen]
1.
Quellcode der WeChat-Plattform herunterladenWeizhichuang T+ WeChat-Roboter-QuellcodeDas obige ist der detaillierte Inhalt vonSo erhalten Sie Benutzerinformationen durch Webseitenautorisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!