首先在微信公众平台登录相应的微信小程序,左侧导航栏找到功能,点进去订阅消息,点击开通,点击选用,在公共模板库中选用订阅消息的模板。
js
wx.requestSubscribeMessage({
tmplIds:['aDRNef2_ty37dXyqVXyUADSyO8BXOZRWYiHie4sReUc'],// 最多支持3条
success(res) {
// 'accept'表示用户同意订阅该条id对应的模板消息
if (res['aDRNef2_ty37dXyqVXyUADSyO8BXOZRWYiHie4sReUc'] === 'accept') {
// 用户同意订阅,调用云函数或服务器接口发送订阅消息
wx.request({
url: 'https://api3-dev.qinghansoft.com/api/xl-message-subscribeUser',
data: {
openid:wx.getStorageSync('openid'),
},
success(res) {
console.log('订阅消息成功', res)
},
fail(err) {
console.error('订阅消息失败', err)
}
})
}
}
})
tmplIds就是模板ID。
wx.request里的API
import logging
import azure.functions as func
import json
import mysql.connector
import datetime
import os
import requests
import time
from datetime import date
def main(req: func.HttpRequest) -> func.HttpResponse:
date=str(datetime.date.today())
appid=''#对应小程序的appid
appsecret=''#对应小程序的appsecret
payload = {
'appid': appid,
'secret': appsecret,
'grant_type':'client_credential',
}
r = requests.get('https://api.weixin.qq.com/cgi-bin/token',params=payload)
resJSON= r.json()
access_token=resJSON['access_token']
openid = req.params.get('openid')
template_id = req.params.get('template_id')# 获取用户订阅的模版消息id
data = {
"touser":openid,#用户的openid
"template_id":template_id,#模板ID
"page":"index",
"miniprogram_state":"formal",
"lang":"zh_CN",
"data": {
"thing1": {"value": "理疗卡"},
"time3": {"value": date}
}
}
payload2 = {
'access_token': access_token
}
p = requests.post('https://api.weixin.qq.com/cgi-bin/message/subscribe/send',params=payload2,data=json.dumps(data))
return func.HttpResponse(access_token,status_code=200)
先用https://api.weixin.qq.com/cgi-bin/token拿到小程序的access_token(两小时过期),然后用https://api.weixin.qq.com/cgi-bin/message/subscribe/send向对应用户发送订阅信息,注意传递的data中的data要与模板详情里的详细内容相对应。
appid、appsecret在微信公众平台的设置里面查看。
参考文档:发送订阅消息 | 微信开放文档(注意必填项)