📈 Senparc.Weixin SDK
是 目前 使用 率 最高 的 微 信 .NET SDK,也是国内 最 受欢迎 的 .NET 开源项目之 一 。本 项目已 持 续维护超过 11年 ,助力 大量 系 统和应用取得 成功 。我 们将继续保持 更新 ,并正在 深度 融合 AI 场景应用,示 例 正 在 逐步上 线。欢迎加入 我 们的社 区 👐
如果你喜欢并
Note
⚡ Sample
🔒
🎠
Note
1、
2、
3、/docs
4、对应于微
Note
1、/Samples/MP/Senparc.Weixin.Sample.MP
2、如需查看其他/Samples/
/Samples/All/
1、
builder.Services.AddSenparcWeixinServices(builder.Configuration);
如果您
使用 的 是 旧 格式 的 Startup.cs文 件 ,上述 代 码对应于 Startup.cs的 ConfigureServices()方法 内 。
2、
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 /*自 动注册 所有 平台 */ );
await CustomApi.SendTextAsync("AppId", "OpenId", "Hello World!");
Tip
- Senparc.Weixin SDK
将 全 生命 周期 自 动托管 AccessToken,因 此开发过程 只 需提供 AppId,无需操 心 AccessToken 过期等 问题。 - AppId
等 注 册 信 息 可 从Senparc.Weixin.Config.SenparcWeixinSetting
中 自 动获取,相 关参数 在 appsettings.json
中 配置 。 以上 方法 也支持 同 步 方法 :Senparc.Weixin.MP.AdvancedAPIs.CustomApi.SendText()
。所有 接 口 命名 空 间均参照 官 方 API路 径 规则定 义,且参数 命名 方式 尽 量 与 文 档保持 一致 (特 别是返 回 参 数 ),以方便 开发者 在 源 码中快速 查找定位 、提 升 测试效率 、降 低 bug 发生的 可能 性 。
Tip
CustomMessageHandler.cs
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)
{
//处理地理 位置 请求...
}
}
}
(推荐)Controller(
两种
app.UseMessageHandlerForMp("/WeixinAsync",
(stream, postModel, maxRecordCount, serviceProvider)
=> new CustomMessageHandler(stream, postModel, maxRecordCount, false, serviceProvider),
options
=>
{
options.AccountSettingFunc = context => Senparc.Weixin.Config.SenparcWeixinSetting;
});
此时,您已经可以
此外,您还Controller(
- 🏹
各 模 块类库 - 💾
源 码项目 文 件 夹说明 (src文 件 夹下) - 🖥️ Samples
文 件 夹说明 (Samples文 件 夹下) - 🎨 资源
- 📖 Senparc
官 方 图书教程 - 🖥️ Senparc
官 方 视频教程 - 🧪 关注测试账号(SenparcRobot)
- ✋ 贡献
代 码 - 👩🏫
如何 使用 .NET Core 开发 ↕️ 使用 Nuget安 装 到 项目中 - 🏬
如何 部署 - 🍴
各 重要 分 支 说明 - 🍟
感 谢贡献 者 - 💰 捐助
- ⭐ Star
数量 统计 - 📎 License
使用 Visual Studio 2022打 开 Demo(支持 所有 版本 ):.NET 8.0 - Senparc.Weixin.Sample.Net8.sln(包含 源 码引用 推荐)使用 Visual Studio 2019或 更 高 版本 打 开 .NET Framework Demo:Senparc.Weixin.MP.Sample.Net45.sln(不 包含 源 码,仅引用 类库)使用 Visual Studio 2019或 更 高 版本 打 开命令 行 Console Demo(.NET Core):Senparc.Weixin.MP.Sample.Consoles.vs2019.sln
# | DLL | Nuget | ||
---|---|---|---|---|
1 | Senparc.Weixin.dll | |||
2 | JSSDK / 摇周边 |
Senparc.Weixin.MP.dll | ||
3 | ( ( |
Senparc.Weixin.WxOpen.dll | ||
4 | Senparc.Weixin.TenPay.dll | |||
5 | Senparc.Weixin.TenPayV3.dll | |||
6 | ASP.NET MVC 扩展 |
Senparc.Weixin.MP.MVC.dll | ||
7 | Senparc.Weixin.QY.dll | |||
9 | Senparc.Weixin.Work.dll | |||
9 | Senparc.Weixin.Open.dll | |||
10 | Redis |
Senparc.Weixin.Cache. Redis.dll |
||
11 | Memcached |
Senparc.Weixin.Cache. Memcached.dll |
||
12 | WebSocket ( |
Senparc.WebSocket.dll | ||
13 | All In One |
Senparc.Weixin.All.dll |
.NET Framework 4.6.2+ | .NET Standard 2.0 / 2.1 | .NET 8.0, |
Warning
自 2019年 5月 1日 起 ,.NET Framework 3.5 及 4.0停止 更新 ,最 后 一 个 .NET Framework 3.5 + 4.0 稳定版 点 击这里 。自 2022年 4月 3日 起 ,.NET Framework 4.5升 级为 4.6.2,最 后 一 个 .NET Framework 4.5的 稳定版 点 击这里 。- 如果您还
在 使用 .NET Framework,建 议您在 2027年 1月 12日 之 间,将 .NET Framework 应用升 级至 .NET Framework 4.8+,彼 时官方 将 停止 对 .NET Framework 4.6.2的 支持 (查看)。 使用 Senparc.Weixin.All
集成 库可一次性自动引用所有模块。
已 经支持 大 部分 微 信 8.x API,包括 微 信 支 付 、自 定 义菜单/个性化 菜 单、模 板 信 息 接 口 、素材 上 传接口 、群 发接口 、多客 服 接 口 、支 付 接 口 、微小 店 接 口 、卡券接 口 、发票接 口 等 等 。已 支持 微 信 公 众号、小 程 序 、企 业号、开放平台 、微 信 支 付 等 各 个模块。已 经支持 用 户会话上下 文 (解 决服务器无法使用 Session 处理用 户信息 的 问题)。已 经全面 支持 微 信 公 众号、小 程 序 、企 业号(企 业微信 )、微 信 支 付 V2/V3、开放平台 的 最新 API。已 经支持 分布 式 缓存及缓存 策略 扩展(默 认支持 :本地 缓存、Redis、Memcached,可 自由 扩展),开发过程无需关心所 使用 缓存的 类型,可 在 配置 文 件 或 运行过程中 自由 切 换。
1.
目前 官 方 的 API都 已 完 美 集成 ,除 非 有 特殊 说明,所有 升 级都会 尽 量 确保向 下 兼 容 ,所以 已 经发布 的 版本 请放心 使用 或 直接 升 级(覆 盖)最新 的 dll,建 议使用 Nuget 进行更新 。
2. 您也可 以自行 修 改 并编译代码,打 开 Senparc.Weixin.Sample.Net8.sln解 决方案 即 可 看 到 所有 源 码。当 编译模 式 为Release
时,将 自 动生成本 地 Nuget包 (默 认生成 到 /src/BuildOutPut/
文 件 夹下)。
展 开
说明 | |
---|---|
Senparc.WebSocket | WebSocket |
Senparc.Weixin.Cache | Senparc.Weixin.Cache.Memcached.dll 、 Senparc.Weixin.Cache.Redis.dll |
Senparc.Weixin.AspNet | Senparc.Weixin.AspNet.dll 专为 Web |
Senparc.Weixin.MP.MvcExtension | Senparc.Weixin.MP.MvcExtension.dll |
Senparc.Weixin.MP | Senparc.Weixin.MP.dll |
Senparc.Weixin.MP.Middleware | Senparc.Weixin.MP.Middleware.dll |
Senparc.Weixin.Open | Senparc.Weixin.Open.dll |
Senparc.Weixin.TenPay | Senparc.Weixin.TenPay.dll & Senparc.Weixin.TenPayV3.dll |
Senparc.Weixin.Work | Senparc.Weixin.Work.dll |
Senparc.Weixin.Work.Middleware | Senparc.Weixin.Work.Middleware.dll |
Senparc.Weixin.WxOpen | Senparc.Weixin.WxOpen.dll |
Senparc.Weixin.WxOpen.Middleware | Senparc.Weixin.WxOpen.Middleware.dll |
Senparc.Weixin |
Senparc.Weixin SDK
开始),就可以举一反三使用其他模块。
从以.sln
All
说明 | SDK |
|
---|---|---|
MP | Nuget |
|
TenPayV2 | Nuget |
|
TenPayV3 | Nuget |
|
Work | Nuget |
|
WxOpen | Nuget |
|
Shared | ||
All | 推荐 |
|
┣ All/console | Nuget |
|
┣ All/net45-mvc | Nuget |
|
┗ All/net8-mvc |
官 网地址 :https://weixin.senparc.com/在 线 Demo地 址 (.NET 8.0,向 下 兼 容 .NET 6.0、7.0和 .NET Core):https://sdk.weixin.senparc.com/微 信 开发系列 教程 :https://www.cnblogs.com/szw/p/weixin-course-index.html微 信 技 术交流 社 区 :https://weixin.senparc.com/QA自 定 义菜单在线编辑工具 :https://sdk.weixin.senparc.com/Menu在 线消息 测试工具 :https://sdk.weixin.senparc.com/SimulateTool- 缓存测试
工具 :https://sdk.weixin.senparc.com/Cache/Test - chm帮助
文 档下载:https://sdk.weixin.senparc.com/Document 源 代 码及最新 更新 :https://github.com/JeffreySu/WeiXinMPSDK微 信 开发资源集合 :https://github.com/JeffreySu/WeixinResource- 《
微 信 开发深度 解析 》阅读辅助系 统:https://book.weixin.senparc.com - 购买《
微 信 开发深度 解析 》:https://item.jd.com/12220004.html - 《
微 信 公 众号 +小 程 序 快速 开发》视频教程 :https://github.com/JeffreySu/WechatVideoCourse
技 术交流 QQ群 :
1
群 (公 众号):300313885
14群 (视频课程学 员群):588231256
10群 (分布 式 缓存群 ):246860933
12群 (微 信 小 程 序 ):108830388
16群 (开放平台 ):860626938
以下 群 已 满:
2
群 :293958349(已 满),3群 :342319110(已 满)
4
群 :372212092(已 满), 5群 :377815480(已 满),6群 :425898825(已 满)
7
群 :482942254(已 满),8群 :106230270(已 满),9群 :539061281(已 满)
11
群 :553198593(已 满),13群 :183424136(开放平台 ,已 满),15群 :289181996(已 满)
- 业务联系QQ:498977166
如果这个项目对您
资金捐助:进入
由 Jeffrey Su和 盛 派 团队耗时 2年 完成 的 微 信 开发图书已 经出版 ,书名:《微 信 开发深度 解析 :公 众号、小 程 序 高 效 开发秘 籍 》,全 书配套辅助 阅读系 统已经上线: BookHelper。
欢迎购买正 版 图书:【购买正 版 】
图书出版 时的代 码版本 快 照 见分支 BookVersion1。
为了帮助
大家 更 直 观地了解 微 信 开发细节,同 时结合 《微 信 开发深度 解析 》图书进行学 习,我 们成立 “盛 派 课堂”小 组,开设了 微 信 开发视频课程,帮助大家 从多个维度 学 习微信 开发以及 .NET 开发过程中 的 诸多技巧 。
视频包含 两大部分 :
微 信 开发基 础技能 公 众号及小程 序 案 例 实战
共 计 60 课时,配 有 番 外篇 。
目前 视频已 经在网易云 课堂上 线,课程制作 精良 、内容 充 实,被 选为“A”级课程 ,【观看视频】,【查看课程代 码及课件】。
BookHelper | ||
---|---|---|
如果
需要 使用 或 修 改 此项目的 源 代 码,建 议先Fork。也欢迎 将 您修改 的 通用 版本 Pull Request过来。
- Fork
- 创建您的
特性 分 支 (git checkout -b my-new-feature
) 提 交您的 改 动 (git commit -am 'Added some feature'
)将 您的修 改 记录提 交到远程git
仓库 (git push origin my-new-feature
)然 后 到 github 网站的 该git
远程仓库的 my-new-feature
分 支 下 发起 Pull Request (请提交到Developer
分 支 ,不要 直接 提 交到master
分 支 )
当 前 分 支 包含 了 .NET Framework 4.6.2+ 及 .NET 6.0/7.0/8.0的 全 版本 代 码(已 经不更新 的 版本 请查看 release快 照 )。
其中 .NET Framework的 Demo位 于/src/Samples/All/net45-mvc
目 录下,
【推荐】.NET 8.0(向 下 兼 容 .NET 5.0、6.0、7.0 及 .NET Core 3.1等 更 低 版本 )的 Demo位 于/Samples/All/net8-mvc
目 录下。
注意 :以上 Sample中 ,net8-mvc
中 的 Sample直接 引用 了 每 个模块的源 码,使用 Release
编译后 可 生成 兼 容 不同 版本 的 Senaprc.Weixin SDK 库。
App Service
|
说明 |
---|---|
master | |
Developer | 1、开发 2、此分 |
BookVersion1 | 此分 |
DotNET-Core_MySQL | 此分 |
NET4.0 | 仅 |
NET3.5 | 仅 |
Developer-Senparc.SDK | 此分 |
如果这个项目对您
资金捐助:
Apache License Version 2.0
Copyright 2024 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% 开源,