WeChat パブリック プラットフォームのメッセージ インターフェイスの動作原理は、大まかに次のように理解できます。ユーザー側からパブリック アカウント側までのプロセスは次のようになります。ユーザーはメッセージを WeChat サーバーに送信し、WeChat サーバーは次のようになります。アクセス時に受信したメッセージをユーザーに通知します。 URL ハンドラー内で、まずメッセージの正当性が判定され、判定が成功した後、メッセージ本文の内容に基づいて対応する応答が行われます。 。原理が分かりやすいので、ソケットに触れたことがある人には理解しやすいかもしれません。
しかし、WeChat のドキュメントは少しわかりにくい場合があり、WeChat へのアクセスに関するドキュメントは実際には満足のいくものではありません。公式ドキュメントの最初のステップは「メッセージ インターフェイスの申請」です。ここで URL を入力する必要があります。この URL は WeChat によって送信されたメッセージを処理するために使用されますが、WeChat は 2 番目のステップで関連する設定を URL に書き込みます。注意してください、そうすれば初心者は台無しになります。以下、私の理解に基づいて説明していきます。
まず、開発者がアクセスすると、WeChat サーバーは入力した URL に get リクエストを送信します。このリクエストには、署名という 4 つのパラメーターが含まれます (WeChat 暗号化署名は、によって入力されたトークン パラメーターを組み合わせたものです)。開発者とリクエストの timestamp パラメータ、nonce パラメータ)、timestamp (timestamp)、nonce (乱数)、echostr (乱数文字列) を使用して、元の URL を取得します。以下の図に示すように、現在のリクエスト:
開発者は署名をチェックすることでリクエストを検証します (検証方法は以下にあります)。この GET リクエストが WeChat サーバーからのものであることが確認された場合は、echostr パラメーターの内容をそのまま返してください。アクセスが有効になり、開発者になることができます。そうでない場合は、アクセスは失敗します。
加密/校验流程如下:1. 将token、timestamp、nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密 3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。ログイン後にコピーrreerree下面是代码实现。ログイン後にコピー首先,在你的处理程序中(我是新建了一个一般处理程序wx.ashx),判断当前请求的类型,因为接入时,是发送的GET请求,消息处理是发送的POST请求。如下图:ログイン後にコピー注: コード VqiRequest.GetQueryString は、カプセル化された QueryString リクエスト メソッドです。使用すると、QueryString[""] に変更できます。処理プロセスは次の図に示すとおりです。署名、タイムスタンプ、ノンスの 3 つのパラメーターが
arrayに配置され、
3 つのパラメーター文字列を 1 つの文字列に連結します。 vert tmpStr sha1 暗号化、暗号化された文字列は小文字
に変換され、署名と比較され、同じであれば検証は成功します。
検証が成功すると、echoStr が WeChat に返されます。
这里我对验证url的方法进行封装。ログイン後にコピー処理プログラムを作成したら、IISに展開し(方法はチュートリアル1を参照してください)、開発者センターのWeChat管理バックグラウンドmp.weixin.qq.com/にログインします。ページで、[構成の変更] ボタンをクリックします。URL、トークン、およびエンコーディング AESKey を入力します。URL は、開発者が WeChat サーバー データを受信するために使用するインターフェイス URL です。トークンは開発者が任意に入力し、署名の生成に使用できます (トークンは、
セキュリティを検証するためにインターフェース URL に含まれるトークンと比較されます)。 EncodingAESKey は開発者によって手動で入力されるか、ランダムに生成され、メッセージ本文の暗号化キーおよび復号化キーとして使用されます。同時に、開発者はメッセージの暗号化と復号化の方法として、平文モード、互換モード、
セキュリティ モードを選択できます。モードの選択とサーバー構成は、送信後すぐに有効になります。暗号化および復号化方法のデフォルトの状態
は平文モードです。暗号化モードと復号化モードについては、後のシリーズで共有しますので、楽しみにしていてください。写真に示すように:
送信をクリックすると、WeChatサーバーは上に書かれたURLに対してgetリクエストを作成します。検証が成功すると、バインドは成功します。
END
【関連する推奨事項】
以上がWeChat開発部門への初心者向けアクセスガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。