## 发送订阅消息 # 步骤一:获取模板 ID 在微信公众平台手动配置获取模板 ID: 登录 [https://mp.weixin.qq.com](https://mp.weixin.qq.com/) 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。 ![](https://dcdn.it120.cc/yuque/0/2019/jpeg/572726/1575727618913-56fbca86-7f23-4790-97e5-1d28342c71a4.jpeg?x-oss-process=image/resize,w_1500) # 步骤二:后台配置模板消息 ![image.png](https://dcdn.it120.cc/yuque/0/2019/png/572726/1575815541455-c5a4b468-e625-416d-8759-6169c8a77319.png?x-oss-process=image/resize,w_1500 "image.png") ## 模板数据 ~~~ { "thing1": { "value": "申请成为分销商", "color": "#173177" }, "phrase2": { "value": "未通过审核", "color": "#FF0000" }, "thing4": { "value": "${saleDistributionApply.remark}", "color": "#173177" } } ~~~ 1. 上述模板数据中的 thing1、phrase2、thing4 具体请按照你选用的模板的具体关键词修改 2. color 变量仅针对服务号模板消息有效;小程序订阅消息无效,可不用设置; ## 模板数据中支持的变量 ### 订单 同[《**云打印机模板变量详细说明**》](https://www.it120.cc/help/wtviya.html) ### 分销商申请 ${saleDistributionApply.XXX} ~~~ mobile:手机号码 name: 姓名 status: 0 审核中 1 不通过 2 通过 remark: 备注 dateAdd: 申请时间 ~~~ ### 留言评论 ${comment.XXX} 具体字段可以查看后台评论留言返回数据结构字段 ### CMS文章 ${cmsnews.XXX} 具体字段可以查看后台cms文章管理列表返回数据结构字段 ## 触发状态 ### 订单 \-1 关闭订单 0 待支付 1 已支付待发货 2 已发货待确认 3 确认收货待评价 4 已评价 ### 分销商申请 1 不通过 2 通过 # 步骤三:获取下发权限 详见小程序端消息订阅接口 [wx.requestSubscribeMessage](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html) 必须要按钮的 bindTab 事件才能获得授权,其他方式都无法弹出授权窗口 # 一次性订阅和长期订阅 [https://tech.qq.com/a/20191015/009298.htm](https://tech.qq.com/a/20191015/009298.htm) `一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,平台提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。目前长期性订阅消息向政务、医疗、交通、金融、教育等线下公共服务开放,后续将综合评估行业需求和用户体验持续完善。` # 为什么没有收到推送消息? ## 小程序端检测 小程序端是否已经弹出如下授权信息,并且用户是否已经点击“允许”: ![image.png](https://dcdn.it120.cc/yuque/0/2020/png/572726/1585719158506-c648066b-657a-4286-a9f1-7181a8750e62.png "image.png") ## 确定是“订阅消息”还是“模版消息” 确认你添加的是订阅消息模版,不要误操作成模版消息模版 ## 变量先写死,排除变量错误导致的发送异常 在 “api工厂” 配置订阅消息的时候,暂时先不用变量,变量的地方就用微信官方的例子写死做测试,如果写死变量可以收到,那么问题就是变量导致的,我们再进行下一步排查 如果变量写死了,还是收不到,那么,说明你配置的 json 数据有问题,请仔细排查 例: ![image.png](https://dcdn.it120.cc/yuque/0/2020/png/572726/1585720223025-322bcede-a309-4be3-b503-408c4df4264c.png "image.png") 这个模版,有3个变量,那么测试的时候,就把这3个变量,用左侧的示例内容写死,看看能否收到消息,如: ~~~ { "character_string1": { "value": "2019103115382541014" }, "character_string5": { "value": "YT2018315450862" }, "time9": { "value": "2019-11-05 11:11:11" }, } ~~~ 确认变量的内容直接使用官方的示例,这样肯定是可以收到消息的,再下一步排查变量导致的问题 ## 变量使用不当 ### 变量的限制 微信的变量,并非可以使用任意的字符的,具体可查看官方说明: [https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html) ### 时间日期必须指定格式 所有的日期类的变量,必须指定日期显示格式,例如当前时间: ~~~ ${.now?string('yyyy-MM-dd HH:mm:ss')} ~~~ 这里的**?string('yyyy-MM-dd HH:mm:ss')** 是不能省略的