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
2. Pelaksanaan kod PHP
<?php $appid = “your_appid”; //appid $redirect_uri = urlencode('http://yourdomain.com/login.php'); //登录成功回调网址,请确保此地址跟公众号设置的授权回调页面路径一致。 $scope = 'snsapi_userinfo'; //snsapi_base 或 snsapi_userinfo $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope=' . $scope . '&state=STATE#wechat_redirect'; header('Location:' . $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.
<?php $appid = 'your_appid'; //appid $secret = 'your_appsecret'; //appsecret $code = $_GET['code']; //网页授权code $access_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid . '&secret=' . $secret . '&code=' . $code . '&grant_type=authorization_code'; //获取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.
<?php $access_token = $access_token_arr['access_token']; $openid = $access_token_arr['openid']; $user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $access_token . '&openid=' . $openid . '&lang=zh_CN'; //获取用户信息的链接 $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.
<?php if (!isset($_GET['code']) || empty($_GET['code'])) { //第一步:用户同意授权,获取code $appid = 'your_appid'; $redirect_uri = urlencode('http://yourdomain.com/login.php'); $scope = 'snsapi_userinfo'; $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope=' . $scope . '&state=STATE#wechat_redirect'; header('Location:' . $url); exit; } else { //第二步:通过code换取网页授权access_token以及openid,再获取用户信息 $appid = 'your_appid'; $secret = 'your_appsecret'; $code = $_GET['code']; $access_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid . '&secret=' . $secret . '&code=' . $code . '&grant_type=authorization_code'; $access_token = file_get_contents($access_token_url); $access_token_arr = json_decode($access_token, true); $access_token = $access_token_arr['access_token']; $openid = $access_token_arr['openid']; $user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $access_token . '&openid=' . $openid . '&lang=zh_CN'; $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!