1. 为什么需要微信推送服务?
凌晨两点,线上数据库磁盘告警触发时,我正在熟睡。直到第二天早上打开邮箱看到告警邮件,已经过去了6个小时,用户投诉早已堆满了客服群。如果当时能立刻收到微信通知,5分钟就能处理完这个紧急情况。
这个真实经历让我开始思考:在AI Agent和自动化任务越来越普及的今天,我们需要一种更高效的推送方式。传统的邮件通知存在几个明显缺陷:
- 实时性差:邮件可能被归入垃圾箱或延迟接收
- 提醒力度弱:锁屏状态下无法及时感知
- 操作繁琐:需要专门打开邮件客户端查看
相比之下,微信推送具有不可替代的优势:
- 实时到达:消息秒级触达
- 强提醒能力:锁屏弹窗+声音提醒
- 零额外成本:无需安装新App,用户已习惯使用
- 高触达率:微信日活用户超过10亿
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 微信测试号申请与配置
2.1 获取开发者凭证
微信公众平台为开发者提供了测试账号系统,个人开发者无需企业资质即可申请:
- 访问微信测试号申请页面
- 使用个人微信扫码登录
- 记录页面顶部显示的appID和appsecret
重要提示:测试号每天有10万次消息推送额度,完全免费且无需审核,足够个人和小型项目使用。
2.2 配置消息模板
在测试号管理页面找到"模板消息接口"区域,点击"新增测试模板":
- 模板标题:任务通知
- 模板内容:
code复制{{title.DATA}}
{{content.DATA}}
注意两个关键点:
- 必须包含{{title.DATA}}和{{content.DATA}}变量
- 变量前需要添加描述文本(如"标题:"),否则推送会显示空白
2.3 获取用户OpenID
- 扫描测试号页面的"测试号二维码"关注公众号
- 在"用户列表"中找到自己的微信号
- 记录对应的openid(一串28位的字符串)
3. CSharp-WXPush服务部署
3.1 项目架构解析
这个开源项目采用极简设计理念:
- 单文件架构:核心逻辑全部集中在Program.cs(仅160行代码)
- 零第三方依赖:仅使用ASP.NET Core内置组件
- 嵌入式资源:详情页HTML直接编译进DLL
技术亮点:
csharp复制// 使用.NET 9 Minimal API构建
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
// 核心路由处理
app.MapMethods("/wxsend", ["GET", "POST"], async (HttpRequest req) =>
