Heim >WeChat-Applet >WeChat-Entwicklung >Implementierungsschritte zum Erhalten der Webseitenautorisierung für öffentliche WeChat-Konten

Implementierungsschritte zum Erhalten der Webseitenautorisierung für öffentliche WeChat-Konten

PHPz
PHPzOriginal
2017-04-02 16:08:222747Durchsuche

Entwickeln Sie offizielle Dokumente auf der Grundlage des öffentlichen WeChat-Kontos:

Die Schritte zum Erhalten von Benutzerinformationen sind wie folgt:

1 Schritt 1: Der Benutzer stimmt der Autorisierung und dem Erhalt des Codes zu
2 Schritt 2: Tauschen Sie den Code gegen den Zugriffstoken für die Webseitenautorisierung aus
3 Schritt 3: Aktualisieren Sie den Zugriffstoken (falls erforderlich)
4 Schritt 4: Benutzerinformationen abrufen (Bereich snsapi_userinfo erforderlich)

1 Code abrufen

Unter der Voraussetzung, dass das öffentliche WeChat-Konto über die Berechtigungen des Autorisierungsbereichs (Bereichsparameter) verfügt (das Dienstkonto erhält erweiterte Interface hat standardmäßig snsapi_base und snsapi_userinfo im Bereichsparameter).

Wenn die Meldung „Auf den Link kann nicht zugegriffen werden“ angezeigt wird, überprüfen Sie bitte, ob die Parameter falsch ausgefüllt sind und ob Sie über die entsprechenden Autorisierungsumfangsberechtigungen verfügen

Besonderer Hinweis: Aufgrund der hohen Sicherheitsstufe von Autorisierungsvorgängen führt WeChat beim Initiieren einer Autorisierungsanfrage eine aus Regelmäßige starke Übereinstimmungsprüfung des Autorisierungslinks. Wenn die Reihenfolge der Parameter des Links nicht stimmt, ist die Autorisierungsseite nicht normal zugänglich.

Dazu gehören:

AppID – die eindeutige Kennung des offiziellen Kontos
REDIRECT_URI – Sprung-URL
SCOPE – der Wert ist snsapi_base (kein Popup. Die Autorisierungsseite springt direkt und kann nur die OpenID des Benutzers abrufen) oder snsapi_userinfo (die Autorisierungsseite wird angezeigt und Sie können den Spitznamen, das Geschlecht und den Standort über openid abrufen. Darüber hinaus können Sie die Informationen auch dann erhalten, wenn Sie dem Benutzer nicht folgen.
STATE – Entwickler können den Parameterwert anpassen von a-zA-Z0-9

2 Tauschen Sie den Code für die Webseitenautorisierung access_token aus

Wenn der Benutzer der Autorisierung zustimmt, springt die Seite. Gehen Sie zu „redirect_uri/?code=CODE&state=“. STATE.
state ist der STATE-Parameter, der so übergeben wird, wie er ist.

Implementierungscode:

<code class="hljs php">$code = I(&#39;get.code&#39;);
if (empty($code)) {
   //todo 非微信访问
   exit(&#39;</code>&#39;);
 }else{ //授权后操作 }

Hier können wir den Code abrufen, der später zum Abrufen des access_token verwendet wird.

Nachdem Sie den Code erhalten haben, fordern Sie den folgenden Link an, um das access_token zu erhalten:

appid – die eindeutige Kennung des offiziellen Kontos
geheim – der Schlüssel
Code – oben Das zurückgegebene Code
grant_type – der Wert ist Authorization_code

Implementierungscode:

<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>

Hier kann das Zugriffstoken zwischengespeichert werdenum häufige Erfassung zu vermeiden
Implementierungscode, übernehmen Das TP-Framework als Beispiel:

<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>

Nach Erhalt des access_token wird auch openid (die eindeutige Kennung des Benutzers) zurückgegeben. Die Erklärung des offiziellen Dokuments lautet: Die eindeutige Kennung des Benutzers Der Benutzer folgt nicht dem offiziellen Konto. Wenn der Benutzer die Webseite des offiziellen Kontos besucht, wird auch eine für den Benutzer und das offizielle Konto eindeutige OpenID generiert.

openid identifiziert den WeChat-Benutzer eindeutig Der Benutzer meldet sich nicht zum ersten Mal an. Nachdem Sie die OpenID erhalten haben, fragen Sie ab, ob ein Benutzer an diese OpenID in der Datenbank gebunden ist. Dann müssen Sie die Benutzerdaten nicht erneut abrufen Erhalten Sie die Datenbank-Benutzer-ID-Einstellungen Sitzung und melden Sie sich direkt an, um darauf zuzugreifen

3 Ignorieren Sie den dritten Schritt und rufen Sie das Zugriffstoken nur bei Bedarf erneut ab

4 Ziehen Sie Benutzerinformationen ab (benötigt). um den Geltungsbereich snsapi_userinfo zu haben)

Es gibt keine Bindung dieses WeChat-ID-Benutzers in der Datenbank. Als nächstes entspricht dies dem ersten Besuch und der ersten Anmeldung des Benutzers, und die Benutzerinformationen werden im vierten Schritt abgerufen (in diesem Fall). Nach der Benutzerautorisierung ist der Webseitenautorisierungsbereich snsapi_userinfo. Anschließend kann der Entwickler die Benutzerinformationen über access_token und openid abrufen. Erstellen Sie dann im Hintergrund einen Benutzer und binden Sie diesen WeChat-Benutzer

(über openid). )


Anfragemethode

http: GET (Bitte verwenden Sie das https-Protokoll)

access_token – das oben erhaltene access_token

openid – die eindeutige Kennung des öffentlichen Kontos

Das obige ist der detaillierte Inhalt vonImplementierungsschritte zum Erhalten der Webseitenautorisierung für öffentliche WeChat-Konten. 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