自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

.NET之盛派微信SDK簡(jiǎn)單操作

開(kāi)發(fā) 后端
Senparc.Weixin SDK 是由盛派網(wǎng)絡(luò)(Senparc)團(tuán)隊(duì)自主研發(fā)的針對(duì)微信各模塊的開(kāi)發(fā)套件(C# SDK),已全面支持微信公眾號(hào)、小程序、微信支付、企業(yè)號(hào)、開(kāi)放平臺(tái)、JSSDK、搖一搖周邊等模塊。有一些東西都已經(jīng)封住在sdk里面,不需要我們?cè)龠M(jìn)行那些繁瑣的操作。

[[404013]]

本文轉(zhuǎn)載自微信公眾號(hào)「鵬祥」,作者AZRNG 。轉(zhuǎn)載本文請(qǐng)聯(lián)系鵬祥公眾號(hào)。

介紹

Senparc.Weixin SDK 是由盛派網(wǎng)絡(luò)(Senparc)團(tuán)隊(duì)自主研發(fā)的針對(duì)微信各模塊的開(kāi)發(fā)套件(C# SDK),已全面支持微信公眾號(hào)、小程序、微信支付、企業(yè)號(hào)、開(kāi)放平臺(tái)、JSSDK、搖一搖周邊等模塊。有一些東西都已經(jīng)封住在sdk里面,不需要我們?cè)龠M(jìn)行那些繁瑣的操作。

示例

要對(duì)接微信公眾號(hào),我們首先得有一個(gè)微信公眾號(hào)(我本來(lái)是使用我自己公眾號(hào),奈何好多好玩的功能沒(méi)有權(quán)限需要微信認(rèn)證),我們可以通過(guò)微信申請(qǐng)測(cè)試號(hào)來(lái)學(xué)習(xí)使用,申請(qǐng)地址 該測(cè)試號(hào)可以直接體驗(yàn)和測(cè)試公眾平臺(tái)的所有高級(jí)接口。https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

通過(guò)測(cè)試號(hào)我可以可以得到我們想要的微信公眾號(hào)參數(shù)信息

通過(guò)VS2019(好想盡快體驗(yàn)VS2022)新建一個(gè).Net5 WebApi程序

安裝組件

  1. <PackageReference Include="RestSharp" Version="106.11.7" />  
  2.   <PackageReference Include="Senparc.Weixin.MP" Version="16.12.101-preview2" /> 
  3.   <PackageReference Include="Senparc.Weixin.MP.Middleware" Version="0.3.100.1-preview2" /> 
  4.   <PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" /> 

為了方便(偷懶),我直接使用了postman生成的RestSharp請(qǐng)求代碼,因此裝了該包。

添加配置

  1. //CO2NET  
  2. "SenparcSetting": { 
  3.   "IsDebug"true
  4.   "DefaultCacheNamespace""DefaultCache" //緩存通過(guò)前綴區(qū)分 
  5. }, 
  6. //Senparc.Weixin SDK 
  7. "SenparcWeixinSetting": { 
  8.   "IsDebug"true
  9.  
  10.   "Token""token"
  11.   "EncodingAESKey""EncodingAESKey"
  12.   "WeixinAppId""appid"
  13.   "WeixinAppSecret""secret" 

通過(guò)配置IsDebug可以配置是否以Debug模式運(yùn)行。

關(guān)于SenparcWeixinSetting為何叫做這個(gè)名字?是因?yàn)榕渲弥袑?xiě)死的

ConfigureServices中注冊(cè)服務(wù)

  1. services.AddMemoryCache()//使用本地緩存必須添加 
  2.            .AddSenparcWeixinServices(Configuration);//Senparc.Weixin 注冊(cè)(必須) 

也可以采用redis等其他方法存儲(chǔ)配置信息等

Configure中啟用服務(wù)

  1. //注冊(cè) Senparc.Weixin 及基礎(chǔ)庫(kù) 
  2.    app.UseSenparcGlobal(env, senparcSetting.Value, _ => { }, true
  3.        .UseSenparcWeixin(senparcWeixinSetting.Value, 
  4.            weixinRegister => weixinRegister.RegisterMpAccount(senparcWeixinSetting.Value)); 

通過(guò)這些配置我們可以獲取accesstoken

  1. var accessToken = await AccessTokenContainer.GetAccessTokenAsync(_configuration["SenparcWeixinSetting:WeixinAppId"]).ConfigureAwait(false); 

自定義消息回復(fù)

要實(shí)現(xiàn)接受用戶(hù)的消息,并且做出回應(yīng),我們需要繼承MessageHandler,新建CustomerMessageHandler類(lèi),該類(lèi)中實(shí)現(xiàn)了網(wǎng)上說(shuō)的價(jià)值一個(gè)億的AI核心代碼,看到就是賺到。

  1. /// <summary> 
  2. /// 自定義消息處理器 
  3. /// </summary> 
  4. public class CustomerMessageHandler : MessageHandler<DefaultMpMessageContext> 
  5.     public CustomerMessageHandler(Stream inputStream, PostModel postModel, int maxRecordCount = 0, IServiceProvider serviceProvider = null
  6.         : base(inputStream, postModel, maxRecordCount, falsenull
  7.     { 
  8.     } 
  9.  
  10.     /// <summary> 
  11.     /// 回復(fù)以文字形式發(fā)送的信息(可選) 
  12.     /// </summary> 
  13.     public override async Task<IResponseMessageBase> OnTextRequestAsync(RequestMessageText requestMessage) 
  14.     { 
  15.         var responseMessage = base.CreateResponseMessage<ResponseMessageText>(); 
  16.         // await Senparc.Weixin.MP.AdvancedAPIs.CustomApi.SendTextAsync(Config.SenparcWeixinSetting.MpSetting.WeixinAppId, OpenId,);//注意:只有測(cè)試號(hào)或部署到正式環(huán)境的正式服務(wù)號(hào)可用此接口 
  17.         //responseMessage.Content =  $"你發(fā)送了文字:{requestMessage.Content}\r\n\r\n你的OpenId:{OpenId}";//以文字類(lèi)型消息回復(fù) 
  18.         responseMessage.Content = requestMessage.Content.Replace("嗎""").Replace('?''!').Replace('?''!'); 
  19.         return responseMessage; 
  20.     } 
  21.  
  22.     /// <summary> 
  23.     /// 默認(rèn)消息 
  24.     /// </summary> 
  25.     public override IResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage) 
  26.     { 
  27.         var responseMessage = base.CreateResponseMessage<ResponseMessageText>(); 
  28.         responseMessage.Content = "歡迎來(lái)到我的公眾號(hào)!"
  29.         return responseMessage; 
  30.     } 

啟用消息處理器

  1. //使用中間件注冊(cè) MessageHandler,指定 CustomMessageHandler 為自定義處理方法 
  2.             app.UseMessageHandlerForMp("/weixinmsg"
  3.                 (stream, postModel, maxRecordCount, serviceProvider) => 
  4.                     new CustomerMessageHandler(stream, postModel, maxRecordCount, serviceProvider), 
  5.                 options => { options.AccountSettingFunc = context => senparcWeixinSetting.Value; }); 

這個(gè)時(shí)候我們已經(jīng)實(shí)現(xiàn)了用戶(hù)消息的接收和回復(fù)代碼,不過(guò)還需要在微信平臺(tái)進(jìn)行配置(為了可以讓微信發(fā)送消息到該代碼,我使用了內(nèi)網(wǎng)穿透功能供微信訪問(wèn)該地址)

如果你修改接口配置信息,提交成功說(shuō)明微信可以調(diào)通該接口,這個(gè)時(shí)候就可以關(guān)注微信測(cè)試號(hào),發(fā)送消息查看結(jié)果。

自定義菜單

通過(guò)編寫(xiě)接口來(lái)實(shí)現(xiàn)自定義菜單配置

  1. [HttpGet] 
  2.         public async Task<string> GetAsync() 
  3.         { 
  4.             var accessToken = await AccessTokenContainer 
  5.                 .GetAccessTokenAsync(_configuration["SenparcWeixinSetting:WeixinAppId"]).ConfigureAwait(false); 
  6.             var bg = new ButtonGroup(); 
  7.  
  8.             var oneSubButton = new SubButton 
  9.             { 
  10.                 name = "基礎(chǔ)知識(shí)"
  11.                 sub_button = new List<SingleButton> 
  12.                 { 
  13.                     new SingleViewButton 
  14.                     { 
  15.                         name = "日志"
  16.                         url = "https://XXXXXX/appmsgalbum?__biz=MzU4MjU4NjgyOQ==&action=getalbum&album_id=1841538022157172741#wechat_redirect"
  17.                     } 
  18.                 } 
  19.             }; 
  20.             bg.button.Add(oneSubButton); 
  21.  
  22.             bg.button.Add(new SingleViewButton 
  23.             { 
  24.                 name = "文章目錄"
  25.                 url = "https://www.yuque.com/docs/share/9aed821e-9115-41c7-a0cd-6b691ad7e400" 
  26.             }); 
  27.  
  28.             var result = CommonApi.CreateMenu(accessToken, bg); 
  29.  
  30.             return "成功" + result; 
  31.         } 

參考地址:

https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html

通過(guò)調(diào)用該接口實(shí)現(xiàn)自定義菜單配置,顯示下面的菜單

參考文檔

GitHub:https://github.com/JeffreySu/WeiXinMPSDK

 

sdk文檔地址:https://www.cnblogs.com/szw/p/weixin-course-index.html

 

責(zé)任編輯:武曉燕 來(lái)源: 鵬祥
相關(guān)推薦

2015-06-16 09:12:36

.NET微信SDK

2015-02-12 16:57:35

微信SDK

2021-09-11 19:04:38

.NetSoapCore協(xié)議

2017-06-27 10:53:32

2015-02-13 10:20:15

微信

2021-06-08 09:28:12

.Net通知服務(wù)

2021-10-25 22:23:20

微信廣告信息

2013-04-12 03:15:34

微信開(kāi)放平臺(tái)Android

2013-04-12 02:54:04

微信開(kāi)放平臺(tái)iOS

2013-08-08 10:13:25

微信

2015-02-12 17:45:41

微信SDK

2015-02-12 17:48:54

微信SDK

2022-02-22 11:46:30

企業(yè)微信數(shù)智化

2016-09-28 18:10:59

微信程序MINA

2021-03-11 10:57:42

安卓微信手機(jī)

2009-07-28 13:20:38

ASP.NET筆試題

2017-07-28 09:30:55

2015-02-12 17:23:33

微信SDK

2021-11-23 10:00:55

鴻蒙HarmonyOS應(yīng)用

2016-09-27 20:36:23

微信HttpWeb
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)