
微信公众号模板消息对接全流程(含接口调用细节)
一、账号准备与权限开通
-
注册/认证服务号
• 登录微信公众平台,注册并完成企业资质认证(个人主体无法使用模板消息功能)。 • 接口依赖:无,需在后台完成资质审核。 -
开通模板消息权限
• 进入公众平台后台 → 功能 → 模板消息 → 点击“开通”(若未显示,需在“新功能”中添加)。 • 操作关键点:选择与业务匹配的行业类目(如电商、医疗),否则无法申请相关模板。
二、模板申请与配置
-
选择模板
• 在模板库中搜索关键词(如“订单通知”),或自定义模板内容(需审核)。 • 接口依赖:无,模板ID通过后台直接获取。 -
模板参数配置
• 按微信规范填写动态参数(如{{keyword1.DATA}}
),设置跳转路径(小程序或H5链接)。 • 示例模板内容:{ "first": "订单支付成功!", "keyword1": "订单号:202503240001", "keyword2": "金额:¥99.00", "remark": "点击查看详情" }
三、获取用户标识(OpenID)
- 用户授权获取OpenID
• 用户需关注公众号,通过OAuth2.0授权获取其公众号OpenID(非小程序OpenID)。 • 接口调用:
◦ 授权跳转URL:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base#wechat_redirect
◦ 换取OpenID接口:GET https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APPSECRET&code=CODE&grant_type=authorization_code
四、AccessToken获取与管理
-
调用凭证接口
• 使用AppID和AppSecret获取全局AccessToken(有效期2小时)。 • 接口地址:
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
• 代码示例(Python):import requests def get_access_token(): url = "https://api.weixin.qq.com/cgi-bin/token" params = { "grant_type": "client_credential", "appid": "YOUR_APPID", "secret": "YOUR_APPSECRET" } response = requests.get(url, params=params).json() return response.get("access_token")
-
Token缓存策略
• 需本地存储Token并定时刷新,避免重复调用导致频率限制(每日2000次)。
五、发送模板消息
-
构建消息体
• 按模板格式填充动态参数,指定跳转链接或小程序路径。
• JSON结构示例:{ "touser": "USER_OPENID", "template_id": "TEMPLATE_ID", "url": "https://example.com/order-detail", "data": { "first": {"value": "订单状态更新", "color": "#173177"}, "keyword1": {"value": "202503240001", "color": "#FF0000"}, "remark": {"value": "感谢您的使用!"} } }
-
调用发送接口
• 接口地址:
POST https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
• 请求头:Content-Type: application/json
• 响应处理:
◦ 成功:{"errcode":0, "errmsg":"ok", "msgid":123456}
◦ 失败:根据errcode
排查(如40037为模板ID错误)。
六、调试与监控
-
接口调试工具
• 使用微信公众平台接口调试工具验证参数格式。 -
消息送达监控
• 记录发送日志,监控errcode
分布(如频率超限、用户拒收等)。
注意事项
- 频率限制:单个用户每日最多接收10条模板消息;
- 内容合规:禁止包含营销广告、外部链接(跳转域名需备案);
- UnionID关联:若需跨公众号/小程序推送,需通过开放平台绑定账号并获取UnionID。
如需完整代码示例或行业模板库列表,可参考微信官方文档。