Rumah  >  Artikel  >  rangka kerja php  >  Bagaimanakah rangka kerja ThinkPHP5 membenarkan halaman web akaun awam WeChat?

Bagaimanakah rangka kerja ThinkPHP5 membenarkan halaman web akaun awam WeChat?

PHPz
PHPzasal
2023-04-14 11:21:331525semak imbas

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 [
    &#39;app_id&#39; => '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!

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