微信小程序订阅消息

功能介绍

消息能力是小程序能力中的重要组成,我们为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验。

    订阅消息推送位置:服务通知 订阅消息下发条件:用户自主订阅 订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面

消息类型

1. 一次性订阅消息

一次性订阅消息用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。

2. 长期订阅消息

一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。

目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。

3. 设备订阅消息

设备订阅消息是一种特殊类型的订阅消息,它属于长期订阅消息类型,且需要完成「」才能使用。

设备订阅消息用于在设备触发某些需要人工介入的事件时(例如设备发生故障、设备耗材不足等),向用户发送消息通知。详见文档。

使用说明

步骤一:获取模板 ID

步骤二:获取下发权限

一次性订阅消息、长期订阅消息,详见接口

设备订阅消息,详见接口

<button bind:tap="dy">点阅</button>
dy(){

    wx.requestSubscribeMessage({
      tmplIds: [
        pwJPpuUOUcj3QEH8i1MbTlTxPn7qWs_m_iOAlIzMEEI,
        HVJn3Doujaw9x6L_eN5iCuaRfAt3CcrbjbbAvPxxuYA
      ],
      success (res) { 
        console.log(res)
      }
    })
  },

步骤三:调用接口下发订阅消息

一次性订阅消息、长期订阅消息,详见服务端接口

设备订阅消息,详见服务端接口

public function sendTemplateMessage()
    {
        /**
         * pwJPpuUOUcj3QEH8i1MbTlTxPn7qWs_m_iOAlIzMEEI,
         * HVJn3Doujaw9x6L_eN5iCuaRfAt3CcrbjbbAvPxxuYA
         *
         */
        try{

            $data = $data = [
                thing1 => 每日签到-2022-08-29,
                thing2 => 点击立即签到,
                number3 => 20,
                time4 => date(Y-m-d H:i:s),
            ];
            //$form_id = ;

            $template_id = pwJPpuUOUcj3QEH8i1MbTlTxPn7qWs_m_iOAlIzMEEI;

            $uid = 8;

            $res = WechatService::sendTemplateMessage($template_id, $uid, $data);

            dd($res);


        } catch (Exception $e) {


        }

    }

注意事项

    用户勾选 “总是保持以上选择,不再询问” 之后,下次订阅调用 wx.requestSubscribeMessage 不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改。

订阅消息事件推送

1、当用户触发订阅消息弹框后,用户的相关行为事件结果会推送至开发者所配置的服务器地址或服务。

服务器配置:

服务端代码:

返回结果JSON格式示例

{
	"ToUserName": "gh_948c943457b0",
	"FromUserName": "ol-XM4o0H--PF84C7IlMvw3N6C7M",
	"CreateTime": 1661822213,
	"MsgType": "event",
	"Event": "subscribe_msg_sent_event",
	"List": {
		"ErrorCode": "0",
		"ErrorStatus": "success",
		"MsgID": "2553994613687189504",
		"TemplateId": "pwJPpuUOUcj3QEH8i1MbTlTxPn7qWs_m_iOAlIzMEEI"
	},
	"Encrypt": "LCawsQ9PJFz48UsQVG7wOL1ahwhrKQIE7uiMxr6b8nRSvVGLIpGTmwQU5b/R3HA+J1JY/eCN9tua4GYqZ6MRrjNKM6A7gjJCWEf/zgZt7QbNp2RXC+hr7Wqfn9eZrWHjeM4AYuDEs3cFZhhOFNMXiuH/csIda0ZCdZ8o9oPlmW9dfHTlQ0o/Z00/QXr+ryVqAo/7F4yBTDCrXVHtTvZ6qdJtLX8NY8oHrdZx7tdTktkIEUuzubN/i4DCQJSnoNGBPdNzpABm9LnFHbu+ZmvCe5YGSNlerY/S1G7Z0C6G3uKPmpgMQKn2mcivxBRuC+hHwR7Ur7FzYeYtcpMdcROVfoP0P+21qoIiWGgPdgh5P/h4/i93DixmB3wi+wnY6VVdWR1s6/vvjEGsgPHCzJZSDPtsR/y40DUTdHoZrT3ynUO3AGT6SLS09c/EB6diOFLyS83YY3yH27ajXapC1HVavw=="
}

发送结果:

经验分享 程序员 微信小程序 职场和发展