編集者は WeChat の開発に非常に興味があり、オンラインで関連記事をレビューして、誰もが一緒に学べるように整理しました。
1. アカウントを登録します - サーバー設定を入力します
https://mp.weixin.qq.com/ で WeChat パブリック プラットフォームにアカウントを登録します
サービス アカウントは、WeChat パブリック アカウントです。はい、個人の権限は比較的制限されています
WeChat パブリック プラットフォームの公式 Web サイトにログインした後、パブリック プラットフォームのバックエンド管理ページ - 開発者センター ページで、[変更] をクリックします。 「構成」ボタンをクリックし、サーバー アドレス (URL)、トークン、およびエンコーディング AESKey を入力します。URL は、ユーザーが WeChat メッセージとイベントを受信するために使用する開発インターフェイス URL です。開発者はトークンを入力し、署名の生成に使用できます (セキュリティを検証するために、トークンはインターフェイス URL に含まれるトークンと比較されます)。 EncodingAESKey は開発者によって手動で入力されるか、ランダムに生成され、メッセージ本文の暗号化キーおよび復号化キーとして使用されます。
同時に、開発者はメッセージの暗号化と復号化の方法 (平文モード、互換モード、セキュリティ モード) を選択できます。モードの選択とサーバー構成は、送信後すぐに有効になります。開発者は慎重に入力して選択することをお勧めします。暗号化と復号化のデフォルト状態は平文モードです。互換モードとセキュリティ モードを選択するには、事前に関連する暗号化コードと復号化コードを設定する必要があります。詳細については、メッセージ本文の署名と暗号化と復号化に関するドキュメントを参照してください。
URL はポート 80 である必要があり、サーバー上にのみ存在できます。 ! !
2. URL が有効かどうかを確認します
private string Token = ConfigurationManager.AppSettings["Token"]; [HttpGet] [ActionName("Index")] public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { return Content(echostr);//返回随机字符串则表示验证通过 } else { return Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。"); } } /// <summary> /// 检查签名是否正确 /// </summary> /// <param name="signature"></param> /// <param name="timestamp"></param> /// <param name="nonce"></param> /// <param name="token"></param> /// <returns></returns> public static bool Check(string signature, string timestamp, string nonce, string token = null) { return signature == GetSignature(timestamp, nonce, token); } /// <summary> /// 返回正确的签名 /// </summary> /// <param name="timestamp"></param> /// <param name="nonce"></param> /// <param name="token"></param> /// <returns></returns> public static string GetSignature(string timestamp, string nonce, string token = null) { token = token ?? Token; var arr = new[] { token, timestamp, nonce }.OrderBy(z => z).ToArray(); var arrString = string.Join("", arr); //var enText = FormsAuthentication.HashPasswordForStoringInConfigFile(arrString, "SHA1");//使用System.Web.Security程序集 var sha1 = System.Security.Cryptography.SHA1.Create(); var sha1Arr = sha1.ComputeHash(Encoding.UTF8.GetBytes(arrString)); StringBuilder enText = new StringBuilder(); foreach (var b in sha1Arr) { enText.AppendFormat("{0:x2}", b); } return enText.ToString(); }
確認が成功した場合のみ、引き続き他の機能を使用できます。送信が失敗した場合は、自分でログを作成して理由を確認できます。
エディターも WeChat 開発の初心者です。以前に asp.net WeChat 開発に関する記事をいくつかまとめました。今日は、エディターも初心者なので、もしあれば、それをまとめていきます。難しいところや間違ったところはご容赦ください。一緒に進歩していきましょう。
C# WeChat 開発 (サーバー構成) に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。