本篇文章給大家分享的是有關(guān).NET中怎么操作微信SDK,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)建站成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元保德做網(wǎng)站,已為上家服務(wù),為保德各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
Senparc.Weixin SDK 是由盛派網(wǎng)絡(luò)(Senparc)團隊自主研發(fā)的針對微信各模塊的開發(fā)套件(C# SDK),已全面支持微信公眾號、小程序、微信支付、企業(yè)號、開放平臺、JSSDK、搖一搖周邊等模塊。有一些東西都已經(jīng)封住在sdk里面,不需要我們再進行那些繁瑣的操作。
要對接微信公眾號,我們首先得有一個微信公眾號(我本來是使用我自己公眾號,奈何好多好玩的功能沒有權(quán)限需要微信認證),我們可以通過微信申請測試號來學習使用,申請地址 該測試號可以直接體驗和測試公眾平臺的所有高級接口。https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
通過測試號我可以可以得到我們想要的微信公眾號參數(shù)信息
通過VS2019(好想盡快體驗VS2022)新建一個.Net5 WebApi程序
安裝組件
<PackageReference Include="RestSharp" Version="106.11.7" /> <PackageReference Include="Senparc.Weixin.MP" Version="16.12.101-preview2" /> <PackageReference Include="Senparc.Weixin.MP.Middleware" Version="0.3.100.1-preview2" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
為了方便(偷懶),我直接使用了postman生成的RestSharp請求代碼,因此裝了該包。
添加配置
//CO2NET "SenparcSetting": { "IsDebug": true, "DefaultCacheNamespace": "DefaultCache" //緩存通過前綴區(qū)分 }, //Senparc.Weixin SDK "SenparcWeixinSetting": { "IsDebug": true, "Token": "token", "EncodingAESKey": "EncodingAESKey", "WeixinAppId": "appid", "WeixinAppSecret": "secret" }
通過配置IsDebug可以配置是否以Debug模式運行。
關(guān)于SenparcWeixinSetting為何叫做這個名字?是因為配置中寫死的
ConfigureServices中注冊服務(wù)
services.AddMemoryCache()//使用本地緩存必須添加 .AddSenparcWeixinServices(Configuration);//Senparc.Weixin 注冊(必須)
也可以采用redis等其他方法存儲配置信息等
Configure中啟用服務(wù)
//注冊 Senparc.Weixin 及基礎(chǔ)庫 app.UseSenparcGlobal(env, senparcSetting.Value, _ => { }, true) .UseSenparcWeixin(senparcWeixinSetting.Value, weixinRegister => weixinRegister.RegisterMpAccount(senparcWeixinSetting.Value));
通過這些配置我們可以獲取accesstoken
var accessToken = await AccessTokenContainer.GetAccessTokenAsync(_configuration["SenparcWeixinSetting:WeixinAppId"]).ConfigureAwait(false);
要實現(xiàn)接受用戶的消息,并且做出回應,我們需要繼承MessageHandler,新建CustomerMessageHandler類,該類中實現(xiàn)了網(wǎng)上說的價值一個億的AI核心代碼,看到就是賺到。
/// <summary> /// 自定義消息處理器 /// </summary> public class CustomerMessageHandler : MessageHandler<DefaultMpMessageContext> { public CustomerMessageHandler(Stream inputStream, PostModel postModel, int maxRecordCount = 0, IServiceProvider serviceProvider = null) : base(inputStream, postModel, maxRecordCount, false, null) { } /// <summary> /// 回復以文字形式發(fā)送的信息(可選) /// </summary> public override async Task<IResponseMessageBase> OnTextRequestAsync(RequestMessageText requestMessage) { var responseMessage = base.CreateResponseMessage<ResponseMessageText>(); // await Senparc.Weixin.MP.AdvancedAPIs.CustomApi.SendTextAsync(Config.SenparcWeixinSetting.MpSetting.WeixinAppId, OpenId,);//注意:只有測試號或部署到正式環(huán)境的正式服務(wù)號可用此接口 //responseMessage.Content = $"你發(fā)送了文字:{requestMessage.Content}\r\n\r\n你的OpenId:{OpenId}";//以文字類型消息回復 responseMessage.Content = requestMessage.Content.Replace("嗎", "").Replace('?', '!').Replace('?', '!'); return responseMessage; } /// <summary> /// 默認消息 /// </summary> public override IResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage) { var responseMessage = base.CreateResponseMessage<ResponseMessageText>(); responseMessage.Content = "歡迎來到我的公眾號!"; return responseMessage; } }
啟用消息處理器
//使用中間件注冊 MessageHandler,指定 CustomMessageHandler 為自定義處理方法 app.UseMessageHandlerForMp("/weixinmsg", (stream, postModel, maxRecordCount, serviceProvider) => new CustomerMessageHandler(stream, postModel, maxRecordCount, serviceProvider), options => { options.AccountSettingFunc = context => senparcWeixinSetting.Value; });
這個時候我們已經(jīng)實現(xiàn)了用戶消息的接收和回復代碼,不過還需要在微信平臺進行配置(為了可以讓微信發(fā)送消息到該代碼,我使用了內(nèi)網(wǎng)穿透功能供微信訪問該地址)
如果你修改接口配置信息,提交成功說明微信可以調(diào)通該接口,這個時候就可以關(guān)注微信測試號,發(fā)送消息查看結(jié)果。
通過編寫接口來實現(xiàn)自定義菜單配置
[HttpGet] public async Task<string> GetAsync() { var accessToken = await AccessTokenContainer .GetAccessTokenAsync(_configuration["SenparcWeixinSetting:WeixinAppId"]).ConfigureAwait(false); var bg = new ButtonGroup(); var oneSubButton = new SubButton { name = "基礎(chǔ)知識", sub_button = new List<SingleButton> { new SingleViewButton { name = "日志", url = "https://XXXXXX/appmsgalbum?__biz=MzU4MjU4NjgyOQ==&action=getalbum&album_id=1841538022157172741#wechat_redirect", } } }; bg.button.Add(oneSubButton); bg.button.Add(new SingleViewButton { name = "文章目錄", url = "https://www.yuque.com/docs/share/9aed821e-9115-41c7-a0cd-6b691ad7e400" }); var result = CommonApi.CreateMenu(accessToken, bg); return "成功" + result; }
通過調(diào)用該接口實現(xiàn)自定義菜單配置,顯示下面的菜單
以上就是.NET中怎么操作微信SDK,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章名稱:.NET中怎么操作微信SDK
網(wǎng)站網(wǎng)址:http://muchs.cn/article40/jchoho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站維護、動態(tài)網(wǎng)站、網(wǎng)站改版、用戶體驗、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)