Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Entwicklung der PHP-WeChat-Webseitenautorisierung
In diesem Artikel wird hauptsächlich die Entwicklung der PHP-WeChat-Webseitenautorisierung vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
Die WeChat-Webseitenautorisierung ist eine erweiterte Funktion, die nur für Dienstkonten verfügbar ist. Entwickler können grundlegende Informationen von Benutzern durch Autorisierung erhalten. Bisher war die einzige Möglichkeit, Nachrichteninformationen zu erhalten, wenn der Benutzer mit dem Beamten interagierte Benutzerinformationen abrufen; durch die Autorisierung der WeChat-Webseite können die grundlegenden Informationen des Benutzers abgerufen werden, ohne dass eine Nachrichteninteraktion oder Aufmerksamkeit erforderlich ist.
Die Autorisierung der WeChat-Webseite erfolgt über OAuth2.0. Der gesamte Prozess ist in drei Schritte unterteilt:
Benutzer autorisiert und erhält Code;
Zugriffs-Token gemäß Code erhalten [kann durch Aktualisierung des_Tokens eine längere Gültigkeitsdauer erhalten]
Benutzerinformationen über access_token und openid abrufen
Eine einfache Zusammenfassung des WeChat-Webseiten-Autorisierungsprozesses:
<?php /** * 微信授权相关接口 */ class Wechat { //高级功能-》开发者模式-》获取 private $app_id = 'xxx'; private $app_secret = 'xxxxxxx'; /** * 获取微信授权链接 * * @param string $redirect_uri 跳转地址 * @param mixed $state 参数 */ public function get_authorize_url($redirect_uri = '', $state = '') { $redirect_uri = urlencode($redirect_uri); return "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->app_id}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state={$state}#wechat_redirect"; } /** * 获取授权token * * @param string $code 通过get_authorize_url获取到的code */ public function get_access_token($app_id = '', $app_secret = '', $code = '') { $token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$this->app_id}&secret={$this->app_secret}&code={$code}&grant_type=authorization_code"; $token_data = $this->http($token_url); if($token_data[0] == 200) { return json_decode($token_data[1], TRUE); } return FALSE; } /** * 获取授权后的微信用户信息 * * @param string $access_token * @param string $open_id */ public function get_user_info($access_token = '', $open_id = '') { if($access_token && $open_id) { $info_url = "https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$open_id}&lang=zh_CN"; $info_data = $this->http($info_url); if($info_data[0] == 200) { return json_decode($info_data[1], TRUE); } } return FALSE; } public function http($url, $method, $postfields = null, $headers = array(), $debug = false) { $ci = curl_init(); /* Curl settings */ curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ci, CURLOPT_TIMEOUT, 30); curl_setopt($ci, CURLOPT_RETURNTRANSFER, true); switch ($method) { case 'POST': curl_setopt($ci, CURLOPT_POST, true); if (!empty($postfields)) { curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields); $this->postdata = $postfields; } break; } curl_setopt($ci, CURLOPT_URL, $url); curl_setopt($ci, CURLOPT_HTTPHEADER, $headers); curl_setopt($ci, CURLINFO_HEADER_OUT, true); $response = curl_exec($ci); $http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE); if ($debug) { echo "=====post data======\r\n"; var_dump($postfields); echo '=====info=====' . "\r\n"; print_r(curl_getinfo($ci)); echo '=====$response=====' . "\r\n"; print_r($response); } curl_close($ci); return array($http_code, $response); } }
Zusammenfassung: Das ist es für diesen Artikel Der gesamte Inhalt des Artikels soll für das Studium aller hilfreich sein.
Verwandte Empfehlungen:
Detaillierte Erläuterung der Konvertierung zwischen Arrays und XML, die von PHP verarbeitet werden
Detaillierte Erläuterung der Methoden und Beispiele für die Verwendung von PHP-Schleifen
Detaillierte Erläuterung der Methoden und Beispiele für den PHP-Dateibetrieb
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Entwicklung der PHP-WeChat-Webseitenautorisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!