http://mp.weixin.qq.com/wiki/4/2ccadaef44fe1e4b0322355c2312bfa8.html
ドキュメントを見つけました
開発者が初めて認証申請を提出すると、WeChatサーバーは4つのパラメータ(署名、タイムスタンプ、nonce、echostr)を含む入力URLにGETリクエストを送信し、開発者は署名(すなわち署名)を検証してメッセージの真正性を判断します。 その後、開発者がユーザーメッセージを受け取るたびに、WeChatは開発者が設定したURLにアクセスするための最初の3つのパラメータ(署名、タイムスタンプ、nonce)を持ち込み、署名の有効性を通じてメッセージの真正性を判断します。 検証方法は、検証申請の最初の提出と同じです。 | パラメーター | 形容 | | 署名 | WeChatの暗号署名は、開発者が入力したトークンパラメータと、リクエスト内のタイムスタンプおよびノンスパラメータを組み合わせたものです。 | | タイムスタンプ | タイムスタンプ | | ノース | 乱数 | | エコーストル | ランダム文字列 |
開発者は署名を確認してリクエストを検証します(検証方法は下記に示されています)。 GETリクエストがWeChatサーバーから来ていることを確認した場合、echostrパラメータの内容をそのまま返してください。そうすればアクセスが有効になり、成功した開発者となります。そうでなければアクセスは失敗します。 暗号化/検証のプロセスは以下の通りです:1. トークン、タイムスタンプ、ノンスの3つのパラメータを辞書順にソートする2. SHA1暗号化のために3つのパラメータ文字列を1つの文字列につなぎ合わせます。 開発者が取得した暗号化文字列は署名と比較することで、WeChatからのリクエストの発信元を特定することができます |