検索
ホームページWeChat アプレットWeChatの開発WeChat認証ログインとユーザー情報取得インターフェース

最近WeChatインターフェースの開発に取り組んでいるので、WeChatでのログインを認証してユーザー情報を取得するこのインターフェースの開発プロセスをまとめます。

1. まず、WeChat 公式アカウントは、対応する AppID と AppSecret を取得する必要があります。WeChat ログインを申請し、審査に合格した場合にのみ、アクセス プロセスを開始できます。

2. 認証プロセス

1. プロセスの説明

(1). WeChat ユーザーがサードパーティ アプリケーションの認証を許可すると、WeChat はアプリケーションを起動するか、次の URL にリダイレクトします。サードパーティの Web サイトに認証一時チケット コード パラメーターを追加し、API を通じて access_token を交換します。 access_token を通じてユーザーの基本的なデータ リソースを取得したり、ユーザーが基本的な操作を実行できるように支援します。

2. access_token シーケンス図を取得します:

3. 開発 (私は CI フレームワークを使用します。実際には、どのフレームワークでも同じです。MVC モードでも可能です) 1. CODE をリクエストします

weixin.php

<?php
    class weixinController extends CI_Controller {
        public $userInfo;
        public $wxId;


        public function __construct(){
            parent::__construct();

            //只要用户一访问此模块,就登录授权,获取用户信息
            $this->userInfo = $this->getWxUserInfo();
        }
    

        /**
         * 确保当前用户是在微信中打开,并且获取用户信息
         *
         * @param string $url 获取到微信授权临时票据(code)回调页面的URL
         */
        private function getWxUserInfo($url = &#39;&#39;) {
            //微信标记(自己创建的)
            $wxSign = $this->input->cookie(&#39;wxSign&#39;);
            //先看看本地cookie里是否存在微信唯一标记,
            //假如存在,可以通过$wxSign到redis里取出微信个人信息(因为在第一次取到微信个人信息,我会将其保存一份到redis服务器里缓存着)
            if (!empty($wxSign)) {
                //如果存在,则从Redis里取出缓存了的数据
                $userInfo = $this->model->redisCache->getData("weixin:sign_{$wxSign}");
                if (!empty($userInfo)) {
                    //获取用户的openid
                    $this->wxId = $userInfo[&#39;openid&#39;];
                    //将其存在cookie里
                    $this->input->set_cookie(&#39;wxId&#39;, $this->wxId, 60*60*24*7);
                    return $userInfo;
                }
            }

            //获取授权临时票据(code)
            $code = $_GET[&#39;code&#39;];
            if (empty($code)) {
                if (empty($url)) {
                    $url = rtirm($_SERVER[&#39;QUERY_STRING&#39;], &#39;/&#39;);
                    //到WxModel.php里获取到微信授权请求URL,然后redirect请求url
                    redirect($this->model->wx->getOAuthUrl(baseUrl($url)));
                }
            }


        }

    }
?>

WeChat認証ログインとユーザー情報取得インターフェースcodeのControllerコードを取得

Wxmodel.php

<?php
    class WxModel extends ModelBase{
        public $appId;
        public $appSecret;
        public $token;

        public function __construct() {
            parent::__construct();

            //审核通过的移动应用所给的AppID和AppSecret
            $this->appId = &#39;wx0000000000000000&#39;;
            $this->appSecret = &#39;00000000000000000000000000000&#39;;
            $this->token = &#39;00000000&#39;;
        }

        /**
         * 获取微信授权url
         * @param string 授权后跳转的URL
         * @param bool 是否只获取openid,true时,不会弹出授权页面,但只能获取用户的openid,而false时,弹出授权页面,可以通过openid获取用户信息
         *   
        */
       public function getOAuthUrl($redirectUrl, $openIdOnly, $state = &#39;&#39;) {
        $redirectUrl = urlencode($redirectUrl);
        $scope = $openIdOnly ? &#39;snsapi_base&#39; : &#39;snsapi_userinfo&#39;;
        $oAuthUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->appId}&redirect_uri={$redirectUrl}&response_type=code&scope=$scope&state=$state";
        return $oAuthUrl;
       }

获取code的Model代码

codeのModelコードを取得

リクエストパラメータの説明と戻り値の説明を添付します

リクエストパラメータの説明:

レスポンス戻り値説明:

WeChat認証ログインとユーザー情報取得インターフェース

リクエストが成功するとリクエストパラメータのredirect_uriの値にリダイレクトされ、実際には$this->userInfo =に戻ります。 weixin.php の $this-> getWxUserInfo(); 行に移動し、再度 getWxUserInfo() メソッドを入力します。このとき、

WeChat認証ログインとユーザー情報取得インターフェース 行でもコードの値を取得できます。 。次に、2 番目のステップに進みます。

2。

リクエストパラメータの説明:

レスポンス戻り値の説明:

エラーが返された場合は次のようになります:

3. インターフェースを呼び出します(ユーザー情報を取得します) ) access_token を介して取得 access_token の後、次の前提条件がインターフェース呼び出しに適用されます:

(1) access_tokec が有効でタイムアウトになっていない

(2) WeChat ユーザーがサードパーティの対応するインターフェース スコープ (スコープ) を承認している。アプリケーションアカウント。

ユーザー情報を取得するためのコードは、ユーザー情報を取得するためのweixin.php

rreeeWeChat認証ログインとユーザー情報取得インターフェース

controllerwxmodel.php

rreee

modelユーザー情報を取得する

            //获取授权临时票据(code)
            $code = $_GET[&#39;code&#39;];

ユーザー情報を取得するカスタム関数WeChat認証ログインとユーザー情報取得インターフェース

上記の3ステップでインターフェースを呼び出すことで、ユーザーのWeChatアカウント情報を取得できます。 WeChat認証ログインとユーザー情報取得インターフェース

コードの多くの箇所にコメントを付けているので、よく見てください。学びたいと思っているお友達はぜひじっくりと見てみてください。

WeChat の認証ログインとユーザー情報インターフェイスへのアクセスに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。