WeChat 公開アカウントの人気が高まるにつれ、独自の公開アカウントを作成する人が増えています。その中でも、Web ページの認証はパブリック アカウントの開発において一般的な開発方法です。この記事では、ThinkPHP5 フレームワークを使用して WeChat パブリック アカウント Web ページを認証する方法を紹介します。
1. パブリック アカウントを登録し、AppID と AppSecret を取得する
WeChat パブリック アカウント Web ページを承認する前に、まず WeChat パブリック アカウントを登録し、開発者権限を申請する必要があります。アプリケーションが成功すると、「デベロッパー センター」で 2 つの重要なパラメーター AppID と AppSecret を取得できます。
2. パブリック アカウント情報の構成
ThinkPHP5 フレームワークでは、config ディレクトリに新しい wechat.php ファイルを作成して、パブリック アカウントの構成情報を保存できます。このファイルでは、次の情報を設定する必要があります:
<?php return [ 'app_id' => 'your appid', 'app_secret' => 'your appsecret', 'auth_redirect' => 'your callback url', ];
その中で:
app_id
と app_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 サイトの他の関連記事を参照してください。