这是一份小程序消息订阅快速开发指引,其中演示了如何快速上手消息订阅的订阅、推送、支付订阅功能。
根据官方指南,小程序订阅消息功能接入一共分为三个步骤。
在微信公众平台手动配置获取模板 ID:
登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。
const templateId = 'FQAiSMdR5xibmnWL7zzIK26Px7vnHFY-40Oemx2rbOQ'; // 订阅消息模版id
wx.requestSubscribeMessage({
tmplIds: [templateId],
success(res) {
if (res[templateId] == 'accept') {
//用户同意了订阅,允许订阅消息
wx.showToast({
title: '订阅成功'
})
} else {
//用户拒绝了订阅,禁用订阅消息
wx.showToast({
title: '订阅失败'
})
}
},
fail(res) {
console.log(res)
},
complete(res) {
console.log(res)
}
})
详见小程序端消息订阅接口 wx.requestSubscribeMessage
####下面演示 HTTPS 调用,使用接口模拟服务端推送订阅消息。
Step 1:使用appid和secret生成access_token,使用Get请求:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxx&secret=xxx,返回结果如下:
Step 2:使用上面获取到的access_token,发起Post请求测试推送:https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=(access_token),请求和返回结果如下:
订阅推送消息报错43101,表示该小程序用户未允许接收订阅消息,若订阅消息成功则返回结果如下:
详见服务端消息发送接口 subscribeMessage.send
1、调用订阅消息需在tab绑定事件(或支付)中调用,否则不允许调用;
2、用户点击允许但未勾选不再提醒,则只能推送一次性提醒,以后需要推送则需要再次发起申请订阅流程。
3、发起过一次订阅申请之后用户在设置中不允许通知,则无法弹出申请对话框:
4、发起一次订阅消息只允许申请1-3个模板,超过3个将报错:
5、如果只需要小程序端允许接收订阅消息,而不需要在小程序端发起推送订阅消息,则不需要小程序端执行第三步,可由服务端发起推送;
6、调用接口下发订阅消息有HTTPS 调用和云调用两种方式,如使用 HTTPS 调用,则不用使用云调用方式;
完整代码见GitHab:小程序消息订阅
1、使用个人账号无法使用微信支付功能,未验证支付成功后是否能调用订阅消息。