您好,登錄后才能下訂單哦!
小編給大家分享一下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發送模板消息
我們首先在微信公眾平臺中創建模板消息
然后把模板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后端發送小程序微信模板消息的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。