微信小程序python flask发送订阅消息(服务端使用urllib发起post请求)

选择模板

在微信后台选择对应的消息模板

小程序点击订阅

参考文档地址

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html

在页面设置按钮,只有当用户点击,才会弹框提醒,且允许后生效.

点击一次,可发送一次订阅消息

订阅消息

官方文档地址

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html

订阅消息API参数

注意data里面的data参数名和上述的模板消息字段匹配,如thing1,thing2

data = {
    # 用户的openId
    "touser": 'ok2Q65Fte6lDt7ELrXYQ-JQIx2l8',
    # 订阅消息模板id
    "template_id": "KDyVpbwZxn09Jm9LVGrhTTSEnHceEBKI3cRFIU-Z-fE",
    # 要跳转的页面
    "page": "pages/mine/index",
    # 模板消息对应的内容设置
    "data": {
        "thing1": {
            "value": "您的xx服务已到期"
        },
        "thing2": {
            "value": "剩余2天时间"
        },
        "thing3": {
            "value": "请尽快充值续期"
        },
        "thing4": {
            "value": "巴拉巴拉"
        }
    }
}

服务端post请求

此处使用项目为python flask

服务端token参考地址(后台接口调用凭据,全局唯一)

https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html

# 服务端token
serverToken = '33_0YjkW9kCMa-0N10emqbOcEzI4G9VCWT_r9E8cU0JfKdtu8EpgAnyGe62DQix7CKvHLtyzBY3eUV1ZSMj2RyzvaPIDuckkozn_MHLahXW11pl3PvVdxxdbVgWY4If78UjYeEOUr0ZW49gUsI3RSGhAAAUVJ'
# 要请求的微信API
url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={serverToken}'.format(serverToken = serverToken)
# 数据格式化(从这里开始对上面的data进行格式化,转成符合post的json参数形式)
data = json.dumps(data)
# 数据格式化
data = bytes(data, 'utf8')
# 数据格式化
request = urllib.request.Request(url)
# post服务器请求
result = urllib.request.urlopen(request, data).read()
# 打印结果
print(result)

推送效果

当服务端发起微信订阅API时,对应openid的用户就会收到指定的订阅消息

效果如图

END.