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

模板消息

官方文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.send.html
模板消息如下图所示

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发送模板消息

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

然后把模板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请求后即可推送模板消息到微信中!!

原文地址:https://www.cnblogs.com/PyKK2019/p/11610482.html

时间: 2024-10-27 12:38:13

Django后端发送小程序微信模板消息(服务通知)的相关文章

微信小程序开发模板消息的时候 出现 errcode: 41028, errmsg: "invalid form id hint:

小程序开发模板消息的时候  出现 errcode: 41028, errmsg: "invalid form id hint: 我是使用的微信支付发送模板消息,提示的formid无效的 大家知道获取到的prepay id 还非常的诡异  他不是直接一个参数 而是还带了字符串 比如 prepay_id=wx2017xx 这样格式的 那传递到微信模板消息这里的formid上要怎么传值呢? 最后检验是需要去除掉prepay id 这个字符串的  然后传递过去就可以了 然后,还会有提示无效的,就是没有支

微信小程序之模板消息推送

最近在用sanic框架写微信小程序,其中写了一个微信消息推送,还挺有意思的,写了个小demo 具体见官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html 文档其实写的很详细清除了,包括返回数据的类型,报错信息 大致流程就是:调用微信小程序的接口,获取access_token,然后再调用发送模板信息的接口,发送消息 获取access_t

微信模板消息

以下文档只适合新手,如果你已经是一个微信开发的老鸟 就不用浪费时间阅读了: 需求分析:昨天晚上 有几个人在上一期的微信活动中 中奖了,领导给了一个案例说发送一条 微信模板消息 实现步骤: 1.查阅相关接口资料 以下内容提取 微信官方文档 模板消息调用时主要需要模板ID和模板中各参数的赋值内容: 模板中参数内容必须以".DATA"结尾,否则视为保留字: 模板保留符号"{{ }}"当我读到这里时候仍旧是一脸懵逼的样子,完全不知所云,于是接着往下看 到此 官方文档已看完,

微信小程序客服消息之解决方案

小程序自公开发布起就有消息推送功能,但由于张小龙对于微信小程序的定义为极简的生活方式,所以为了避免小程序发送过多的推送消息骚扰用户对于小程序消息推送制定了许多的规则和限制. 一.小程序客服消息的意义: 为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通. 二.小程序把推送消息定义为两大类:模板消息和客服消息 模板消息:后台可以制作消息模板,商户可以将模板消息发送给接受过服务的用户,用户接受过一次服务(以是否产生支付数据为准)

微信模板消息发送

整个开发流程,我在"简书" 上看到了一个完整的开发流程. https://www.jianshu.com/p/eb0e9c4dcdfe 微信官方接口为: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277 自己开发中总结了一下,如下,方便后续备查: ①微信的模板消息,其实是微信公众号上推送给用户的一条消息记录. 在开发的时候,需要获取到用户的openId(用户关注公众号就会产生一个唯一的openId

分享为小程序添加自动回复消息的5种方法!自动客服功能的微信小程序

如何通过小程序客服消息引导自动关注公众号? 小程序客服自动回复一个图文链接? 小程序客服可以发小程序卡片吗? 小程序客服能像公众号一样设置关键词回复吗? 收到消息时自动回复? 微信小程序新手如何默认自动回复功能 如果你遇到以上问题,请往下看!教大家实现微信小程序客服自动回复消息功能,以帮助我们更好地与客户进行互动. 当我们的小程序接入客服,在小程序前端增加一个客服按钮,用户可以点击按钮主动和我们的客服互动! 但是有个问题,消息那么多,如何才能接待的过来,能否想微信公众号一样自动回复,关键词回复,

微信模板消息接口-给用户发送订单成功信息/支付成功等等

微信模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等.不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息. <?php //curl模拟请求发送信息 function send_template_message($data,$access_token){ //return $data.'----'.$access_token; //$access_token = get_access_token($appId,$appSe

小程序客服消息接入微信教程

很多商家在咨询小程序,都会咨询手机上能不能接待客户,当然可以,但需要开通客服助手小程序,下面就和大家分享一下小程序客服消息接入微信教程? 基本流程:客服入口-添加绑定客服微信号-用绑定客服微信号扫码-进入客服工具-在线接待客户 步骤一:找到客服入口 首先需要登录微信小程序管理后台,找到客服界面,如图所示: 步骤二:添加绑定客服微信号 点击"客服",进入客服界面时,在右侧,有一个"添加"按钮,可以添加客服人员. 点击"添加",输入您需要绑定的微信号

C# MVC 微信支付之微信模板消息推送

微信支付之微信模板消息推送 今天我要跟大家分享的是"模板消息"的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不牛逼吗?现在的社会,人多多少少都有或轻或重的"强迫症".就是,看到有未读消息,都要去看一下.特别是现在的微信,大部分可以几个小时不看手机QQ有没有新消息来,但是这大部分人绝对做不到一个小时不看微信有没有消息来.现在的微信,真特么是神一样的存在,几乎人人手机上都会有微信.而且,如果你的公众号是服务号的话,这个