Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Schritte zur Implementierung der WeChat-Anmeldefunktion mit PHP

Detaillierte Schritte zur Implementierung der WeChat-Anmeldefunktion mit PHP

PHPz
PHPzOriginal
2023-04-04 10:40:532610Durchsuche

Mit dem Aufkommen sozialer Netzwerke und der Beliebtheit von Smartphones ist WeChat in den letzten Jahren zu einem unverzichtbaren Bestandteil des täglichen Lebens der Menschen geworden. Im Bereich Internetanwendungen ist die Implementierung der WeChat-Anmeldefunktion ein sehr notwendiger Bestandteil. Wie wir alle wissen, verwendet der Autorisierungsmechanismus von WeChat den OAuth 2.0-Autorisierungsmechanismus, was die Implementierung unserer WeChat-Anmeldefunktion sehr bequem macht. Im Folgenden stellen wir detailliert vor, wie die WeChat-Anmeldefunktion über die PHP-Sprache implementiert wird.

1. Konfiguration der WeChat-Entwicklungsplattform

  1. Melden Sie sich bei [WeChat Open Platform] (https://open.weixin.qq.com) an, um ein Konto zu registrieren. Rufen Sie nach Abschluss der Registrierung das WeChat Open Platform Management Center auf .
  2. Klicken Sie auf der mittleren Seite auf das Menü „Offizielles Konto verwalten“ und geben Sie die offiziellen WeChat-Kontoinformationen ein, auf die zugegriffen werden muss.
  3. Nach der Authentifizierung durch die WeChat Open Platform müssen wir die AppID und das AppSecret der WeChat Open Platform erhalten und diese im Anmeldecode aufzeichnen. Melden Sie sich bei [WeChat Open Platform] (https://open.weixin.qq.com) an, betreten Sie das Management Center, wählen Sie „Mobile Anwendung“ und dann „Mobile Anwendung hinzufügen“.
  4. Geben Sie die grundlegenden Informationen der mobilen Anwendung ein und reichen Sie sie zur Überprüfung ein. Nach der Überprüfung und Genehmigung können Sie die AppID und das AppSecret erhalten.

2. PHP-Code-Implementierung

  1. WeChat-Anmeldelink erstellen
<?php
$appid = “your_appid”; //appid
$redirect_uri = urlencode(&#39;http://yourdomain.com/login.php&#39;); //登录成功回调网址,请确保此地址跟公众号设置的授权回调页面路径一致。
$scope = &#39;snsapi_userinfo&#39;; //snsapi_base 或 snsapi_userinfo
$url = &#39;https://open.weixin.qq.com/connect/oauth2/authorize?appid=&#39; . $appid . &#39;&redirect_uri=&#39; . $redirect_uri . &#39;&response_type=code&scope=&#39; . $scope . &#39;&state=STATE#wechat_redirect&#39;;
header(&#39;Location:&#39; . $url);
exit;
?>

Im obigen Code müssen wir die Parameter $appid, $redirect_uri und $scope ausfüllen. Darunter ist $appid die uns von der offenen WeChat-Plattform zugewiesene AppID; $redirect_uri ist die Rückruf-URL nach der Benutzerautorisierung, die mit der vom offiziellen Konto festgelegten Autorisierungsrückrufseite übereinstimmen muss; snsapi_userinfo: Ersteres kann nur die openid des Benutzers abrufen, und letzteres kann die grundlegenden Informationen des Benutzers abrufen.

  1. Access_token und openid abrufen
<?php
$appid = &#39;your_appid&#39;; //appid
$secret = &#39;your_appsecret&#39;; //appsecret
$code = $_GET[&#39;code&#39;]; //网页授权code
$access_token_url = &#39;https://api.weixin.qq.com/sns/oauth2/access_token?appid=&#39; . $appid . &#39;&secret=&#39; . $secret . &#39;&code=&#39; . $code . &#39;&grant_type=authorization_code&#39;; //获取access_token和openid的链接
$access_token = file_get_contents($access_token_url);
$access_token_arr = json_decode($access_token, true); //将返回的json字符串转为数组
?>

In diesem Code übergeben wir den vom Benutzer nach erfolgreicher Autorisierung zurückgegebenen Code und übergeben den Code dann an den WeChat-Server, um access_token und openid zu erhalten.

  1. Grundlegende Informationen des Benutzers abrufen
<?php
$access_token = $access_token_arr[&#39;access_token&#39;];
$openid = $access_token_arr[&#39;openid&#39;];
$user_info_url = &#39;https://api.weixin.qq.com/sns/userinfo?access_token=&#39; . $access_token . &#39;&openid=&#39; . $openid . &#39;&lang=zh_CN&#39;; //获取用户信息的链接
$user_info = file_get_contents($user_info_url);
$user_info_arr = json_decode($user_info, true); //将返回的json字符串转为数组
?>

In diesem Code verwenden wir access_token und openid, um die grundlegenden Informationen des Benutzers abzurufen, z. B. Benutzername, Geschlecht, Stadt usw. Es ist zu beachten, dass wir vor dem Erhalt der grundlegenden Informationen des Benutzers sicherstellen müssen, dass der Benutzer den Bereich für snsapi_userinfo autorisiert hat.

  1. Vollständiger Login-Beispielcode
<?php
if (!isset($_GET[&#39;code&#39;]) || empty($_GET[&#39;code&#39;])) {
    //第一步:用户同意授权,获取code
    $appid = &#39;your_appid&#39;;
    $redirect_uri = urlencode(&#39;http://yourdomain.com/login.php&#39;);
    $scope = &#39;snsapi_userinfo&#39;;
    $url = &#39;https://open.weixin.qq.com/connect/oauth2/authorize?appid=&#39; . $appid . &#39;&redirect_uri=&#39; . $redirect_uri . &#39;&response_type=code&scope=&#39; . $scope . &#39;&state=STATE#wechat_redirect&#39;;
    header(&#39;Location:&#39; . $url);
    exit;
} else {
    //第二步:通过code换取网页授权access_token以及openid,再获取用户信息
    $appid = &#39;your_appid&#39;;
    $secret = &#39;your_appsecret&#39;;
    $code = $_GET[&#39;code&#39;];
    $access_token_url = &#39;https://api.weixin.qq.com/sns/oauth2/access_token?appid=&#39; . $appid . &#39;&secret=&#39; . $secret . &#39;&code=&#39; . $code . &#39;&grant_type=authorization_code&#39;;
    $access_token = file_get_contents($access_token_url);
    $access_token_arr = json_decode($access_token, true);
    $access_token = $access_token_arr[&#39;access_token&#39;];
    $openid = $access_token_arr[&#39;openid&#39;];
    $user_info_url = &#39;https://api.weixin.qq.com/sns/userinfo?access_token=&#39; . $access_token . &#39;&openid=&#39; . $openid . &#39;&lang=zh_CN&#39;;
    $user_info = file_get_contents($user_info_url);
    $user_info_arr = json_decode($user_info, true);

    //TODO:在这里可以将用户信息存入数据库,供之后使用
    //......
}
?>

3. Zusammenfassung

Wie oben erwähnt, können wir mit ein paar einfachen Schritten die PHP-Sprache verwenden, um die WeChat-Anmeldefunktion zu implementieren. In diesem Artikel wird nur die grundlegendste Implementierungsmethode der WeChat-Anmeldung vorgestellt. Bei der tatsächlichen Anwendung gibt es weitere Aspekte, die beachtet werden müssen, z. B. die Beurteilung der Benutzerberechtigungen, die Gültigkeitsdauer der Autorisierung usw. Ich hoffe, dass dieser Artikel Entwicklern helfen kann, die die WeChat-Anmeldung implementieren müssen.

Das obige ist der detaillierte Inhalt vonDetaillierte Schritte zur Implementierung der WeChat-Anmeldefunktion mit PHP. 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