微信公眾平臺快速開發(fā)框架 For Core 2.0 beta –JCSoft.WX.Core 5.2.0 beta發(fā)布

最近比較忙课梳,都沒有好好維護博客仓洼,今天拿個半成品來交代吧宦言。

記不清上次關(guān)于微信公眾號快速開發(fā)框架(簡稱JCWX)的更新是什么時候了公壤,自從更新到支持.Net Framework 4.0以后基本上就沒怎么維護了换可,一方面工作比較忙,一方面家庭也需要維護厦幅,男人沾鳄,你懂的。

自從NetCore發(fā)布以后确憨,一直想把JCWX更新到Core版本译荞,從6月開始就著手更新了,大概花了一個月時間休弃,更新到了Net Core 1.1版本吞歼,當時并沒有對外公開,只是在Nuget上發(fā)布了下塔猾,隨后8月的時候2.0發(fā)布了篙骡,借著機會,我把代碼更新了下丈甸,使其支持.Net Core 2.0糯俗,也就是現(xiàn)在你看到的版本。

在更新到Net Core 1.1的時候睦擂,原本不打算繼續(xù)了得湘,因為蘇大大的公眾號SDK已經(jīng)非常強大了,不過顿仇,沒想到在Nuget上未公開的版本竟然也有上百名開發(fā)者下載使用淘正,這讓我很感動摆马,所以我決定堅持下去。

為了與之前的版本區(qū)分鸿吆,我在Github上新建了項目:https://github.com/JamesYing/JCWXCore

目前我在dev Branch上進行開發(fā)今膊,您可以從Dev上獲取最新的開發(fā)信息。

如果您之前不了我的項目伞剑,您可以點擊【傳送門】進行了解

為項目開了個網(wǎng)站:http://www.wxquickframework.com

使用方式:

1、可以Clonehttps://github.com/JamesYing/JCWXCore.git后編譯后引入您的項目

2市埋、通過Nuget 控制臺:Install-Package JCSoft.WX.Framework -Version 5.2.0

更新內(nèi)容

一黎泣、支持服務(wù)注冊

我們知道Asp.Net Core的DI是非常強大的,通過在Startup.cs中缤谎,把我們的服務(wù)注冊到程序中抒倚。JCWXCore也支持DI方式注冊。

使用過JCWX的朋友應(yīng)該知道坷澡,我在調(diào)用Api的時候托呕,使用了接口IApiClient,在代碼中我也提供了一個默認的ApiClient:DefaultApiClient频敛。

在JCWXCore中项郊,我們依然使用IApiClient接口作為主要調(diào)用接口,在DefaultApiClient中斟赚,我依賴了ILogger和IHttpFactory着降,您可以通過DI注冊屬于你自己的服務(wù)。

IHttpFactory目前僅僅支持Get和Post拗军,并沒有提供UploadFile任洞,希望朋友能一起完善

在.Net Core中,我們使用非常方便发侵,只需要在Startup.cs的ConfigureServices中添加如下代碼:

publicvoidConfigureServices(IServiceCollection services)

{//add wx quickframework serviceservices.AddWXFramework();

services.AddMvc();

}

注冊之后交掏,我們就可以在項目中任何地方使用了,比如在Controller中:

publicclassTestController:Controller

{privatereadonlyIApiClient _client;publicTestController(IApiClient client)

{

_client=client;

}publicActionResult Test(ApiRequest request)

{varresponse =_client.Execute(request);returnJson(response);

}

}

二刃鳄、支持配置

到了.Net Core盅弛,我們使用json文件方式進行配置,這里我支持了通過Json配置文件配置和服務(wù)注冊時配置

1铲汪、Json文件配置(一般時appsettings.json):

{"AppId": "AppId","AppSecert": "AppSecert","EncodingAESKey": "EncodingAESKey","Token": "Token","MessageMode": 2//0:明文 1:兼容 2:密文}

2熊尉、服務(wù)注冊時:

publicvoidConfigureServices(IServiceCollection services)

{//add wx quickframework serviceservices.AddWXFramework(o =>{

o.AppId="123";

o.AppSecert="123123";

o.Token="123123";

o.MessageMode=MessageMode.Cipher;

o.EncodingAESKey="encodingAESKey";

});

services.AddMvc();

}

目前來說配置并不是很完善,我將在下一版本中掌腰,使其能夠根據(jù)配置文件狰住,自動獲取AccessToken,方便大家使用齿梁。

三催植、自動被動消息加解密

細心的朋友一定注意到在配置信息中肮蛹,有一個MessageMode的枚舉,以前比較偷懶创南,一直沒有加支持伦忠,這次終于把加解密給加上去了,為了更好的體驗稿辙,我把被動消息加解密做成了自動解密昆码,自動加密。

在開發(fā)的時候我并沒有采用中間件的方式做自動加解密邻储,而是采用了添加InputFormatter和OutputFormatter的方式赋咽。

如果需要使用自動加解密,需要進行如下步驟:

1吨娜、配置MessageMode為兼容模式或者密碼模式

2脓匿、引用“using JCSoft.WX.Mvc.Formatters”,可以通過Nuget控制臺引入:

Install-Package JCSoft.WX.Mvc.Cores -Version 1.2.0

3宦赠、在Startup.cs的ConfigureServices中把InputFormat和OutputFormat添加進去:

services.Configure(options =>{

options.InputFormatters.Add(newWechatXmlSerializerInputFormatter(

Configuration.GetValue("Token"),

Configuration.GetValue("EncodingAESKey"),

Configuration.GetValue("AppId"),

Configuration.GetValue("MessageMode")

));

options.OutputFormatters.Add(newWechatXmlSerializerOutputFormatter(

Configuration.GetValue("Token"),

Configuration.GetValue("EncodingAESKey"),

Configuration.GetValue("AppId"),

Configuration.GetValue("MessageMode")

));

});

這里的代碼不是很好看陪毡,如果有更好的方法,請艾特我勾扭。

為了測試自動加解密毡琉,我做了一個demo項目:PassivityRequestMessageDemo

因為測試公眾號被動消息接口必須使用80端口,家里的電信貓無法映射80尺借,我就把它build了一個鏡像绊起,使其在docker容器中運行,您也可以進行操作下:)

四燎斩、增加部分API

因為很久沒有更新了虱歪,所以很多新的API都沒有支持,這次我添加了一些栅表,但估計有遠遠不夠笋鄙,希望大家能夠一起來幫我添加。

目前來說現(xiàn)在應(yīng)該有80%的Api了怪瓶,但還是真心希望找?guī)讉€志同道合的一起維護萧落,有興趣的請?zhí)砑游业腝Q:785418

寫在最后

這次把JCWX更新到Core,不僅僅是為了項目升級洗贰,更是對.Net Core的一次學(xué)習找岖,包括Docker化等等,讓我學(xué)到了很多敛滋,也踩了很多坑许布。不過一個人的力量真的有限,現(xiàn)在每天的生活就是工作-帶娃-鍛煉-學(xué)英文 一個循環(huán)下來已經(jīng)晚上11點绎晃,真的力不從心蜜唾,只能中午抽空修改杂曲,在這里也對大家說聲抱歉。

自從換了工作后袁余,我養(yǎng)成了如下習慣:

1擎勘、習慣郵件發(fā)送問題

2、習慣做TodoList

3颖榜、開始堅持鍛煉(瘦了20斤)

4棚饵、戒煙成功

5、每天學(xué)習15個英文單詞

6掩完、每天看半小時書

現(xiàn)在感覺每天都不夠用蟹地,寫代碼,帶娃藤为,鍛煉,學(xué)習夺刑,連寫博客都有點奢侈缅疟。

.Net Core真的是好東西,但是在國內(nèi)應(yīng)用真的不多遍愿,希望大家一起加入存淫,壯大國內(nèi)的社區(qū)。

如果您是.Net Core愛好者沼填,可以考慮加入我的QQ群:376248054(最近氣氛不加桅咆,希望大家踴躍啊)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末坞笙,一起剝皮案震驚了整個濱河市岩饼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌薛夜,老刑警劉巖籍茧,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異梯澜,居然都是意外死亡寞冯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門晚伙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吮龄,“玉大人,你說我怎么就攤上這事咆疗±熘悖” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵民傻,是天一觀的道長胰默。 經(jīng)常有香客問我场斑,道長,這世上最難降的妖魔是什么牵署? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任漏隐,我火速辦了婚禮括蝠,結(jié)果婚禮上趾断,老公的妹妹穿的比我還像新娘丁频。我一直安慰自己蜈首,他們只是感情好袱贮,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布绒疗。 她就那樣靜靜地躺著嗅定,像睡著了一般潦蝇。 火紅的嫁衣襯著肌膚如雪暇检。 梳的紋絲不亂的頭發(fā)上产阱,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音块仆,去河邊找鬼构蹬。 笑死,一個胖子當著我的面吹牛悔据,可吹牛的內(nèi)容都是我干的庄敛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼科汗,長吁一口氣:“原來是場噩夢啊……” “哼藻烤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起头滔,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤怖亭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后坤检,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體依许,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年缀蹄,在試婚紗的時候發(fā)現(xiàn)自己被綠了峭跳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡缺前,死狀恐怖蛀醉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情衅码,我是刑警寧澤拯刁,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站逝段,受9級特大地震影響垛玻,放射性物質(zhì)發(fā)生泄漏割捅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一帚桩、第九天 我趴在偏房一處隱蔽的房頂上張望亿驾。 院中可真熱鬧,春花似錦账嚎、人聲如沸莫瞬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疼邀。三九已至,卻和暖如春召锈,著一層夾襖步出監(jiān)牢的瞬間旁振,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工涨岁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留规求,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓卵惦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓦戚。 傳聞我的和親對象是個殘疾皇子沮尿,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容