在微信公众号开发中,模板消息发送失败并报错 41000
,通常是由于以下原因之一:
get_user_info
接口来验证用户的关注状态。get_user_info
接口来验证用户是否仍然关注公众号。以下是一个简单的 Python 示例,展示如何在发送模板消息之前验证用户的 OpenID 是否有效:
import requests
def get_user_info(access_token, openid):
url = f"https://api.weixin.qq.com/cgi-bin/user/info?access_token={access_token}&openid={openid}&lang=zh_CN"
response = requests.get(url)
data = response.json()
return data
def send_template_message(access_token, openid, template_id, data):
# 首先验证用户是否关注公众号
user_info = get_user_info(access_token, openid)
if user_info.get('subscribe') == 0:
return {"errcode": 41000, "errmsg": "用户未关注公众号"}
# 如果用户关注了公众号,发送模板消息
url = f"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={access_token}"
payload = {
"touser": openid,
"template_id": template_id,
"data": data
}
response = requests.post(url, json=payload)
return response.json()
# 示例调用
access_token = "your_access_token"
openid = "user_openid"
template_id = "your_template_id"
data = {
"first": {"value": "Hello", "color": "#173177"},
"keyword1": {"value": "World", "color": "#173177"}
}
result = send_template_message(access_token, openid, template_id, data)
print(result)
通过以上步骤,你可以有效地解决微信公众号模板消息报错 41000
的问题。关键在于确保 OpenID 的有效性,并且在发送模板消息之前验证用户的关注状态。