Django后端发送小程序微信模板消息示例(服务通知)

yizhihongxing

当小程序需要向用户发送通知时,可以使用微信提供的模板消息功能来实现。在Django后端中,可以使用官方提供的WeChat official account SDK来发送模板消息。

以下是使用Django后端发送小程序微信模板消息的完整攻略:

安装和配置WeChat official account SDK

官方提供的WeChat official account SDK支持发送小程序模板消息。通过以下命令安装:

pip install wechat-sdk

在Django的settings.py中添加以下配置项:

WECHAT_APP_ID = 'your app id' # 小程序的 App ID
WECHAT_SECRET = 'your app secret' # 小程序的 App Secret
WECHAT_TEMPLATE_ID = 'your template id' # 模板消息的模板ID

获取Access Token

通过WeChat official account SDK获取小程序的Access Token,用于发送模板消息。可以在配置文件中添加以下代码:

from wechat_sdk import WechatBasic

# 实例化WeChat Basic对象,并传入app id和app secret
wechat = WechatBasic(appid=settings.WECHAT_APP_ID, appsecret=settings.WECHAT_SECRET)

# 通过WeChat Basic对象获取小程序的Access Token
access_token = wechat.get_access_token()

构造模板消息内容

构造模板消息内容时,需要根据小程序后台管理中定义的模板格式,传入对应的参数。例如下面是一个进货提醒的模板,包含商品名称、价格、进货日期等参数:

{
    "keyword1": {
        "value": "Nike AF1"
    },
    "keyword2": {
        "value": "699元"
    },
    "keyword3": {
        "value": "2022年8月1日"
    }
}

通过WeChat official account SDK构造模板消息内容:

from wechat_sdk.messages import TemplateMessage

# 构造TemplateMessage对象,并传入小程序Access Token和模板ID
template_message = TemplateMessage(access_token=access_token, template_id=settings.WECHAT_TEMPLATE_ID)

# 添加模板消息内容参数
template_message.data = {
    "keyword1": {
        "value": "Nike AF1"
    },
    "keyword2": {
        "value": "699元"
    },
    "keyword3": {
        "value": "2022年8月1日"
    }
}

发送模板消息

构造完模板消息内容后,就可以通过WeChat official account SDK发送模板消息。以下是发送模板消息的代码:

from wechat_sdk.exceptions import OfficialAPIError

# 发送模板消息,并获取返回结果
try:
    result = template_message.send(to_user_openid='user openid')
except OfficialAPIError as e:
    result = e.errmsg

# 打印返回结果
print(result)

其中,to_user_openid是接收模板消息的用户openid。

以上就是使用Django后端发送小程序微信模板消息的完整攻略。下面是两个示例:

示例一:订单支付成功通知

模板消息的模板ID:

CZZKQZiQvP5-cAxZ8DDym47zqPXTplpTS955UjyF7x8

模板消息的内容:

{
    "keyword1": {
        "value": "xvlj86d5"
    },
    "keyword2": {
        "value": "100元"
    },
    "keyword3": {
        "value": "2022年8月1日"
    },
    "keyword4": {
        "value": "微信支付"
    }
}

代码示例:

from wechat_sdk import WechatBasic
from wechat_sdk.messages import TemplateMessage
from wechat_sdk.exceptions import OfficialAPIError

# 实例化WeChat Basic对象,并传入app id和app secret
wechat = WechatBasic(appid=settings.WECHAT_APP_ID, appsecret=settings.WECHAT_SECRET)

# 通过WeChat Basic对象获取小程序的Access Token
access_token = wechat.get_access_token()

# 构造TemplateMessage对象,并传入小程序Access Token和模板ID
template_message = TemplateMessage(access_token=access_token, template_id='CZZKQZiQvP5-cAxZ8DDym47zqPXTplpTS955UjyF7x8')

# 添加模板消息内容参数
template_message.data = {
    "keyword1": {
        "value": "xvlj86d5"
    },
    "keyword2": {
        "value": "100元"
    },
    "keyword3": {
        "value": "2022年8月1日"
    },
    "keyword4": {
        "value": "微信支付"
    }
}

# 发送模板消息,并获取返回结果
try:
    result = template_message.send(to_user_openid='user openid')
except OfficialAPIError as e:
    result = e.errmsg

# 打印返回结果
print(result)

示例二:商品库存不足提醒

模板消息的模板ID:

5VOoKTw7FpJyEfkohjKQ7X-TM9dUFHLg8ozaXQeaRXY

模板消息的内容:

{
    "keyword1": {
        "value": "Nike AF1"
    },
    "keyword2": {
        "value": "库存仅剩10件"
    }
}

代码示例:

from wechat_sdk import WechatBasic
from wechat_sdk.messages import TemplateMessage
from wechat_sdk.exceptions import OfficialAPIError

# 实例化WeChat Basic对象,并传入app id和app secret
wechat = WechatBasic(appid=settings.WECHAT_APP_ID, appsecret=settings.WECHAT_SECRET)

# 通过WeChat Basic对象获取小程序的Access Token
access_token = wechat.get_access_token()

# 构造TemplateMessage对象,并传入小程序Access Token和模板ID
template_message = TemplateMessage(access_token=access_token, template_id='5VOoKTw7FpJyEfkohjKQ7X-TM9dUFHLg8ozaXQeaRXY')

# 添加模板消息内容参数
template_message.data = {
    "keyword1": {
        "value": "Nike AF1"
    },
    "keyword2": {
        "value": "库存仅剩10件"
    }
}

# 发送模板消息,并获取返回结果
try:
    result = template_message.send(to_user_openid='user openid')
except OfficialAPIError as e:
    result = e.errmsg

# 打印返回结果
print(result)

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django后端发送小程序微信模板消息示例(服务通知) - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • CentOS 7 下LAMP实现及基于https的虚拟化主机

    下面我来详细讲解“CentOS 7 下LAMP实现及基于https的虚拟化主机”的完整攻略。 一、CentOS 7 下LAMP实现 1. 安装Apache 执行以下命令安装Apache: sudo yum install httpd 启动Apache服务: sudo systemctl start httpd.service 设置Apache服务开机启动: …

    python 2023年5月23日
    00
  • Python中pygal绘制雷达图代码分享

    下面是关于Python中pygal绘制雷达图的攻略。 1. pygal绘制雷达图 pygal是一款功能强大的Python绘图库,可用于生成各种类型的图表,包括雷达图。使用pygal绘制雷达图只需简单的几行代码,如下所示: import pygal radar_chart = pygal.Radar() radar_chart.title = ‘Radar C…

    python 2023年6月6日
    00
  • Python基础—conda使用笔记

    Python基础—conda使用笔记 1. 环境配置 由于用conda管理虚拟环境真滴很方便,所以主要使用conda,就不单独去装Python了。 1.1. Miniconda3安装 Miniconda3官网下载地址:Miniconda Miniconda3清华镜像下载:清华镜像-Miniconda 对于Windows系统:Miniconda安装跟正常的软件…

    python 2023年4月22日
    00
  • Python 2.7 之前的 dict 理解的替代方案

    【问题标题】:Alternative to dict comprehension prior to Python 2.7Python 2.7 之前的 dict 理解的替代方案 【发布时间】:2023-04-05 12:54:01 【问题描述】: 如何使以下功能与 Python 2.7 之前的 Python 版本兼容? gwfuncs = [reboot, f…

    Python开发 2023年4月5日
    00
  • python 用递归实现通用爬虫解析器

    Python用递归实现通用爬虫解析器 在爬虫编写过程中,解析器的编写是一个必不可少的环节。不同的网站页面结构可能会不一样,因此编写通用爬虫解析器可以提高代码的复用性。本文将介绍如何使用Python中的递归算法实现通用爬虫解析器的功能。 具体步骤 分析网页结构,确定爬取的目标元素的标签和类名。 使用Python中的Requests库获取网页的源代码。 使用Py…

    python 2023年5月14日
    00
  • Python生成验证码实例

    生成验证码是一种常见的网络应用场景,可以用于用户注册、登录验证等等。下面是Python生成验证码的完整攻略。 1. 安装依赖库 Python生成验证码需要用到Pillow库,可以通过以下命令安装: pip install Pillow 2. 创建验证码生成函数 我们创建一个名为get_verify_code的函数,该函数可以生成4位随机字符,还会将字符绘制到…

    python 2023年6月3日
    00
  • Python7个爬虫小案例详解(附源码)上篇

    Python7个爬虫小案例详解(附源码)上篇 本文介绍了7个Python爬虫小案例,包括爬取豆瓣电影、爬取糗事百科、爬取百度贴吧、爬取知乎、爬取博客园、爬取淘宝商品和爬取京东商品。每个案例都提供了完整的源码和详细的注释,方便读学习和实践。 1. 爬取豆瓣电影 本案例使用Python爬虫爬取豆瓣电影Top250的电影信息,包括电影名称、评分、导演、主演和简介等…

    python 2023年5月13日
    00
  • 是否可以在 python 的类中单独访问实例属性?

    【问题标题】:Is it possible to access instance attributes separately in a class in python?是否可以在 python 的类中单独访问实例属性? 【发布时间】:2023-04-04 00:15:01 【问题描述】: 在下面的代码中,如果我将帐户实例创建为 accnt 并写入 accnt…

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部