百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
W

WeiXinMPSDK

> 数据库
开源

微信全平台 .NET SDK,Senparc.Weixin for C#,支持 .NET Framework 和 .NET Core、.NET 10.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 WeChat SDK for C#。

8.9K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

微信全平台 .NET SDK,Senparc.Weixin for C#,支持 .NET Framework 和 .NET Core、.NET 10.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 WeChat SDK for C#。

Senparc.Weixin —— 微信 .NET SDK

[English Version]

**Senparc.Weixin SDK 是目前使用率最高的微信 .NET SDK,也是国内最受欢迎的 .NET 开源项目之一。本项目已持续维护超过 13 年,助力大量系统和应用取得成功。我们将继续保持更新,并正在深度融合 AI 场景应用,示例正在逐步上线。欢迎加入我们的社区 **

使用 Senparc.Weixin,您可以方便快速地开发微信全平台的应用(包括微信公众号、小程序、小游戏、企业号、开放平台、微信支付、JS-SDK、微信硬件/蓝牙,等等)。本项目的 Demo 同样适合初学者进行 .NET 编程学习。

目前 Senparc.Weixin 已经支持几乎所有微信平台模块和接口,并同时支持 .NET 3.5 / 4.0 / 4.5 / .NET Standard 2.x / .NET Core 2.x / .NET Core 3.x / .NET 6.0 / .NET 7.0 / .NET 8.0 / .NET 10.0 等多种框架,同时兼容所有 MVC、Razor、WebApi、Console(命令行)、桌面应用(.exe)、Blazor、MAUI、后台服务等环境,和外部框架完全解耦。

自 2013 年起立项 12 年多来,我们一直保持着项目的持续更新,并将完整的源代码以及设计思想毫无保留地分享给大家,希望有更多的人可以从中受益,理解并传播开源的精神,一同助力中国开源事业!感恩一路上给我们提供帮助的朋友们!

如果你喜欢并希望我们继续优化这个项目,请给我们一个 ★Star :)

公告

[!TIP] 盛派开发者社区 2025-2026 年度贡献者榜单
⚡ .NET 10 正式版已发布,最新 Sample for .NET 10(向下兼容), 在线 Sample:https://sdk.weixin.senparc.com/
AI 聊天机器人微信集成 Sample 已上线!查看
Scott Hansleman 关于 AI 话题的专访 查看视频

[!NOTE] 微信支付 V3 模块(V1.0)已上线!Nuget
全面支持长文本自动分片发送,更多:《顺应 GenAI 应用,自动“续航”回复超长文本消息》

Start:分模块独立说明文档 + Sample 代码示例

模块 地址
公众号 https://sdk.weixin.senparc.com/Docs/MP/
小程序 https://sdk.weixin.senparc.com/Docs/WxOpen/
企业微信 https://sdk.weixin.senparc.com/Docs/Work/
微信支付 V3(推荐) https://sdk.weixin.senparc.com/Docs/TenPayV3/
微信支付 V2(不推荐) https://sdk.weixin.senparc.com/Docs/TenPayV2/

[!NOTE] 1、上述分模块示例中,同时包含了文档及可以立即运行的代码模板(只需要配置微信参数,无需修改任何代码)。
2、示例中的配置、注册、接口调用方法均一致,只要学会其中一个模块开发,就可以举一反三。以下的 Hello World 示例也以公众号为例,可以延伸到所有其他模块。
3、/docs 目录中提供了更完整的开发说明文档,供进阶开发使用,点击查看。
4、对应于微信不同平台,Senparc.Weixin SDK 已经将各模块解耦并独立发布,为了简化引用,您也可以直接引用 Senparc.Weixin.All,自动引用所有模块。

Hello World :用 3 句代码开启你的微信开发之旅!

[!NOTE] 1、下述源码位于 /Samples/MP/Senparc.Weixin.Sample.MP 文件夹,以微信公众号为例。学会公众号就可以举一反三使用其他模块,基本用法一致(小程序、企业微信、微信支付等)。
2、如需查看其他模块或集成示例,可以查看位于 /Samples/ 文件夹下的其他独立 Sample,或 /Samples/All/ 文件夹下的集成 Sample(进阶)。

启动代码(只需 2 句代码):

1、 在 Program.cs 的 builder.Build() 上方添加配置:

builder.Services.AddSenparcWeixinServices(builder.Configuration);

如果您使用的是旧格式的 Startup.cs 文件,上述代码对应于 Startup.cs 的 ConfigureServices() 方法内。

2、 在 Program.cs 的 builder.Build() 下方启用配置:

var registerService = app.UseSenparcWeixin(app.Environment, null, null, register => { },
    (register, weixinSetting) =>
{
    //注册公众号信息(可以执行多次,注册多个公众号)
    register.RegisterMpAccount(weixinSetting, "【盛派网络小助手】公众号");
});
  • 如果您使用的是旧格式的 Startup.cs 文件,上述代码对应于 Startup.cs 的 Configure() 方法内。
  • 如果您希望系统自动注册所有配置好的账号,只需上述方法最后追加一个 autoRegisterAllPlatforms: true 的设置即可(需要引用 Senparc.Weixin.All 包):
var registerService = app.UseSenparcWeixin(app.Environment, null, null, register => { },
    (register, weixinSetting) => { /* 无需手动注册 */ },
    autoRegisterAllPlatforms: true /* 自动注册所有平台 */
);

调用高级接口(只需 1 句代码):

可在程序任意位置调用接口(以客服接口为例):

await CustomApi.SendTextAsync("AppId", "OpenId", "Hello World!");

…

 C#
using Senparc.NeuChar.Entities;
using Senparc.Weixin.MP.Entities;
using Senparc.Weixin.MP.Entities.Request;
using Senparc.Weixin.MP.MessageContexts;
using Senparc.Weixin.MP.MessageHandlers;

namespace Senparc.Weixin.Sample.MP
{
    /// <summary>
    /// 自定义MessageHandler
    /// 把MessageHandler作为基类,重写对应请求的处理方法
    /// </summary>
    public partial class CustomMessageHandler : MessageHandler<DefaultMpMessageContext>
    {
        public CustomMessageHandler(Stream inputStream, PostModel postModel, int maxRecordCount = 0,
            bool onlyAllowEncryptMessage = false, IServiceProvider serviceProvider = null)
            : base(inputStream, postModel, maxRecordCount, onlyAllowEncryptMessage, null, serviceProvider)
        {
        }

        /// <summary>
        /// 所有未处理类型的默认消息
        /// </summary>
        /// <returns></returns>
        public override IResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage)
        {
            //ResponseMessageText也可以是News等其他类型
            var responseMessage = this.CreateResponseMessage<ResponseMessageText>();
            responseMessage.Content = $"你发送了一条消息,但程序没有指定处理过程";
            return responseMessage;
        }

        public override Task<IResponseMessageBase> OnImageRequestAsync(RequestMessageImage requestMessage)
        {
            //处理图片请求...
        }

        public override Task<IResponseMessageBase> OnLocationRequestAsync(RequestMessageLocation requestMessage)
        {
            //处理地理位置请求...
        }
    }
}

第二步:请求 CustomMessageHandler:

我们提供了 中间件(推荐)和 Controller(或WebApi) 两种方式请求 CustomMessageHandler,您可以任选其一。以中间件为例,在 Program.cs 中启用配置后添加代码,注册 MessageHandler:

app.UseMessageHandlerForMp("/WeixinAsync",
    (stream, postModel, maxRecordCount, serviceProvider)
        => new CustomMessageHandler(stream, postModel, maxRecordCount, false, serviceProvider),
    options 
        =>
    {
        options.AccountSettingFunc = context => Senparc.Weixin.Config.SenparcWeixinSetting;
    });

…


Copyright 2025 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 
except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the 
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
either express or implied. See the License for the specific language governing permissions 
and limitations under the License.

Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md

[!TIP] 100% 开源,支持商用。

GitHub Issues· 0 开放

在 GitHub 查看全部

暂无开放 Issues,或尚未同步最近议题。

> 标签

C#c-sharpcachedistributed-cachedotnetcore

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类数据库
定价开源

> 相关工具

P
PostgreSQL
功能强大的开源关系型数据库
R
Redis
内存数据结构存储,常用作缓存与队列
M
MySQL
广泛使用的开源关系型数据库