.NET開發者如何愉快的進行微信公眾號開發

朱永光發表於2016-06-01

(此文章同時發表在本人微信公眾號“dotNET每日精華文章”,歡迎右邊二維碼來關注。)

題記:這篇文章只是一個如何提高開發效率的簡單指導和記錄,不會涉及具體的微信公眾號開發內容。

就我理解,微信作為半個移動網際網路入口,且已經在代替大量APP的趨勢下,進行微信公眾號開發是一個開發者必須面對的命運。那麼.NET開發者如何高效的進行微信公眾號開發呢?從我有限的經驗來看,如下兩個方面是特別需要解決的。

1,SDK的選擇和使用

由於微信公眾平臺的訪問介面龐大繁雜且基於HTTP API的,如果從底層開始寫每一行程式碼就未免耗時費力。幸好,基於.NET的SDK還是有很多,比如之前我的文章《使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速開發部署微信後臺》中介紹的Rabbit WeixinSDK。最近在研究的Senparc.Weixin SDK更是一個強大和全面的開源SDK。已全面支援微信公眾號、微信支付、企業號、開放平臺、JSSDK、搖一搖周邊等模組。這個SDK做了很多底層封裝,比如AccessToken的自動管理、使用者上下文的支援等等,讓開發者更加專注於業務邏輯的實現。更多資訊可以參考官網:http://weixin.senparc.com/

要使用也很簡單,直接“Install-Package Senparc.Weixin.MP”,如果使用MVC開發的話,可以再安裝“Senparc.Weixin.MP.MVC”。不過暫不支援ASP.NET Core。

2,程式的除錯(包括本地和遠端)

眾所周知,微信公眾號的執行機制決定了微信伺服器必須訪問一個80埠的公網地址,這給程式除錯帶來了一些障礙。不過使用相應工具並通過如下步驟還是很容易進行本地和遠端除錯的:

2.1,開通“公眾平臺測試帳號”

開通公眾號中的“開發者工具”的“公眾平臺測試帳號”。在這個工具裡面實際上模擬了真實公眾號的後臺配置,具體配置的內容需要後續步驟來提供。

2.2,設定本地除錯

所謂本地除錯就是指讓“公眾平臺測試帳號”可以訪問開發機器上跑的IISExpress,從而實現Visual Studio對程式碼的Debug。實現本地除錯的最簡單方法,當然是配置路由器DMZ(或者埠對映)+動態域名。如果使用的是光寬頻,那麼自己的路由器一般是在電信運營商光貓(其整合了路由器)之後,埠對映就無效。這個時候只有藉助於花生殼之類的工具來把本機埠對映為外網80埠。如果只是開發除錯的話,個人免費版足夠了。

如下圖,就是把本地一個MVC專案的執行埠對映到花生殼免費子域名下的80埠。

image

有了這個外網地址之後,就可以填寫到“公眾平臺測試帳號”中的“介面配置資訊”的URL中。填寫的時候,如果遇到“提交失敗”,那麼可以多試幾次,也可以把花生殼重啟一下看看。如下圖所示:

image

其中wechat是我的測試專案中用於和微信伺服器互動的MVC Controller的名字。經過這樣的配置,就可以愉快的在本地除錯微信公眾號應用了。

2.3,配置遠端除錯

所謂遠端除錯,就是當你把公眾號應用釋出到公網伺服器上的時候,通過配置Visual Studio的遠端除錯功能,從而實現對生產伺服器的Debug。

要配置遠端除錯,我能想到的最便捷的方式就是把應用釋出到Azure的App Service中,然後啟用遠端除錯功能。如下圖所示:

image

要把VS附加到遠端應用上,最簡單的方式就是通過VS的Server Explorer中的Azure瀏覽器找到你的應用的節點,點選右鍵來選擇“Attach Debugger”,如下圖所示:

image

當然這個時候,記得要把“公眾平臺測試帳號”中的“介面配置資訊”的URL改為Azure中的地址。如果公眾號應用是釋出到虛擬機器中,那麼也可以通過安裝遠端除錯外掛來實現VS遠端除錯,相關資料可以Bing一下。

另外,如果在團隊開發的情況下,建議每個人都獨立申請“公眾平臺測試帳號”、花生殼埠對映和Azure帳號,各自使用自己的環境來除錯,互不影響。

相關文章