您好,登錄后才能下訂單哦!
小編給大家分享一下微信開(kāi)發(fā)之如何使用Senparc.Weixin.MP SDK ,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Senparc.Weixin.MP SDK已經(jīng)涵蓋了微信6.x的所有公共API。
整個(gè)項(xiàng)目的源代碼以及已經(jīng)編譯好的程序集可以在這個(gè)項(xiàng)目中獲取到:https://github.com/JeffreySu/WeiXinMPSDK
PS:由于微信API以及Senparc.Weixin SDK一直在不斷升級(jí)更新,最新的代碼及Demo以上面的github中的源代碼為準(zhǔn)。
我們現(xiàn)在從無(wú)到有建立一個(gè)ASP.NET MVC項(xiàng)目,來(lái)看一下如何與微信進(jìn)行對(duì)接(Webforms原理也都是一樣,只不過(guò)把Controller中的Action換成.aspx頁(yè)面就可以了)。
將要演示的項(xiàng)目源代碼也可以在開(kāi)源項(xiàng)目中找到(因?yàn)樵创a中要兼顧2個(gè)項(xiàng)目,有一個(gè)公用項(xiàng)目,所以與下面展示的結(jié)構(gòu)略有不同,邏輯完全一致):
MVC:https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.Sample
WebForms:https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.Sample.WebForms
第一步:建立一個(gè)空的ASP.NET MVC(4.0)項(xiàng)目,項(xiàng)目名稱如Senparc.Weixin.MP.Sample
第二步:建立一個(gè)Controller,如WeixinController.cs
第三步:引入Senparc.Weixin.MP.dll
引入相關(guān)dll的方式有兩種:一種是復(fù)制dll到項(xiàng)目某文件夾中,然后直接在項(xiàng)目中添加Senparc.Weixin.MP.dll及Senparc.Weixin.MP.MvcExtension.dll的引用(Senparc.Weixin.MP.MvcExtension.dll只有MVC項(xiàng)目需要,WebForms項(xiàng)目可以忽略),第二種方式我們可以使用Nuget直接安裝到項(xiàng)目中。
Nuget項(xiàng)目地址:https://www.nuget.org/packages/Senparc.Weixin.MP/
第一種方式已經(jīng)足夠簡(jiǎn)單,這里介紹第二種:打開(kāi)菜單【工具】> 【庫(kù)程序包管理器】 > 【程序包管理器控制臺(tái)】,如下圖:
點(diǎn)擊后將會(huì)出現(xiàn)程序包管理器控制臺(tái):
如果是第一次安裝Senparc.Weixin.MP庫(kù),則在PM>后面輸入命令:
Install-Package Senparc.Weixin.MP
回車,Senparc.Weixin.MP.dll將會(huì)被自動(dòng)引入到項(xiàng)目中。
如果以后需要更新到最新版本,只需要使用Update-Package命令,將會(huì)自動(dòng)在線更新:
Update-Package Senparc.Weixin.MP
以上操作對(duì)MVC和WebForms項(xiàng)目都有效。
如果是MVC項(xiàng)目,為了獲得更多針對(duì)MVC的擴(kuò)展功能,我們可以繼續(xù)引入Senparc.Weixin.MP.MvcExtension.dll:
Install-Package Senparc.Weixin.MP.MVC
命令窗口輸出結(jié)果如下,表示已經(jīng)安裝成功:
我們觀察一下項(xiàng)目引用的程序集,這兩個(gè)dll已經(jīng)被引用進(jìn)來(lái)了:
第四步:修改WeixinController.cs
我們將下列代碼加入WeixinController.cs:
using System; using System.IO; using System.Web.Configuration; using System.Web.Mvc; using Senparc.Weixin.MP.Entities.Request; namespace Senparc.Weixin.MP.Sample.Controllers { using Senparc.Weixin.MP.MvcExtension; using Senparc.Weixin.MP.Sample.CommonService.CustomMessageHandler; public partial class WeixinController : Controller { public static readonly string Token = "YourToken";//與微信公眾賬號(hào)后臺(tái)的Token設(shè)置保持一致,區(qū)分大小寫。 public static readonly string EncodingAESKey = "YourKey";//與微信公眾賬號(hào)后臺(tái)的EncodingAESKey設(shè)置保持一致,區(qū)分大小寫。 public static readonly string AppId = "YourAppId";//與微信公眾賬號(hào)后臺(tái)的AppId設(shè)置保持一致,區(qū)分大小寫。 /// <summary> /// 微信后臺(tái)驗(yàn)證地址(使用Get),微信后臺(tái)的“接口配置信息”的Url填寫如:http://weixin.senparc.com/weixin /// </summary> [HttpGet] [ActionName("Index")] public ActionResult Get(PostModel postModel, string echostr) { if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token)) { return Content(echostr); //返回隨機(jī)字符串則表示驗(yàn)證通過(guò) } else { return Content("failed:" + postModel.Signature + "," + MP.CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, Token) + "。" + "如果你在瀏覽器中看到這句話,說(shuō)明此地址可以被作為微信公眾賬號(hào)后臺(tái)的Url,請(qǐng)注意保持Token一致。"); } } /// <summary> /// 用戶發(fā)送消息后,微信平臺(tái)自動(dòng)Post一個(gè)請(qǐng)求到這里,并等待響應(yīng)XML。 /// PS:此方法為簡(jiǎn)化方法,效果與OldPost一致。 /// v0.8之后的版本可以結(jié)合Senparc.Weixin.MP.MvcExtension擴(kuò)展包,使用WeixinResult,見(jiàn)MiniPost方法。 /// </summary> [HttpPost] [ActionName("Index")] public ActionResult Post(PostModel postModel) { if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token)) { return Content("參數(shù)錯(cuò)誤!"); } postModel.Token = Token;//根據(jù)自己后臺(tái)的設(shè)置保持一致 postModel.EncodingAESKey = EncodingAESKey;//根據(jù)自己后臺(tái)的設(shè)置保持一致 postModel.AppId = AppId;//根據(jù)自己后臺(tái)的設(shè)置保持一致 //自定義MessageHandler,對(duì)微信請(qǐng)求的詳細(xì)判斷操作都在這里面。 var messageHandler = new CustomMessageHandler(Request.InputStream, postModel);//接收消息 messageHandler.Execute();//執(zhí)行微信處理過(guò)程 return new FixWeixinBugWeixinResult(messageHandler);//返回結(jié)果 } } }
第一個(gè)Get對(duì)應(yīng)微信后臺(tái)設(shè)置URL時(shí)候的請(qǐng)求,第二個(gè)Post用于接受么次轉(zhuǎn)發(fā)過(guò)來(lái)的客戶請(qǐng)求。
其中CustomMessageHandler是我們自己創(chuàng)建的一個(gè)類,用于實(shí)現(xiàn)MessageHandler(有關(guān)MessageHandler的詳細(xì)介紹可以看《Senparc.Weixin.MP SDK 微信公眾平臺(tái)開(kāi)發(fā)教程(六):了解MessageHandler》,也可以看這里),所有處理微信消息的核心邏輯都被包含到CustomMessageHandler中執(zhí)行。除了承擔(dān)處理微信響應(yīng)的任務(wù),MessageHandler還實(shí)現(xiàn)了處理單個(gè)用戶對(duì)話上下文等功能,非常方便。
以上是“微信開(kāi)發(fā)之如何使用Senparc.Weixin.MP SDK ”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。