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


Posted in Python onDecember 17, 2019

模板消息

官方文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.send.html

模板消息如下图所示

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

Django中获取access_token

根据文档描述,获取access_token文档,后端必须获取一个access_token才能够发送模板消息,文档中说明该token有效期为两小时,需要后端定时去获取。我们这里使用Django-crontab第三方包来实现定时任务。

pip install django-crontab

根据文档描述,需要向https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET这个地址发送get请求,返回结果为access_token

我把access_token存入到缓存中

Python代码如下:

response = requests.get(f'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={settings.APPID}&secret={settings.APPSECRET}')
response = response.json()
if response.get('access_token', ''):
 cache.set('access_token', response['access_token'])
 cache.expire('access_token', response['expires_in'])

在settings.py中配置:

CRONJOBS = (
 #每隔7200秒都生成一次access——token
 ('0 */2 * * *', 'django.core.management.call_command', ['runstat', '--token']),
)

这样就实现了每隔两小时自动获取token

Django发送模板消息

我们首先在微信公众平台中创建模板消息

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

然后把模板ID复制到项目中,编写视图函数。

@require_http_methods(["POST"])
@csrf_exempt
def notifications(request):
 if request.method == 'POST':
  access_token = cache.get('access_token')

  template_id = '你的模板id'
  push_data = {
   "keyword1": {
    "value": obj.order_sn
   },
   "keyword2": {
    "value": obj.time
   },
   "keyword3": {
    "value": "{:.2f}".format(float(obj.total_price))
   },
  }

  if access_token:
   # 如果存在accesstoken
   payload = {
    'touser': req_data.get('openid', ''), #这里为用户的openid
    'template_id': template_id, #模板id
    'form_id': req_data.get('form_id', ''), #表单id或者prepay_id
    'data': push_data #模板填充的数据
   }

   response = requests.post(f'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token={access_token}',
       json=payload)

   #直接返回res结果
   return JsonResponse(response.json())
  else:
   return JsonResponse({
    'err': 'access_token missing'
   })

配置urls.py

#模板消息通知
path('api/v1/notifications/', notifications),

用户向notifications这个接口发送post请求后即可推送模板消息到微信中!!

以上这篇Django后端发送小程序微信模板消息示例(服务通知)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python分析nignx访问日志脚本分享
Feb 26 Python
Python随机数random模块使用指南
Sep 09 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 Python
Python 生成 -1~1 之间的随机数矩阵方法
Aug 04 Python
Python画图高斯分布的示例
Jul 10 Python
Python内存管理实例分析
Jul 10 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
python如何实现单链表的反转
Feb 10 Python
部署Django到阿里云服务器教程示例
Jun 03 Python
python访问hdfs的操作
Jun 06 Python
Python如何获取文件路径/目录
Sep 22 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 #Python
python主线程与子线程的结束顺序实例解析
Dec 17 #Python
Django通用类视图实现忘记密码重置密码功能示例
Dec 17 #Python
Django集成celery发送异步邮件实例
Dec 17 #Python
python学生信息管理系统实现代码
Dec 17 #Python
pymysql模块的操作实例
Dec 17 #Python
Django异步任务线程池实现原理
Dec 17 #Python
You might like
YB217、YB235、YB400浅听
2021/03/02 无线电
IStream与TStream之间的相互转换
2008/08/01 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
js运动应用实例解析
2015/12/28 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
python实现简单多人聊天室
2018/12/11 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
自定义django admin model表单提交的例子
2019/08/23 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
2014年三万活动总结
2014/04/26 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
2014个人年度工作总结
2014/12/15 职场文书
岳麓书院导游词
2015/02/03 职场文书
自我推荐信怎么写
2015/03/24 职场文书
繁星春水读书笔记
2015/06/30 职场文书
信息技术研修心得体会
2016/01/08 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
2021/03/31 HTML / CSS
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python