


Wie autorisiert das ThinkPHP5-Framework ?ffentliche WeChat-Kontowebseiten?
Apr 14, 2023 am 11:21 AMDa offizielle WeChat-Konten immer beliebter werden, beginnen immer mehr Menschen, ihre eigenen offiziellen Konten zu erstellen. Unter diesen ist die Webseitenautorisierung eine g?ngige Entwicklungsmethode bei der Entwicklung ?ffentlicher Konten. In diesem Artikel wird erl?utert, wie Sie das ThinkPHP5-Framework zum Autorisieren ?ffentlicher WeChat-Kontowebseiten verwenden.
1. Registrieren Sie ein ?ffentliches Konto und erhalten Sie AppID und AppSecret
Bevor Sie die WeChat-Webseite für ?ffentliche Konten autorisieren, müssen Sie zun?chst ein ?ffentliches WeChat-Konto registrieren und Entwicklerberechtigungen beantragen. Nach erfolgreicher Beantragung k?nnen Sie im ?Developer Center“ die beiden wichtigen Parameter AppID und AppSecret erhalten.
2. ?ffentliche Kontoinformationen konfigurieren
Im ThinkPHP5-Framework k?nnen wir eine neue wechat.php-Datei im Konfigurationsverzeichnis erstellen, um unsere ?ffentlichen Kontokonfigurationsinformationen zu speichern. In dieser Datei müssen wir die folgenden Informationen konfigurieren:
<?php return [ 'app_id' =>?'your?appid', ????'app_secret'?=>?'your?appsecret', ????'auth_redirect'?=>?'your?callback?url', ];
Darunter:
-
app_id
undapp_secret
sind die Parameter, die wir in der offiziellen Kontoverwaltungsoberfl?che erhalten haben. -
auth_redirect
是微信網(wǎng)頁(yè)授權(quán)后的回調(diào)地址,要求必須是公網(wǎng)可訪問(wèn)的URL地址。
app_id
和app_secret
是我們?cè)诠娞?hào)管理界面獲得的參數(shù)。三、獲取網(wǎng)頁(yè)授權(quán)url
在我們調(diào)用微信網(wǎng)頁(yè)授權(quán)接口前,需要構(gòu)造網(wǎng)頁(yè)授權(quán)url。我們可以在控制器中添加以下代碼:
$config?=?config('wechat'); $url?=?'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' ????????.?$config['app_id'] ????????.?'&redirect_uri=' ????????.?urlencode($config['auth_redirect']) ????????.?'&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect';
以上代碼中,我們通過(guò)config函數(shù)獲取到了之前配置的公眾號(hào)信息,并構(gòu)造了一個(gè)微信網(wǎng)頁(yè)授權(quán)的URI。其中,response_type=code
表示使用code方式進(jìn)行授權(quán),scope=snsapi_userinfo
表示授權(quán)范圍為獲取用戶(hù)基本信息。
四、獲取網(wǎng)頁(yè)授權(quán)code
構(gòu)造好網(wǎng)頁(yè)授權(quán)的URL后,我們需要跳轉(zhuǎn)該URL,進(jìn)行授權(quán)。授權(quán)成功后,微信服務(wù)器會(huì)將code參數(shù)通過(guò)GET方式傳遞回來(lái)。我們可以在控制器中添加以下代碼,用于獲取code。
if?(isset($_GET['code']))?{ ????$code?=?$_GET['code']; }?else?{ ????$this->redirect($url); }
以上代碼中,我們首先判斷URL中是否包含了code參數(shù)。如果有,則表示用戶(hù)已經(jīng)授權(quán)成功,我們將獲取到的code存儲(chǔ)起來(lái),以便后續(xù)使用。如果沒(méi)有,則需要進(jìn)行跳轉(zhuǎn),進(jìn)行網(wǎng)頁(yè)授權(quán)。
五、獲取用戶(hù)access_token和openId
在授權(quán)成功后,后續(xù)的操作需要用到access_token和openId。我們可以在控制器中添加以下代碼,用于獲取用戶(hù)的access_token和openId。
$accessTokenUrl?=?'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' ????????????????????.?$config['app_id'] ????????????????????.?'&secret=' ????????????????????.?$config['app_secret'] ????????????????????.?'&code=' ????????????????????.?$code ????????????????????.?'&grant_type=authorization_code'; $accessTokenResponse?=?json_decode(file_get_contents($accessTokenUrl),?true); if?(isset($accessTokenResponse['errcode']))?{ ????throw?new?\Exception('ERROR?'?.?$accessTokenResponse['errcode']?.?':?'?.?$accessTokenResponse['errmsg']); } $accessToken?=?$accessTokenResponse['access_token']; $openId?=?$accessTokenResponse['openid'];
以上代碼中,我們首先構(gòu)造了一個(gè)請(qǐng)求access_token的URL,并向該URL發(fā)送了請(qǐng)求,獲取到了響應(yīng)結(jié)果。如果響應(yīng)結(jié)果中包含了errcode
,則表示請(qǐng)求出現(xiàn)了錯(cuò)誤,我們將拋出一個(gè)異常;否則,我們將獲取到的access_token和openId存儲(chǔ)起來(lái),以便后續(xù)使用。
六、獲取用戶(hù)詳細(xì)信息
在獲取到用戶(hù)的access_token和openId后,我們可以通過(guò)以下代碼,獲取到用戶(hù)的詳細(xì)信息:
$userInfoUrl?=?'https://api.weixin.qq.com/sns/userinfo?access_token=' ????????????????.?$accessToken ????????????????.?'&openid=' ????????????????.?$openId ????????????????.?'&lang=zh_CN'; $userInfoResponse?=?json_decode(file_get_contents($userInfoUrl),?true); if?(isset($userInfoResponse['errcode']))?{ ????throw?new?\Exception('ERROR?'?.?$userInfoResponse['errcode']?.?':?'?.?$userInfoResponse['errmsg']); }
以上代碼中,我們構(gòu)造了一個(gè)請(qǐng)求用戶(hù)信息的URL,并向該URL發(fā)送了請(qǐng)求,獲取到了響應(yīng)結(jié)果。如果響應(yīng)結(jié)果中包含了errcode
auth_redirect
ist die Rückrufadresse nach der Autorisierung der WeChat-Webseite. Es muss eine URL-Adresse sein, auf die über das ?ffentliche Netzwerk zugegriffen werden kann.
response_type=code
die Verwendung der Codemethode zur Autorisierung, und scope=snsapi_userinfo
bedeutet, dass der Umfang der Autorisierung darin besteht, grundlegende Benutzerinformationen zu erhalten. ????4. Erhalten Sie den Webseiten-Autorisierungscode????Nachdem wir die Webseiten-Autorisierungs-URL erstellt haben, müssen wir zur Autorisierung zur URL springen. Nach erfolgreicher Autorisierung gibt der WeChat-Server den Codeparameter über GET zurück. Wir k?nnen den folgenden Code in den Controller einfügen, um den Code zu erhalten. ??rrreee??Im obigen Code ermitteln wir zun?chst, ob die URL den Codeparameter enth?lt. Wenn dies der Fall ist, bedeutet dies, dass der Benutzer erfolgreich autorisiert wurde und wir den erhaltenen Code für die sp?tere Verwendung speichern. Wenn nicht, müssen Sie springen und eine Webseitenautorisierung durchführen. ????5. Erhalten Sie den Benutzer-Access_token und die openId. Nach erfolgreicher Autorisierung sind für nachfolgende Vorg?nge access_token und openId erforderlich. Wir k?nnen den folgenden Code im Controller hinzufügen, um das access_token und die openId des Benutzers abzurufen. ??rrreee??Im obigen Code haben wir zun?chst eine URL zur Anforderung von access_token erstellt, eine Anfrage an die URL gesendet und das Antwortergebnis erhalten. Wenn das Antwortergebnis errcode
enth?lt, bedeutet dies, dass in der Anfrage ein Fehler vorliegt und wir eine Ausnahme ausl?sen. Andernfalls speichern wir das erhaltene access_token und die openId für die sp?tere Verwendung. ????6. Benutzerdetails abrufen????Nachdem wir das access_token und die openId des Benutzers erhalten haben, k?nnen wir die detaillierten Informationen des Benutzers über den folgenden Code abrufen: ??rrreee??Im obigen Code erstellen wir eine URL, die Benutzerinformationen anfordert. Eine Anfrage wurde gesendet auf die URL und das Antwortergebnis wurde erhalten. Wenn die Antwort errcode
enth?lt, bedeutet dies, dass in der Anfrage ein Fehler vorliegt und wir eine Ausnahme ausl?sen. ????Zu diesem Zeitpunkt haben wir den Prozess der Autorisierung der offiziellen WeChat-Konto-Webseite erfolgreich abgeschlossen! ??Das obige ist der detaillierte Inhalt vonWie autorisiert das ThinkPHP5-Framework ?ffentliche WeChat-Kontowebseiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)