C# 版微信 SDK
欢迎来到 Dotnet 工具箱!在这里,你可以发现各种令人惊喜的开源项目!
C# 版微信 SDK
SKIT.FlurlHttpClient.Wechat, 可能是全网最完整的 C# 版微信 SDK,封装全部已知的微信 API,包含微信公众平台(订阅号+服务号+小程序+小游戏+小商店+视频号)、微信开放平台、微信商户平台(微信支付+微企付)、企业微信、微信广告平台、微信智能对话开放平台等模块,可跨平台。
基于 Flurl.Http 的微信 HTTP API SDK,目前已包含公众平台、开放平台、商户平台、企业微信、广告平台、对话开放平台等模块。
功能特性
-
•基于
Flurl.Http,可与IHttpClientFactory集成。 -
•支持 .NET Framework 4.6.1+、.NET Standard 2.0+、.NET Core 2.0+、.NET 5+。
-
•支持 Windows / Linux / macOS 多平台部署。
-
•支持
System.Text.Json(默认)和Newtonsoft.Json两种序列化方式。 -
•强类型接口模型。
-
•全异步式编程。
-
•提供 SourceLink 调试符号文件。
-
•完整、完善、完全的微信 HTTP API 封装。
包含功能模块,公众平台(公众号、小程序、视频号)+ 开放平台模块, 商户平台(微信支付)模块,商户平台(微信支付)模块,企业微信(企业号)模块,广告平台(广点通)模块,对话开放平台(微信智能对话)模块,腾讯微企付模块。
为什么要“造轮子”?
这都 2023 年了,官方本身提供的示例代码还只能运行在 .NET Framework on Windows 上;就连 RSA 签名这么基础的东西都没有人封装(确切地说是因为 RSA 有很多种分块模式和填充模式,网上能找到的往往只封装了其中一种,但却未必符合微信的要求);全网很难找到一个封装微信 API 尽可能全的 .NET SDK,开源的项目有不少,但作者能坚持下去的不多。
于是萌生了自己封装一个库的想法,打算解决这几个痛点,同时也是推广一下微软官方的 System.Text.Json。
这个库与盛派微信 SDK有什么区别?
注:盛派微信 SDK是由苏震巍先生发起的国内知名的 .NET 开源项目。
-
•本库专注于 API 本身的封装,捎带提供了一些用于加解密、序列化的工具类,使用起来更加灵活,不限任何框架或项目类型;盛派微信 SDK 提供了大而全的功能,与 MVC / WebAPI 深度集成。
-
•本库的接口模型遵循的是微软官方推荐的 C# 属性命名方式(帕斯卡命名法);盛派微信 SDK 提供的是微信接口本身的命名方式(蛇形命名法和驼峰命名法混杂)。
-
•本库封装了目前微信官方提供的几乎所有 API(极个别不支持的已在各模块文档中列出具体原因);盛派微信 SDK 只提供了常用的 API。
C# 对接示例
nuget 安装 SKIT.FlurlHttpClient.Wechat.Api
#通过NuGet安装 >Install-PackageSKIT.FlurlHttpClient.Wechat.Api
对 SDK 进行初始化
usingSKIT.FlurlHttpClient.Wechat; usingSKIT.FlurlHttpClient.Wechat.Api; varoptions=newWechatApiClientOptions() { AppId="微信AppId", AppSecret="微信AppSecret", ImmeDeliveryAppKey="即时配送相关服务AppKey,不用则不填", ImmeDeliveryAppSecret="即时配送相关服务AppSecret,不用则不填", MidasOfferId="米大师(虚拟支付1.0)相关服务OfferId,不用则不填", MidasOfferIdV2="米大师(虚拟支付2.0)相关服务OfferId,不用则不填", MidasAppKey="米大师(虚拟支付1.0)相关服务AppKey,不用则不填", MidasAppKeyV2="米大师(虚拟支付2.0)相关服务AppKey,不用则不填" }; varclient=newWechatApiClient(options);
请求 和响应:
usingSKIT.FlurlHttpClient.Wechat.Api; usingSKIT.FlurlHttpClient.Wechat.Api.Models; /*以公众号获取用户信息接口为例*/ varrequest=newCgibinUserInfoRequest() { AccessToken="微信AccessToken", OpenId="微信OpenId" }; varresponse=awaitclient.ExecuteCgibinUserInfoAsync(request); if(response.IsSuccessful()) { Console.WriteLine("昵称:"+response.Nickname); Console.WriteLine("头像:"+response.HeadImageUrl); } else { Console.WriteLine("错误代码:"+response.ErrorCode); Console.WriteLine("错误描述:"+response.ErrorMessage); }
项目地址
https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat
浙公网安备 33010602011771号