剛換了個新環境,哎這都快一個月了,還沒適應過來,還是懷念老地方呀。老板讓開發一個基於微信平台的開發項目,而且是用net實現。當時就蒙了,微信就用了一會個人趕腳不好,所以果斷不用,現在讓開發,而且查了一些資料很少有。net的,更讓我丈二和尚了,當時就有點想打退堂鼓的舉動。哎,米有辦法在男友的鼓勵下繼續奮戰,相信自己沒有實現不了的。現在回頭想想也是現在的忙和累與煩惱等到成功的那刻回頭想想都是值得的。好了廢話不多了,現在開始上正文。
如果想通過微信去開發(當然,指的是開發模式下),首先 建議先申請一個服務號,因為服務號的功能與接口也多,有些功能訂閱號是實現不了的。另外申請過以后必須得通過微信 認證才能開發,好像是得付300大洋,高級接口如果需要的話也要通過微信認證才能獲得的。
一切都准備齊全后,開始行動。這些代碼也就開始認證的時候用一次,以后就不用了: 但是實踐證明這些是每次都要認證的。
暫時先借用一下這位大哥的代碼吧,因為起初是跟着他的代碼慢慢行進的。不過最后就用了別的簡單的方式開發了。到最后可能會給大家整理出來一個方案吧。
原文出處:http://blog.csdn.net/hemeng1980/article/details/19501945

1 const string Token = "XXXXX";//你的token 2 protected void Page_Load(object sender, EventArgs e) 3 { 4 string postStr = ""; 5 if (Request.HttpMethod.ToLower() == "post") 6 { 7 System.IO.Stream s = System.Web.HttpContext.Current.Request.InputStream; 8 byte[] b = new byte[s.Length]; 9 s.Read(b, 0, (int)s.Length); 10 postStr = System.Text.Encoding.UTF8.GetString(b); 11 if (!string.IsNullOrEmpty(postStr)) 12 { 13 //ResponseMsg(postStr); 14 Response.Write(ResponseMsg(postStr)); 15 Response.End(); 16 } 17 //WriteLog("postStr:" + postStr); 18 } 19 else 20 { 21 Valid(); 22 } 23 } 24 25 /// <summary> 26 /// 驗證微信簽名 27 /// </summary> 28 /// * 將token、timestamp、nonce三個參數進行字典序排序 29 /// * 將三個參數字符串拼接成一個字符串進行sha1加密 30 /// * 開發者獲得加密后的字符串可與signature對比,標識該請求來源於微信。 31 /// <returns></returns> 32 private bool CheckSignature() 33 { 34 string signature = Request.QueryString["signature"].ToString(); 35 string timestamp = Request.QueryString["timestamp"].ToString(); 36 string nonce = Request.QueryString["nonce"].ToString(); 37 string[] ArrTmp = { Token, timestamp, nonce }; 38 Array.Sort(ArrTmp); //字典排序 39 string tmpStr = string.Join("", ArrTmp); 40 tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); 41 tmpStr = tmpStr.ToLower(); 42 if (tmpStr == signature) 43 { 44 return true; 45 } 46 else 47 { 48 return false; 49 } 50 } 51 52 53 private void Valid() 54 { 55 string echoStr = Request.QueryString["echoStr"].ToString(); 56 if (CheckSignature()) 57 { 58 if (!string.IsNullOrEmpty(echoStr)) 59 { 60 Response.Write(echoStr); 61 Response.End(); 62 } 63 } 64 } 65 66 67 /// <summary> 68 /// 寫日志(用於跟蹤) 69 /// </summary> 70 private void WriteLog(string strMemo) 71 { 72 string filename = Server.MapPath("/logs/BugLog.txt"); 73 if (!Directory.Exists(Server.MapPath("//logs//"))) 74 Directory.CreateDirectory("//logs//"); 75 StreamWriter sr = null; 76 try 77 { 78 if (!File.Exists(filename)) 79 { 80 sr = File.CreateText(filename); 81 } 82 else 83 { 84 sr = File.AppendText(filename); 85 } 86 sr.WriteLine(strMemo); 87 } 88 catch 89 { 90 91 } 92 finally 93 { 94 if (sr != null) 95 sr.Close(); 96 } 97 }
另外,再附上一些成為開發者東西吧。這有成為開發者以后你才能真正的進行開發。
高級功能
微信公眾平台地址:https://mp.weixin.qq.com
登錄微信公眾平台后台,在左側列表中最下方,找到“開發者中心”,點擊進入
進入接口配置填寫框。請填寫接口配置信息,此信息需要你擁有自己的服務器資源。
填寫的URL需要正確響應微信發送的Token驗證,請閱讀接入指南。
此處的URL為域名,而Token在主頁面中定義的。填寫后點擊提交。
返回到開發者中心界面,再點擊啟用按鈕。
啟用之后微信會自動返回一些AppId,AppSercert這些就是接下來我們在以后要用的關鍵信息。
當然很重要的是,你得先把接口文檔說明看看,最起碼得瀏覽一遍知道規范和說明。當然如果有好的見解和方法的盆友可以交流交流啊。