Rumah >pembangunan bahagian belakang >tutorial php >Langkah terperinci untuk melaksanakan fungsi log masuk WeChat menggunakan PHP

Langkah terperinci untuk melaksanakan fungsi log masuk WeChat menggunakan PHP

PHPz
PHPzasal
2023-04-04 10:40:532594semak imbas

Dalam beberapa tahun kebelakangan ini, dengan peningkatan rangkaian sosial dan populariti telefon pintar, WeChat telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian orang ramai. Dalam bidang aplikasi Internet, melaksanakan fungsi log masuk WeChat adalah bahagian yang sangat diperlukan. Seperti yang kita sedia maklum, mekanisme keizinan WeChat menggunakan mekanisme keizinan OAuth 2.0, yang memberikan kemudahan besar kepada pelaksanaan fungsi log masuk WeChat kami. Di bawah ini kami akan memperkenalkan secara terperinci bagaimana untuk melaksanakan fungsi log masuk WeChat melalui bahasa PHP.

1. Konfigurasi platform pembangunan WeChat

  1. Log masuk ke [WeChat Open Platform] (https://open.weixin.qq.com) untuk mendaftar akaun selesai, masukkan pusat pengurusan Platform Terbuka WeChat.
  2. Klik menu "Urus Akaun Rasmi" di halaman tengah dan masukkan maklumat akaun rasmi WeChat yang perlu diakses.
  3. Selepas disahkan oleh Platform Terbuka WeChat, kami perlu mendapatkan AppID dan AppSecret Platform Terbuka WeChat dan merekodkannya dalam kod log masuk. Log masuk ke [WeChat Open Platform](https://open.weixin.qq.com), masukkan pusat pengurusan, pilih "Aplikasi Mudah Alih", dan kemudian pilih "Tambah Aplikasi Mudah Alih".
  4. Isi maklumat asas aplikasi mudah alih dan serahkan untuk semakan Selepas semakan dan kelulusan, anda boleh mendapatkan AppID dan AppSecret.

2. Pelaksanaan kod PHP

  1. Membina pautan log masuk WeChat
<?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;
?>

Dalam kod di atas, kita perlu mengisi $ appid, $ redirect_uri dan $scope parameter. Antaranya, $appid ialah AppID yang diberikan kepada kami oleh platform terbuka WeChat $redirect_uri ialah URL panggilan balik selepas kebenaran pengguna, yang perlu konsisten dengan halaman panggil balik kebenaran yang ditetapkan oleh akaun rasmi $skop dibahagikan kepada snsapi_base; snsapi_userinfo, yang pertama hanya boleh mendapatkan openid pengguna, dan yang terakhir boleh mendapatkan maklumat asas pengguna.

  1. Dapatkan access_token dan buka
<?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字符串转为数组
?>

Dalam kod ini, kami menghantar kod yang dikembalikan oleh pengguna selepas kebenaran berjaya, dan kemudian menghantar kod ke pelayan WeChat , dengan itu Dapatkan access_token dan openid.

  1. Dapatkan maklumat asas pengguna
<?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字符串转为数组
?>

Dalam kod ini, kami menggunakan access_token dan openid untuk mendapatkan maklumat asas pengguna, seperti nama panggilan pengguna, jantina, bandar tunggu. Perlu diingat bahawa sebelum mendapatkan maklumat asas pengguna, kami perlu memastikan bahawa pengguna telah membenarkan skop untuk snsapi_userinfo.

  1. Kod contoh log masuk lengkap
<?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. Ringkasan

Seperti yang dinyatakan di atas, dalam beberapa langkah mudah, kita boleh menggunakan bahasa PHP untuk melaksanakan fungsi log masuk WeChat. Artikel ini hanya memperkenalkan kaedah pelaksanaan log masuk WeChat yang paling asas Dalam aplikasi sebenar, terdapat lebih banyak isu yang memerlukan perhatian, seperti pertimbangan kebenaran pengguna, tempoh sah kebenaran, dsb. Saya harap artikel ini dapat memberikan sedikit bantuan kepada pembangun yang perlu melaksanakan log masuk WeChat.

Atas ialah kandungan terperinci Langkah terperinci untuk melaksanakan fungsi log masuk WeChat menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn