この記事では、ASP.NET WeChat 開発インターフェイス ガイドを詳しく紹介します。WeChat パブリック プラットフォームの開発は比較的簡単です。興味のある方は参考にしてください。
パブリック プラットフォームのユーザーが情報を送信すると、WeChat サーバーが GET リクエストを送信します。
開発者は署名をチェックすることでリクエストを検証します (以下の検証方法があります)。この GET リクエストが WeChat サーバーからのものであることが確認された場合は、echostr パラメータの内容をそのまま返すとアクセスが有効になります。それ以外の場合はアクセスが失敗します。
signature は、開発者によって入力されたトークンパラメータと、リクエスト内のタイムスタンプパラメータおよびノンスパラメータを組み合わせます。
暗号化/検証プロセス:
1. 3 つのパラメーターのトークン、タイムスタンプ、ノンスを辞書順に並べ替えます
2. sha1 暗号化用に 3 つのパラメーター文字列を 1 つの文字列に結合します
3開発者が取得した暗号化された文字列を署名と比較することで、リクエストが WeChat からのものであることを識別できます
アクセス後、一般の WeChat ユーザーがメッセージを送信すると、メッセージ プッシュが発生します。アカウント メッセージを送信するとき、WeChat サーバーは入力された URL にメッセージを POST します。
////// 验证签名 /// /// /// /// ///public static bool CheckSignature(String signature, String timestamp, String nonce) { String[] arr = new String[] { token, timestamp, nonce }; // 将token、timestamp、nonce三个参数进行字典序排序 Array.Sort (arr); StringBuilder content = new StringBuilder(); for (int i = 0; i < arr.Length; i++) { content.Append(arr[i]); } String tmpStr = SHA1_Encrypt(content.ToString()); // 将sha1加密后的字符串可与signature对比,标识该请求来源于微信 return tmpStr != null ? tmpStr.Equals(signature) : false; } /// /// 使用缺省密钥给字符串加密 /// /// ///public static string SHA1_Encrypt(string Source_String) { byte[] StrRes = Encoding.Default.GetBytes(Source_String); HashAlgorithm iSHA = new SHA1CryptoServiceProvider(); StrRes = iSHA.ComputeHash(StrRes); StringBuilder EnText = new StringBuilder(); foreach (byte iByte in StrRes) { EnText.AppendFormat("{0:x2}", iByte); } return EnText.ToString(); }
以上がASP.NET WeChat 開発インターフェイス ガイドの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。