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性能优化的20条建议
Oct 25 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
PyCharm 常用快捷键和设置方法
Dec 20 Python
python使用KNN算法手写体识别
Feb 01 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 Python
Python利用heapq实现一个优先级队列的方法
Feb 03 Python
python安装requests库的实例代码
Jun 25 Python
对python中各个response的使用说明
Mar 28 Python
Python新手如何理解循环加载模块
May 29 Python
python 实现图片批量压缩的示例
Dec 18 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
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
Javascript var变量隐式声明方法
2009/10/19 Javascript
js 模拟气泡屏保效果代码
2010/07/10 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
python使用生成器实现可迭代对象
2018/03/20 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
自学考试自我鉴定范文
2013/09/26 职场文书
捐款倡议书
2014/04/14 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
Python进行区间取值案例讲解
2021/08/02 Python
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android