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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

基于.NET的微信SDK

發(fā)布時(shí)間:2024/6/21 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 基于.NET的微信SDK 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

超級(jí)懶漢編寫的基于.NET的微信SDK

一、前言

特別不喜歡麻煩的一個(gè)人,最近碰到了微信開(kāi)發(fā)。下載下來(lái)了一些其他人寫的微信開(kāi)發(fā)“框架”,但是被惡心到了,實(shí)現(xiàn)的太臃腫啦。

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

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

二、我的實(shí)現(xiàn)思路

我的微信SDK(不敢自稱框架),最重要的實(shí)現(xiàn)2個(gè)目標(biāo):

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

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

用戶發(fā)送請(qǐng)是首先POST到微信服務(wù)器的,然后微信服務(wù)器在POST到我的服務(wù)器,這個(gè)接受的消息是xml,我猜測(cè)為什么是xml,而不是更輕量級(jí)的json,是為了更好的兼容性,畢竟xml更通用一些(說(shuō)錯(cuò)了,請(qǐng)指出來(lái))。而我們主動(dòng)調(diào)用微信的一些API時(shí),它返回的是json格式,我靠,要死啊,高大上啊。你們的副總裁張小龍不知道這事嗎?好吧,這樣其實(shí)也可以的。

其實(shí),調(diào)用微信的工作原理很簡(jiǎn)單,沒(méi)有必要上來(lái)就框架什么的,我相信是個(gè)合格的程序員都能做出來(lái)。

我們的服務(wù)器只需要一個(gè)GET,和一個(gè)POST就可以和微信通信了,從這一點(diǎn)來(lái)看,設(shè)計(jì)的還是比較人性化的,贊一個(gè)。GET用于接通微信服務(wù)的校驗(yàn),驗(yàn)證;POST用于接收微信服務(wù)器過(guò)來(lái)的消息,然后將Response組裝好返回即可。

三、上代碼

好了,廢話不多說(shuō)了。

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

實(shí)現(xiàn)第一個(gè)目標(biāo),我主要用到了.net Framework4.0的Dynamic特性,和一個(gè)將xml字符串自動(dòng)轉(zhuǎn)換成Dynamic Object的DynamicXml.cs類,還有一個(gè)將json字符串自動(dòng)轉(zhuǎn)換成Dynamic Object的DynamicJson.cs類

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

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

View Code

這個(gè)代碼我也沒(méi)仔細(xì)看,反正能用,沒(méi)出過(guò)差錯(cuò)。

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

View Code

這個(gè)代碼我也依舊沒(méi)仔細(xì)看,反正也能用,沒(méi)出過(guò)差錯(cuò)。

這個(gè)最核心的攔路虎解決了,后面的事情就順理成章的進(jìn)行啦。

3.基礎(chǔ)支持API包裝

View Code

4.發(fā)送消息包裝

View Code

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

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

View Code

View Code

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

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

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。