? ?? ?? C#?? ?? ?? ?? ??? ?? ??? ???? ??? ?? ?? ??? ????? ????
???? WeChat ??? ?? ??? ??? ??? ????? ?? ??? ???? ??? ?? ?? ? ??? ??????.1. ?? ?? -
https://mp.weixin.qq.com/ WeChat?? ?????. ?? ??? ?? ??
??? ??? ???? ??? WeChat ?? ????, ?? ??? ??? ???? ?? ??? ????. ??? ?; ?? ?? ??? ?? ????, ?? ??? ??? ?? ???? ?? - ??? ?? ????? "?? ??"??? ????, ?? ??(URL), ?? ?? EncodingAES ? , ??? 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);//返回隨機(jī)字符串則表示驗(yàn)證通過(guò) } else { return Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。如果你在瀏覽器中看到這句話,說(shuō)明此地址可以被作為微信公眾賬號(hào)后臺(tái)的Url,請(qǐng)注意保持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 ??? ?????. ??
? ??? C# WeChat ?? ?? ?? ?? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)