一、注冊賬號
百度微信公眾平台,點擊進入。
二、公眾平台測試賬號
點擊進入平台后居然是小程序,我也很費解。以前是找到開發->開發者工具->公眾平台測試賬號,現在毛都沒有了。
不過可以點擊這里調轉。
三、進入公眾平台。
這里好像要微信掃碼登錄。
上面的接口配置信息是給接口服務器端使用,下面的JS接口安全域名是給前端調用。
這里的坑還是多,而且官方文檔含糊其辭,這點差評。
首先就是為何要有這個域名。說的直白一點,就是你要想和微信第三方接口通訊,必須要有一個能被外網訪問的接口暴露出去供第三方調用。所以你需要有一個服務器和域名。
這里需要注意:
1、服務器隨便搞。我的是阿里雲的雲服務器。
2、域名,這里必須要用域名,不然會配置失敗。
3、必須是http的80端口或者https的443默認端口。
4、URL的方法是GET請求,方法名隨意。
5、必須把服務器ip添加到白名單。
添加到白名單在微信公眾平台添加。
四、現在來測試一下。
js同樣的這樣就可以了。
五、微信在線測試接口
https://mp.weixin.qq.com/debug
六、代碼
服務器后台API接口采用.net core 3.0版本以上。
6.1、接口方法

1 /// <summary> 2 /// 檢測接口 3 /// 作用:在注冊微信公眾號的測試號管理界面,提供接口配置信息。接收微信接入驗證請求,並給與響應。 4 /// </summary> 5 /// <param name="signature">微信加密簽名</param> 6 /// <param name="timestamp">時間戳</param> 7 /// <param name="nonce">隨機數</param> 8 /// <param name="echostr">隨機字符串</param> 9 /// <returns></returns> 10 [HttpGet("CheckWeChat")] 11 public string CheckWeChat(string signature, string timestamp, string nonce, string echostr) 12 { 13 log.Debug("微信端成功請求到接口!"); 14 log.Debug($"signature:{signature},timestamp:{timestamp},nonce:{nonce},echostr:{echostr}"); 15 16 if (!string.IsNullOrWhiteSpace(signature) && !string.IsNullOrWhiteSpace(timestamp) && !string.IsNullOrWhiteSpace(nonce) && !string.IsNullOrWhiteSpace(echostr)) 17 { 18 log.Debug("進入驗證內部"); 19 20 //讀取配置Token,需要和你填寫的一樣 21 var token = JsonFileHelper.Read("WeChat_TestToken"); 22 23 if (!string.IsNullOrWhiteSpace(token) && WeChatHelper.VerificationSignature(echostr, nonce, signature, timestamp, token)) 24 { 25 log.Debug("成功!"); 26 //如果調用成功,返回隨機字符串 27 return echostr; 28 } 29 } 30 return "false"; 31 }
6.2、幫助類

1 public static string GetSha1Hash(string str) 2 { 3 var inputBytes = Encoding.Default.GetBytes(str); 4 5 SHA1 sha = new SHA1CryptoServiceProvider(); 6 7 var result = sha.ComputeHash(inputBytes); 8 9 var sBuilder = new StringBuilder(); 10 11 for (var i = 0; i < result.Length; i++) 12 { 13 sBuilder.Append(result[i].ToString("x2")); 14 } 15 16 return sBuilder.ToString(); 17 }

1 /// <summary> 2 /// 簽名驗證 3 /// </summary> 4 /// <param name="echostr">隨機字符串</param> 5 /// <param name="nonce">隨機數</param> 6 /// <param name="signature">微信加密簽名,signature結合了開發者填寫的token參數和請求中的timestamp參數、nonce參數。</param> 7 /// <param name="timestamp">時間戳</param> 8 /// <param name="token">用戶簽名</param> 9 /// <returns></returns> 10 public static bool VerificationSignature(string echostr, string nonce, string signature, string timestamp,string token) 11 { 12 string[] StrArray = { token, timestamp, nonce }; 13 Array.Sort(StrArray); 14 var ArrayString = new StringBuilder(); 15 for (var i = 0; i < StrArray.Length; i++) 16 ArrayString.Append(StrArray[i]); 17 var strHash = GetSha1Hash(ArrayString.ToString()); 18 return signature == strHash; 19 }
6.3、截圖
七、遠程服務器代碼發布
想要源碼的可以聯系我。希望對大家有幫助。