検索

元のアドレス: http://hello1010.com/bind-wechat/

二次元バーコード/QRコード(二次元バーコード)とは、平面(黒色)に印刷された特定の幾何学的図形です2次元方向に配置された白いグラフィックスはデータのシンボル情報を記録し、コーディングではコンピュータの内部ロジックの基礎となる「0」と「1」のビットストリームの概念が巧みに利用され、いくつかの2進数が使用されます。幾何学的図形は文字の数値情報を表現し、画像入力装置や光電走査装置を介して自動的に読み取られ、自動情報処理を実現します

近年、特に普及しているのがQRコードです。 WeChat QR コード決済、WeChat QR コード ログイン、WeChat QR コード名刺など、WeChat の QR コードの宣伝と応用は水の中のアヒルのようなものであると言えます。 O2OにおいてQRコードはオンラインとオフラインを繋ぐ重要な役割を果たしていると言えます。シャオ・マー兄弟はまた、「QRコードはオンラインでもオフラインでも重要な入り口である」と述べた。

現在、多くの Web サイトが独自の完全なユーザー アカウント システムを確立しています。WeChat の時代では、トレンドに従うのではなく、ユーザーを容易にするために WeChat パブリック アカウントの開発と運用を検討する必要があります。 O2O 優れたソリューションであり、さらに重要なことに、WeChat には良性で継続的に改善されるエコロジカル チェーンがあります。

ユーザーが WeChat 公式アカウントをフォローする場合、やり取り中に、注文など、ユーザーの身元情報 (Web サイト上のアカウント情報に相当) を取得する必要がある場合があります。公式アカウント、ご注文のお問い合わせなどそこで次の質問が生じます: 同じユーザーの場合、WeChat 公式アカウント ユーザー (openid) と Web サイト ユーザー (userid) の間に対応関係を確立するにはどうすればよいでしょうか。このプロセスはバインディングと呼ばれます。


議論を簡単にするために、次の 2 つのシナリオを要約しました:

1. ユーザーは Web サイト ユーザーとして登録しましたが、まだ WeChat パブリックをフォローしていません。番号;
2. ユーザーは登録していませんが、WeChat 公式アカウントをフォローしています。

上記の 2 つの状況については、以下で個別に説明します。

シナリオ1

ユーザーは当社のWebサイトユーザーとして登録しましたが、まだWeChat公式アカウントをフォローしていません。ここで、ユーザーはまず Web サイトにログインし、次に個人設定などの適切な場所にバインディング エントリを提供する必要があります。バインドプロセスは次のとおりです:


ここでWeChatのQRコード生成機能を使用する必要があります: パラメーターを使用してQRコードを生成します

WeChat QRコードについて、公式ドキュメントには次のように記載されています。

現在、QR コードには一時的な QR コードと永続的な QR コードの 2 種類があり、前者には最大 1800 秒の有効期限がありますが、より大きな数を生成でき、後者には有効期限がありません。 、数値は小さいです (現在、パラメーターは 1 ~ 100000 のみをサポートしています)。 2 つの QR コードはそれぞれ、アカウント バインディング、ユーザー ソース統計、およびその他のシナリオに適しています。

明らかに、一時的な QR コードを使用する方が適切です。これは、ユーザーがページを更新するたびに生成される可能性があります。

QR コードにはシーン値 (scene_id) を含めることができるため、ユーザーがシーン値を含む QR コードをスキャンすると、WeChat サーバーはシーン値を取得した後、シーン値を独自のサーバーにプッシュします。検証とバインディングロジックを実行できます。 注: QR コードを生成するには、認定されたサービス番号が必要です。

完全なバインドプロセスは次のようになります:

①ユーザーはWebページにログインし、「WeChatアカウントをバインド」をクリックします
②バックグラウンドでWeChatインターフェースを使用してQRコードリンクを生成し、戻ります。それをフロントエンド ディスプレイに表示し、シーン値 A とユーザーの間の対応関係を確立します。
③ユーザーは QR コードをスキャンし、クリックして WeChat パブリック アカウントをフォローします (すでにフォローしている場合は、直接④にジャンプします)。
④バックグラウンドは、WeChatサーバーによってプッシュされたシーン値Aを受け取ります。
⑤バックグラウンドは、(②で確立された対応関係に応じて)対応するユーザーIDをクエリします。
⑥ユーザーのuseridと、 WeChat ユーザー openid;
⑦ ユーザーの WeChat クライアント " プロンプトに「バインド成功」をプッシュします。
⑧ フロント ページにバインドが完了したことを通知し、ページを更新して、WeChat アカウント情報を返します。完全なバインディング。

このうち、②の「シーン値Aとユーザーの対応関係を確立する」では、ユーザーが既にログインしているため、ユーザーが「WeChatアカウントをバインドする」をクリックした際に、一時的なシーンを割り当てることができます。背景の値 A ユーザー ID との関係。ユーザー数が少ない Web サイトの場合は、PHP で apc を直接使用してキャッシュし、有効期限 (一時的な QR コードの有効期限と同じ) を設定できます。

⑧では、httpにはプッシュ機構がないため、最も簡単な方法は、バインドが完了したかどうかをポーリングして確認し、バインドが完了した後にページを更新することです。

バインディングが完了した後、ユーザーが WeChat 公式アカウントと対話すると、openid に基づいて対応するユーザー ID が見つかり、身元認識が完了します。前述した発注や注文照会もすべて実現可能です。

バインドプロセス全体は複雑ではなく、実装する際に技術的な困難はそれほどありません。最も重要なのはアイデアです。

シナリオ 2

シナリオ 2 では、ユーザーが WeChat クライアント Web ページでログイン/登録を完了する必要があるため、操作が少し複雑になります。したがって、登録プロセスが複雑で面倒な場合は、使用しないことをお勧めします。

プロセス:


上記のバインドプロセスは登録プロセスを統合しているため、より複雑に見えます。実装はそれほど難しくありません。アカウントのバインドにはユーザー情報のセキュリティが関係するため、次の 2 つの問題を考慮する必要があります。

1. ログイン/登録リンク。独自のサーバーで生成する必要があり、他人が偽造することはできません。有効性については、WeChat の検証サーバー アドレスを参照できます。したがって、比較的安全なログイン リンクは次のようになります:

http://api.hello1010.com/wechat/login.html?openid=x1&signature=x2×tamp=x3&nonce=x4&echostr&=x5

署名コードを検証:

<code><span>private function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];    

    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    if( $tmpStr == $signature ){
        return true;
    }else{
        return false;
    }
}
</span></code>

トークンの値は、WeChat 公式アカウントのバックエンドのものと同じにすることも、より安全なものに変更することもできます。

2. openid が信頼できることを確認する方法

次のシナリオを考えてみましょう: ユーザー A がログイン ページに入り、ログイン リンクをブラウザにコピーし、openid をユーザー B の openid に置き換え、ユーザー A のアカウント パスワード ログを使用します。で。これはユーザー A の userid とユーザー B の openid をバインドしますが、これは明らかに安全ではありません。

openid を暗号化するなど、暗号化方法が機密に保たれている場合、ユーザーは暗号化された openid を偽造できません。 openid を暗号化したくない場合は、リンクを生成するときにサーバー側で openid と署名の間の対応関係を確立できます。ユーザーが openid を改ざんした場合、検証は通過しません。

クライアントから送信された情報を決して信用しないでください。

拡張アプリケーション

バインディングが完了したら、いくつかの簡単なアプリケーションを作成できます。たとえば、会社はオフライン ロードショー イベントを開催する必要があり、参加するには登録とサインインが必要です。

これは、WeChat を使用して実装できる典型的な O2O の例です。プロセスは次のとおりです。


このうち、「バインディング ユーザー サブプロセス」はシナリオ 2 のプロセスです。登録のやり取りはビジネスごとに異なりますので、ここでは説明しません。

バインドが完了したユーザーの場合、イベントに参加するために必要なのは、WeChat を通じて登録し、QR コードをスキャンしてサインインすることだけです。操作は非常にスムーズです。

ご質問がございましたら、お気軽にお問い合わせください。

上記では、関連する側面を含めて WeChat アカウントのバインディングを紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションに保存されているデータをどのように変更しますか?PHPセッションに保存されているデータをどのように変更しますか?Apr 27, 2025 am 12:23 AM

tomodifydatainaphpsession、starthessession withsession_start()、$ _sessiontoset、modify、orremovevariables.1)startthessession.2)

PHPセッションに配列を保存する例を示します。PHPセッションに配列を保存する例を示します。Apr 27, 2025 am 12:20 AM

配列はPHPセッションに保存できます。 1。セッションを開始し、session_start()を使用します。 2。配列を作成し、$ _Sessionで保存します。 3. $ _Sessionを介して配列を取得します。 4.セッションデータを最適化してパフォーマンスを向上させます。

Garbage CollectionはPHPセッションでどのように機能しますか?Garbage CollectionはPHPセッションでどのように機能しますか?Apr 27, 2025 am 12:19 AM

PHPセッションガベージコレクションは、有効期限が切れたセッションデータをクリーンアップするために確率メカニズムを通じてトリガーされます。 1)構成ファイルにトリガー確率とセッションのライフサイクルを設定します。 2)Cronタスクを使用して、高負荷アプリケーションを最適化できます。 3)データの損失を避けるために、ごみ収集の頻度とパフォーマンスのバランスを取る必要があります。

どのようにしてPHPでセッションアクティビティをトレースできますか?どのようにしてPHPでセッションアクティビティをトレースできますか?Apr 27, 2025 am 12:10 AM

PHPでのユーザーセッションアクティビティの追跡は、セッション管理を通じて実装されます。 1)SESSION_START()を使用してセッションを開始します。 2)$ _Sessionアレイを介してデータを保存およびアクセスします。 3)セッションを終了するには、session_destroy()を呼び出します。セッショントラッキングは、ユーザーの動作分析、セキュリティ監視、パフォーマンスの最適化に使用されます。

データベースを使用してPHPセッションデータを保存するにはどうすればよいですか?データベースを使用してPHPセッションデータを保存するにはどうすればよいですか?Apr 27, 2025 am 12:02 AM

データベースを使用してPHPセッションデータを保存すると、パフォーマンスとスケーラビリティが向上します。 1)MySQLを構成してセッションデータを保存します:PHP.iniまたはPHPコードでセッションプロセッサを設定します。 2)カスタムセッションプロセッサを実装します:データベースと対話するために、開いて、閉じ、読み取り、書き込み、その他の機能を定義します。 3)最適化とベストプラクティス:インデックス、キャッシュ、データ圧縮、分散ストレージを使用して、パフォーマンスを向上させます。

PHPセッションの概念を簡単に説明してください。PHPセッションの概念を簡単に説明してください。Apr 26, 2025 am 12:09 AM

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPセッションに保存されているすべての値をどのようにループしますか?PHPセッションに保存されているすべての値をどのようにループしますか?Apr 26, 2025 am 12:06 AM

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

ユーザー認証にセッションを使用する方法を説明します。ユーザー認証にセッションを使用する方法を説明します。Apr 26, 2025 am 12:04 AM

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

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

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

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

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

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

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール