Apabila akaun rasmi WeChat menjadi semakin popular, semakin ramai orang mula membuat akaun rasmi mereka sendiri. Antaranya, kebenaran halaman web adalah kaedah pembangunan biasa dalam pembangunan akaun awam. Artikel ini akan memperkenalkan cara menggunakan rangka kerja ThinkPHP5 untuk membenarkan halaman web akaun awam WeChat.
1. Daftar akaun awam dan dapatkan AppID dan AppSecret
Sebelum membenarkan halaman web akaun awam WeChat, anda perlu mendaftar akaun awam WeChat dan memohon kebenaran pembangun. Selepas aplikasi berjaya, anda boleh mendapatkan dua parameter penting AppID dan AppSecret dalam "Pusat Pembangun".
2. Konfigurasikan maklumat akaun awam
Dalam rangka kerja ThinkPHP5, kami boleh mencipta fail wechat.php baharu dalam direktori konfigurasi untuk menyimpan maklumat konfigurasi akaun awam kami. Dalam fail ini, kami perlu mengkonfigurasi maklumat berikut:
<?php return [ 'app_id' => 'your appid', 'app_secret' => 'your appsecret', 'auth_redirect' => 'your callback url', ];
Antaranya:
app_id
dan app_secret
ialah parameter yang kami perolehi dalam pengurusan akaun rasmi antara muka. auth_redirect
ialah alamat panggilan balik selepas kebenaran halaman web WeChat Ia mestilah alamat URL yang boleh diakses daripada rangkaian awam. 3. Dapatkan url kebenaran halaman web
Sebelum kami memanggil antara muka kebenaran halaman web WeChat, kami perlu membina url kebenaran halaman web. Kami boleh menambah kod berikut dalam pengawal:
$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';
Dalam kod di atas, kami memperoleh maklumat akaun awam yang dikonfigurasikan sebelum ini melalui fungsi konfigurasi dan membina URI yang dibenarkan oleh halaman web WeChat. Antaranya, response_type=code
menunjukkan penggunaan kod untuk kebenaran, dan scope=snsapi_userinfo
menunjukkan bahawa skop kebenaran adalah untuk mendapatkan maklumat pengguna asas.
4. Dapatkan kod kebenaran halaman web
Selepas membina URL kebenaran halaman web, kami perlu melompat ke URL untuk mendapatkan kebenaran. Selepas kebenaran berjaya, pelayan WeChat akan menghantar semula parameter kod melalui GET. Kita boleh menambah kod berikut dalam pengawal untuk mendapatkan kod.
if (isset($_GET['code'])) { $code = $_GET['code']; } else { $this->redirect($url); }
Dalam kod di atas, kami mula-mula menentukan sama ada URL mengandungi parameter kod. Jika ada, ini bermakna pengguna telah diberi kuasa dengan jayanya, dan kami akan menyimpan kod yang diperoleh untuk kegunaan seterusnya. Jika tidak, anda perlu melompat dan melaksanakan kebenaran halaman web.
5. Dapatkan akses_token dan openId pengguna
Selepas kebenaran berjaya, access_token dan openId diperlukan untuk operasi seterusnya. Kita boleh menambah kod berikut dalam pengawal untuk mendapatkan akses_token dan openId pengguna.
$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'];
Dalam kod di atas, kami mula-mula membina URL yang meminta access_token, menghantar permintaan ke URL dan mendapatkan hasil respons. Jika hasil respons mengandungi errcode
, ini bermakna terdapat ralat dalam permintaan dan kami akan membuang pengecualian jika tidak, kami akan menyimpan access_token dan openId yang diperoleh untuk kegunaan seterusnya.
6. Dapatkan butiran pengguna
Selepas mendapatkan akses_token dan openId pengguna, kami boleh mendapatkan maklumat terperinci pengguna melalui kod berikut:
$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']); }
Dalam kod di atas , kami membina URL untuk meminta maklumat pengguna, menghantar permintaan ke URL dan memperoleh hasil respons. Jika respons mengandungi errcode
, ini bermakna terdapat ralat dengan permintaan dan kami akan membuang pengecualian.
Pada ketika ini, kami telah berjaya menyelesaikan proses membenarkan halaman web akaun rasmi WeChat!
Atas ialah kandungan terperinci Bagaimanakah rangka kerja ThinkPHP5 membenarkan halaman web akaun awam WeChat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!