WeChat 公開アカウントに基づいて公式ドキュメントを作成します:
ユーザー情報を取得する手順は次のとおりです:
1 ステップ 1: ユーザーはコードを認証して取得することに同意します
2 ステップ 2: Web ページ認証用のコードを交換します。 access_token
3 ステップ 3: access_token を更新する (必要な場合)
4 ステップ 4: ユーザー情報を取得する (スコープは snsapi_userinfo である必要があります)
1 コードを取得します
WeChat パブリック アカウントに承認スコープがあることを確認するという前提の下 (スコープパラメータ) (サービスアカウントが取得されます。高度な interface の後、デフォルトでスコープパラメータに snsapi_base と snsapi_userinfo が含まれます) ).
「リンクにアクセスできません」というメッセージが表示される場合は、パラメーターが正しく入力されているかどうか、およびスコープ パラメーターに対応する承認スコープの権限があるかどうかを確認してください。
特記事項: セキュリティ レベルが高いため。承認操作の際、承認リクエストを開始するときに、WeChat は承認リンクに対して定期的な強力な一致チェックを実行し、リンクのパラメーターが間違った順序である場合、承認ページにアクセスできないことを確認します
:
AppID - 公式アカウントの一意の識別子
REDIRECT_URI - ジャンプ URL
SCOPE - 値は snsapi_base (認証ページはポップアップせず、直接ジャンプし、ユーザーの openid のみを取得できます) または snsapi_userinfo (認証ページ)というメッセージが表示され、openid を通じてニックネーム、性別、所在地が取得できます。また、ユーザーがフォローしていなくても、ユーザーが許可すれば情報を取得できます)
STATE - 開発者 をカスタマイズできます。 a-zA-Z0-9
2のパラメータ値を取得し、Webページ認可のコードを交換しますaccess_token
ユーザーが認可に同意すると、ページはredirect_uri/?code=CODE&state=STATEにジャンプします
stateはSTATEです上記のパラメータはそのまま渡されます
実装コード:
<code class="hljs php">$code = I('get.code'); if (empty($code)) { //todo 非微信访问 exit('</code>'); }else{ //授权后操作 }
ここで、access_token を取得するためのコードを取得できます。コードを取得した後、次のリンクをリクエストして access_token を取得します。公式アカウントの一意の識別子
Secret - keycode - 上記で返されるコード
grant_type - 値は authorization_code です
実装コード:
<code class="hljs bash">$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret'); $str = file_get_contents($url); $str = json_decode($str, true); $access_token = $str['access_token'];</code>
頻繁な取得を避けるために
実装コードを取得します例として TP フレームワーク:
<code class="hljs php">$access_token = S('access_token'); if (empty($access_token)) { $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret'); $str = file_get_contents($url); $str = json_decode($str, true); $access_token = $str['access_token']; S('access_token', $access_token, 3600); }</code>
クエリ
することができます。 openid を使用して、この openid にバインドされているユーザーが存在するかどうかを確認します。後でユーザー データを再取得する必要はありません。データベースの user_id 設定
を直接取得し、直接ログインしてアクセスします 3 3 番目の手順は無視します。 、必要な場合にのみ access_token を再取得します 4 データベース内のユーザー情報を取得します (スコープ snsapi_userinfo が必要です)
この WeChat ID ユーザー バインディングがなければ、ユーザーの最初の訪問とログインと同等になり、ユーザー情報は4 番目の手順で取得した情報 (ユーザー認証の場合、Web ページの認証スコープは snsapi_userinfo であり、開発者は access_token を渡すことができ、openid がユーザー情報を取得します)、バックグラウンドでユーザーを作成し、(openid を介して) この WeChat ユーザーをバインドします。
リクエストメソッド
access_token - 上記取得したaccess_tokenopenid - 公式アカウントの一意の識別子
<code class="hljs php">$url="https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN"; $str = file_get_contents($url); $str = json_decode($str, true); if (empty($str['errcode'])) { //创建user并绑定 openid}else{ //错误处理}</code>
以上がWeChat 公開アカウントの Web ページ認証を取得するための実装手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。