中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django后端發送小程序微信模板消息的示例分析

發布時間:2021-07-26 14:42:04 來源:億速云 閱讀:301 作者:小新 欄目:開發技術

小編給大家分享一下Django后端發送小程序微信模板消息的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

模板消息

模板消息如下圖所示

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后端發送小程序微信模板消息的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰溪市| 商河县| 成都市| 桐城市| 翼城县| 大名县| 贡觉县| 阳信县| 苍梧县| 汉川市| 阿勒泰市| 罗城| 滁州市| 通许县| 田阳县| 平顶山市| 高唐县| 紫金县| 渝北区| 洮南市| 临湘市| 皮山县| 宜兴市| 广汉市| 万宁市| 鄂州市| 巴彦县| 抚宁县| 中阳县| 沁源县| 蓬溪县| 洪湖市| 平利县| 嵩明县| 沛县| 潜江市| 高唐县| 石嘴山市| 津市市| 宿迁市| 龙州县|