ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP5 フレームワークはどのように WeChat パブリック アカウント Web ページを承認しますか?

ThinkPHP5 フレームワークはどのように WeChat パブリック アカウント Web ページを承認しますか?

PHPz
PHPzオリジナル
2023-04-14 11:21:331525ブラウズ

WeChat 公開アカウントの人気が高まるにつれ、独自の公開アカウントを作成する人が増えています。その中でも、Web ページの認証はパブリック アカウントの開発において一般的な開発方法です。この記事では、ThinkPHP5 フレームワークを使用して WeChat パブリック アカウント Web ページを認証する方法を紹介します。

1. パブリック アカウントを登録し、AppID と AppSecret を取得する

WeChat パブリック アカウント Web ページを承認する前に、まず WeChat パブリック アカウントを登録し、開発者権限を申請する必要があります。アプリケーションが成功すると、「デベロッパー センター」で 2 つの重要なパラメーター AppID と AppSecret を取得できます。

2. パブリック アカウント情報の構成

ThinkPHP5 フレームワークでは、config ディレクトリに新しい wechat.php ファイルを作成して、パブリック アカウントの構成情報を保存できます。このファイルでは、次の情報を設定する必要があります:

<?php
return [
    &#39;app_id&#39; => 'your appid',
    'app_secret' => 'your appsecret',
    'auth_redirect' => 'your callback url',
];

その中で:

  • app_idapp_secret は私たちが管理するものです公式アカウントではインターフェースによって取得されるパラメータ。
  • auth_redirect は、WeChat Web ページの承認後のコールバック アドレスであり、パブリック ネットワークからアクセスできる URL アドレスである必要があります。

3. Web ページ認証 URL を取得する

WeChat Web ページ認証インターフェイスを呼び出す前に、Web ページ認証 URL を構築する必要があります。次のコードをコントローラーに追加できます。

$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';

上記のコードでは、config 関数を通じて以前に構成された公開アカウント情報を取得し、WeChat Web ページによって承認された URI を構築しました。このうち、response_type=code は認可にコードを使用することを意味し、scope=snsapi_userinfo は認可の範囲が基本的なユーザー情報の取得であることを意味します。

4. Web ページの認証コードを取得する

Web ページの認証 URL を構築した後、認証のためにその URL にジャンプする必要があります。認証が成功すると、WeChat サーバーは GET を通じてコード パラメーターを返します。コードを取得するには、コントローラーに次のコードを追加します。

if (isset($_GET['code'])) {
    $code = $_GET['code'];
} else {
    $this->redirect($url);
}

上記のコードでは、まず URL に code パラメーターが含まれているかどうかを判断します。存在する場合、ユーザーが正常に認証されたことを意味し、取得したコードは後で使用するために保存されます。そうでない場合は、ジャンプして Web ページの認証を実行する必要があります。

5. ユーザーの access_token と openId を取得する

認可に成功した後、後続の操作には access_token と openId が必要です。コントローラーに次のコードを追加して、ユーザーの access_token と openId を取得できます。

$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'];

上記のコードでは、まず、access_token を要求する URL を構築し、その URL にリクエストを送信し、応答結果を取得しました。応答結果に errcode が含まれている場合は、リクエストにエラーがあることを意味し、例外をスローします。それ以外の場合は、取得した access_token と openId を後で使用するために保存します。

6. ユーザーの詳細情報を取得する

ユーザーの access_token と openId を取得した後、次のコードを通じてユーザーの詳細情報を取得できます:

$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']);
}

上記のコードでは、ユーザー情報を要求するURLを構築し、そのURLに対してリクエストを送信し、レスポンス結果を取得します。応答に errcode が含まれている場合は、リクエストにエラーがあることを意味し、例外がスローされます。

この時点で、WeChat 公式アカウント Web ページの承認プロセスが正常に完了しました。

以上がThinkPHP5 フレームワークはどのように WeChat パブリック アカウント Web ページを承認しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。