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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/5/8 13:38
# @Author : Ropon
# @File : send_msg.py

import requests
from westkq.utils.config import wxData


def get_access_token():
req = requests.get('https://api.weixin.qq.com/cgi-bin/token', params=wxData, timeout=3)
access_token = req.json().get('access_token', "")
return access_token


def template_push(openid, form_id, kqinfo, access_token):
data = {
"touser": openid,
"template_id": "",
"form_id": form_id,
'page': 'pages/search/search',
"data": {
'keyword1': {
'value': kqinfo.get("name")
},
'keyword2': {
'value': kqinfo.get("date")
},
'keyword3': {
'value': kqinfo.get("banci")
}
},
"emphasis_keyword": 'keyword3.DATA'
}
push_url = f'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token={access_token}'
result = requests.post(push_url, json=data, timeout=3)
return result


def auto_push(nickName):
import datetime
riqi = str(datetime.date.today() + datetime.timedelta(days=1))
nickName = nickName
from westkq.models import User
user_obj = User.query.filter_by(nickName=nickName).first()
print(user_obj.userName)
print(user_obj.openidval)
if not user_obj:
return f"{nickName}昵称对应用户不存在"
data = {
"ukey": "",
"uname": user_obj.userName,
"udate": riqi
}
openid = user_obj.openidval
from westkq import create_app
my_app = create_app()
with my_app.app_context():
from westkq import db
from westkq.models import FormId
ftemp_obj = FormId.query.filter(FormId.openidval == openid)
if not ftemp_obj:
return f"{nickName}昵称对应用户无FormId"
form_id = ftemp_obj.first().formidval
FormId.query.filter(FormId.formidval == form_id).delete()
db.session.commit()
req = requests.get('https://dev2.ropon.top/kaoqin', params=data, timeout=3)
kqinfo = req.json().get("data")
access_token = get_access_token()

res = template_push(openid, form_id, kqinfo, access_token)
return res.json()