日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

基于.NET的微信SDK

發布時間:2024/6/21 综合教程 41 生活家
生活随笔 收集整理的這篇文章主要介紹了 基于.NET的微信SDK 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

超級懶漢編寫的基于.NET的微信SDK

一、前言

特別不喜歡麻煩的一個人,最近碰到了微信開發。下載下來了一些其他人寫的微信開發“框架”,但是被惡心到了,實現的太臃腫啦。

最不喜歡的就是把微信返回的xml消息在組裝成實體類,所以會比較臃腫,現在都提倡輕量級,所以有什么辦法可以避免大量實體類的存在呢。

當然,還有包裝的比較繁雜,看完官方API后,再看"框架",讓人感覺一頭霧水,不夠清晰、明了

二、我的實現思路

我的微信SDK(不敢自稱框架),最重要的實現2個目標:

1.輕量級,就是要摒棄實體類,盡量少的申明Entity,減少SDK的體量;

2.簡單、明了,就是SDK類的劃分和官方API保持一致,讓人一看就懂你的用意。

用戶發送請是首先POST到微信服務器的,然后微信服務器在POST到我的服務器,這個接受的消息是xml,我猜測為什么是xml,而不是更輕量級的json,是為了更好的兼容性,畢竟xml更通用一些(說錯了,請指出來)。而我們主動調用微信的一些API時,它返回的是json格式,我靠,要死啊,高大上啊。你們的副總裁張小龍不知道這事嗎?好吧,這樣其實也可以的。

其實,調用微信的工作原理很簡單,沒有必要上來就框架什么的,我相信是個合格的程序員都能做出來。

我們的服務器只需要一個GET,和一個POST就可以和微信通信了,從這一點來看,設計的還是比較人性化的,贊一個。GET用于接通微信服務的校驗,驗證;POST用于接收微信服務器過來的消息,然后將Response組裝好返回即可。

三、上代碼

好了,廢話不多說了。

由于微信服務器Post給我們的是xml消息,返回的是json,所以需要互轉。這樣就存在3種類型的format,這也是大量的框架定義實體類導致框架不夠輕量級的的原因之所在。

實現第一個目標,我主要用到了.net Framework4.0的Dynamic特性,和一個將xml字符串自動轉換成Dynamic Object的DynamicXml.cs類,還有一個將json字符串自動轉換成Dynamic Object的DynamicJson.cs類

苦苦尋覓,終于讓我找到了我想要的。

1.以下是DynamicXml.cs類,文件頭有原作者的版權信息。

View Code

這個代碼我也沒仔細看,反正能用,沒出過差錯。

2.以下是DynamicJson.cs類,文件頭有原作者的版權信息

View Code

這個代碼我也依舊沒仔細看,反正也能用,沒出過差錯。

這個最核心的攔路虎解決了,后面的事情就順理成章的進行啦。

3.基礎支持API包裝

View Code

4.發送消息包裝

View Code

5.其他代碼就不一一貼出來了。可以在文章最后自行下載完整代碼查閱。

6.處理與微信服務器通信的WeixinController.cs,WeixinExecutor.cs

View Code

View Code

完整源代碼下載:http://files.cnblogs.com/deepleo/WeixinSDK.rar

作者:深邃的獅子座
出處:http://www.deepleo.com/

總結

以上是生活随笔為你收集整理的基于.NET的微信SDK的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。