type
status
date
slug
summary
category
tags
create_time
Jul 2, 2025 05:41 PM
icon
password
my_create_time
📝 前言
之前有一期介绍到了如何申请开通微信模板消息《个体户申请服务号认证和开通模板消息指南》。
这期再来介绍一下,如何通过 Python 来给指定的微信用户发送模板消息提醒。
🧭 背景介绍
微信模板消息广泛应用于自动通知、支付提醒、订单状态更新等场景,尤其对中小企业和个人开发者而言,是实现消息推送自动化的重要手段。
微信官方平台提供了模板消息接口,我们可以结合 Python 编程语言,实现自动化推送功能,提高运营效率。
📌 使用场景
- 自动向用户推送提醒(如:课程开始、订单发货、订阅到期等)
- 构建微信服务号的消息服务
- 企业内部消息提醒系统
- 与爬虫、数据分析等任务联动实现定时通知
📋 前提条件
在开始之前,请确保你已满足以下条件:
- 拥有一个已认证的微信服务号
- 模板消息功能已开通
- 熟悉基本的
Python
语言
🧑💻 详细步骤
1️⃣ 获取服务号AppID 和 AppSecret
在启用
AppSecret
之前,需要先成为开发者,进入服务号控制台 → 设置与开发 → 开发接口管理 → 成为开发者。
再启用AppSecret,需要另外保存好AppID和AppSecret,后面会用到。

2️⃣ 选择消息模板类目
这里需要选择类目模板库,如果选择的行业没有任何模板不建议申请新的模板,因为审核很严,可以换个常见的行业再找找现成的可用模板。
PS:一个服务号最多只能设置5个服务类目。



服务类目一定要选常用的,我刚开始选择工具 → 日历,结果里面一个模板都没有,申请也不给通过。。
后面选择 商业服务 → 软件/建站/技术开发,就有很多现成的模板可用了。
3️⃣ 选择消息模板
选择完类目后,回到模板消息 → 模板库 → 类目模板库,就可以看到有很多现成的模板可用了。
选择一个适合自己场景的模板,并挑选好需要的关键词即可。

4️⃣ 获取access_token
我们发送模板消息必须要先获取access_token,而微信提供了2个接口可以获取access_token,对比如下:
项目 | 普通 access_token 接口 | 稳定版 access_token 接口 |
接口地址 | https://api.weixin.qq.com/cgi-bin/token | https://api.weixin.qq.com/cgi-bin/stable_token |
请求方式 | GET | POST |
请求参数 | appid 、secret 、grant_type=client_credential | JSON 格式传参:
{
"grant_type": "client_credential",
"appid": "<你的AppID>",
"secret": "<你的AppSecret>"
} |
请求示例 | https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET | POST 到 https://api.weixin.qq.com/cgi-bin/stable_token ,Body 参数如上所示 |
接口特点 | 普通接口,存在高并发下限频风险 | 稳定版接口,官方建议在高并发下使用,系统自动降级为普通接口 |
并发优化 | 无并发控制机制,频繁调用可能触发频率限制 | 内部具备自动限流和稳定性处理,更适合大规模使用场景 |
官方推荐场景 | 小程序、公众号小规模使用 | 企业级应用、大量接口调用时建议使用 |
返回值 | { "access_token": "ACCESS_TOKEN", "expires_in": 7200 } | 返回结构相同: access_token 与 expires_in |
默认token都是7200秒有效期,这里建议直接使用稳定版接口即可。
Python 获取access_token代码示例(稳定版):
5️⃣ 设置IP白名单
首次调用接口获取
access_token
时,如果没有设置IP白名单,会提示以下错误信息:这是出于安全考虑,因此我们需要根据返回的IP地址,也即
invalid ip
后面的部分设置白名单。进入在服务号控制台 → 设置与开发 → 安全中心 → 设置IP白名单

6️⃣ 发送模板消息
在发送模板消息之前,我们还需要获取用户微信的
openid
,这个可以引导用户关注服务号,再动态获取,限于篇幅这期我们先省略这部分,直接使用一个固定测试用的openid。接口地址:
https://api.weixin.qq.com/cgi-bin/message/template/send
Python 发送模板消息代码示例:
参数说明:
- 用户OpenID,可在关注时动态获取并保存
- 模板消息ID,选择消息模板后,会提供一个模板ID
- 跳转链接,可选如果想要跳转到网页或小程序可以加上
- data,模板消息内容,这个比较关键,选择完消息模板后,进入模板详情可查看,示例如下:

对应查看代码中的参数,
value
为实际动态发送的值。注意:模板标题是没办法改的,所以尽量选择一个合适的模板。
7️⃣ 接收模板消息
发送完后,用户就可以在微信客户端(手机/PC)查看到发送的提醒消息,如下:

🧪 测试建议
- 请先使用开发者工具中的测试号进行测试
- 模板消息字段严格匹配模板格式,字段命名不可随意更改
- 每次 Access Token 获取后有效期为 2 小时,建议缓存处理
✅ 总结
通过本教程,你可以快速实现微信模板消息自动推送功能,无论用于服务号用户提醒,还是企业内部通知,Python 都能帮助你构建高效的消息系统。
未来可扩展方向包括:
- 定时任务(使用
schedule
或APScheduler
)
- 消息队列处理(如 RabbitMQ/Kafka)
- 集成在 Flask/Django 项目中统一管理通知
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
- 作者:lusyoe
- 链接:https://blog.lusyoe.com/article/python-send-wechat-template-message
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。