溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用C#微信開發(fā)服務(wù)器配置的案例

發(fā)布時(shí)間:2021-03-12 10:08:19 來源:億速云 閱讀:129 作者:小新 欄目:移動(dòng)開發(fā)

小編給大家分享一下使用C#微信開發(fā)服務(wù)器配置的案例,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

1、注冊帳號(hào)--填寫服務(wù)器配置

在https://mp.weixin.qq.com/ 微信公眾平臺(tái)上注冊帳號(hào);

服務(wù)號(hào)是公司申請的微信公共賬號(hào),訂閱號(hào)是個(gè)人申請的,個(gè)人權(quán)限比較少;

登錄微信公眾平臺(tái)官網(wǎng)后,在公眾平臺(tái)后臺(tái)管理頁面 - 開發(fā)者中心頁,點(diǎn)擊“修改配置”按鈕,填寫服務(wù)器地址(URL)、Token和EncodingAESKey,其中URL是開發(fā)者用來接收微信消息和事件 的接口URL。Token可由開發(fā)者可以任意填寫,用作生成簽名(該Token會(huì)和接口URL中包含的Token進(jìn)行比對,從而驗(yàn)證安全性)。 EncodingAESKey由開發(fā)者手動(dòng)填寫或隨機(jī)生成,將用作消息體加解密密鑰。

同時(shí),開發(fā)者可選擇消息加解密方式:明文模式、兼容模式和安全模式。模式的選擇與服務(wù)器配置在提交后都會(huì)立即生效,請開發(fā)者謹(jǐn)慎填寫及選擇。加解密方式的默認(rèn)狀態(tài)為明文模式,選擇兼容模式和安全模式需要提前配置好相關(guān)加解密代碼,詳情請參考消息體簽名及加解密部分的文檔。

使用C#微信開發(fā)服務(wù)器配置的案例

URL 必須為80端口,并且只能在服務(wù)器上的?。?!

2、驗(yàn)證URL是否有效

使用C#微信開發(fā)服務(wù)器配置的案例

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)證通過
 }
 else
 {
 return Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。如果你在瀏覽器中看到這句話,說明此地址可以被作為微信公眾賬號(hào)后臺(tái)的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();
}

提交配置即可,驗(yàn)證成功才能夠繼續(xù)使用更多的功能。如果提交失敗的話,可以自己寫個(gè)日志查看原因。

看完了這篇文章,相信你對“使用C#微信開發(fā)服務(wù)器配置的案例”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI