ホームページ  >  記事  >  バックエンド開発  >  PHP Web サイトで WeChat を使用してログインする方法

PHP Web サイトで WeChat を使用してログインする方法

小云云
小云云オリジナル
2018-05-12 16:04:268279ブラウズ


最近のPC側のWebサイト開発ではWeChatの認証ログインが必要となるため、携帯電話側ではすでに初期段階で多くのWeChatユーザーグループを獲得していることを考慮し、データ同期に合わせたリソースの統合を検討中です。同じWeChatユーザーです。

1. 開発手順

1. コンセプトの区別

WeChat 開発の知識にさらされるため、以下は WeChat 公式ドキュメントの紹介です。区別に注意してください:

  • フォロワーが公式アカウントと対話した後、公式アカウントはフォロワーの OpenID (暗号化された WeChat ID、各公式アカウントの各ユーザーの OpenID は一意です。異なる公式アカウントの場合、OpenID はそれぞれ異なります) を取得できます。同じユーザーでも異なります)。公式アカウントは、ニックネーム、アバター、性別、都市、言語、注目時間など、対応するインターフェースを通じて OpenID に基づく基本的なユーザー情報を取得できます。

  • 開発者が複数の公式アカウント間、または公式アカウントとモバイル アプリケーション間でユーザー アカウントを統合する必要がある場合は、WeChat オープン プラットフォーム (open.weixin.qq.com) にアクセスして公式アカウントをバインドする必要があることに注意してください。この場合にのみ、UnionID メカニズムを使用して上記の要件を満たすことができます。

簡単に言えば:

  • OpenID は通常のユーザーの ID であり、現在の開発者アカウントに固有です。 OpenIDは公式アカウントに相当します。

  • UnionID はユーザーの統一 ID です。 WeChat オープン プラットフォーム アカウント下のアプリケーションの場合、同じユーザーの UnionID は一意です。

2. 要約と整理

は、つまり、同じWeChatユーザーが異なるプラットフォームを使用する場合、WeChatパブリックアカウントの開発とWeChat開発プラットフォームの開発には違いがあります。 (PC、アプリ、WeChat アプレットなど) Web サイトへのログインにはアカウントのバインドが必要ですが、バインドされたアカウントは OpenID では区別できず、UnionID で区別する必要があります。

3. 典型的な問題

付録 よくある設計の問題は、主に開発前の知識の活用が不十分であることが原因であり、これはその後の拡張に影響を及ぼします。もちろん、これは私が遭遇した問題でもあります。皆への警鐘となりますように。

2. WeChat オープンプラットフォームの運用

1. 簡単なガイダンス

以下のニーズに従って、「ウェブサイトアプリケーション開発」の作成を選択し、公式プロンプトに従って資料を申請します。通常、これにはさらに時間がかかります3日よりも。
PHP Web サイトで WeChat を使用してログインする方法

アプリケーションの作成後、インターフェースの権限を取得するための要件も満たしている必要があります。スタッフは積極的に連絡し、通常は 1 日で完了します。
PHP Web サイトで WeChat を使用してログインする方法

2. 公式シーンリファレンスが提供されます

PHP Web サイトで WeChat を使用してログインする方法

3. パブリックアカウント/ミニプログラムをバインドする

同じ開発アカウントの WeChat ユーザーに対応する UnionID がバインドされて使用されるようにするために、文書では、一般に WeChat の支払い機能を満たす必要があると紹介されています

PHP Web サイトで WeChat を使用してログインする方法

4. access_token シーケンス図を取得する権限

PHP Web サイトで WeChat を使用してログインする方法

3. コードの実装

実際、主な時間はアプリケーションの初期動作に関して、以下に私が実装した方法を示します。

1. パブリック ファイルの設定
主要な設定情報は設定ファイル「ApplicationCommonConfconfig.php」に配置するのが一般的です。

'WEIXIN_LOGIN' => array(        // 微信开放平台 使用微信帐号登录App或者网站 配置信息
        'OPEN_APPID' => 'wxbd961b2a6b7b2963', //应用 AppID
        'OPEN_APPSECRET' => 'e6xxxxxxxxxxxxxxxxxxxxe90',//应用 AppSecret
        'OPEN_CALLBACKURL' => 'http://www.52zhenmi.com/Home/Login/wxBack', //微信用户使用微信扫描二维码并且确认登录后,PC端跳转路径
    ),

2. コアコード
public function wxIndex(){
        //--微信登录-----生成唯一随机串防CSRF攻击
        $state  = md5(uniqid(rand(), TRUE));        $_SESSION["wx_state"]    =   $state; //存到SESSION
        $callback = urlencode($this->callBackUrl);        'https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect';        $wxurl = "https://open.weixin.qq.com/connect/qrconnect?appid="
                .$this->appID."&redirect_uri="
                .$callback."&response_type=code&scope=snsapi_login&state="
                .$state."#wechat_redirect";
        header("Location: $wxurl");
    }    public function wxBack(){
        if($_GET['state']!=$_SESSION["wx_state"]){            echo 'sorry,网络请求失败...';            exit("5001");
        }        $url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appID.'&secret='.$this->appSecret.'&code='.$_GET['code'].'&grant_type=authorization_code';        $arr = curl_get_contents($url);        //得到 access_token 与 openid
        $url='https://api.weixin.qq.com/sns/userinfo?access_token='.$arr['access_token'].'&openid='.$arr['openid'].'&lang=zh_CN';        $user_info = curl_get_contents($url);        $this->dealWithWxLogin($user_info);
    }    /**
     * 根据微信授权用户的信息 进行下一步的梳理
     * @param $user_info
     */
    public function dealWithWxLogin($user_info){
        //TODO 数据处理
        var_dump($user_info);        die;
    }
3. フロントエンドディスプレイ
公式ドキュメントの紹介によると、承認されたコードスキャンインターフェイスに直接アクセスすることも、デザインをカスタマイズすることもできます。 、ログインコードスキャンをネストする機能は、時間がかかり、機能しなかったので、ここではデフォルトのジャンプを使用する必要がありました。

PHP Web サイトで WeChat を使用してログインする方法

表示効果は次のとおりです:

PHP Web サイトで WeChat を使用してログインする方法

スキャンとログインが成功すると、ページがジャンプします


PHP Web サイトで WeChat を使用してログインする方法

4. 概要

  • 1. 、ログインしているユーザーの情報を取得でき、後の業務処理のためにデータベースに保存できます。

  • 2. 以下で説明できる能力には限界がありますので、公式の開発ドキュメントや Google の先輩方の実践経験を参照することをお勧めします。参照: WeChat パブリック アカウント ユーザーと Web サイト ユーザーのバインディング カスタマイズされたソリューション

  • 関連推奨事項:
カスタマイズされた WeChat ログイン スキャン コード スタイル ソリューション

WeChat オープン プラットフォーム開発 Web サイト アプリケーション WeChat ログインの概要

方法WeChat ログインを PHP の laravel フレームワークと迅速に統合するには

以上がPHP Web サイトで WeChat を使用してログインする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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