乐趣区

关于java:微信下线模板消息订阅通知如何使用

背景

  • 微信于今日发表《服务号模板音讯能力调整》,原先的模板音讯能力将于 2021 年 4 月 30 日 24:00 下线,届时将无奈应用此接口发送模板音讯。
  • 简略来讲,向小程序开发看齐,不能间接通过公众号向已订阅的用户推送模板音讯。例如:改版后即便订阅了 招商银行信用卡核心,也无奈通过公众号收到 动账、还款的音讯揭示。
  • 笔者从事行业对于模板音讯属于强需要,所以整顿变更 订阅告诉 的革新和实现过程供大家参考。

名称解释

  • 一次订阅

指用户订阅一次,服务号可不限工夫公开发 一条 对应的订阅告诉;

  • 长期订阅

指用户订阅一次,服务号可长期 屡次下发 告诉,长期订阅告诉仅向政务民生、医疗等公共服务畛域凋谢;

  • 服务告诉

微信默认开启服务告诉性能,在用户聊天列表中会呈现 橙色的服务告诉

用户订阅流程

  • 如上图,用户能够通过点击公众号公布的图文中 插入多个订阅告诉 的按钮,用户点击图文中的按钮订阅

  • 如上图,用户在在开发者提供的 H5 页面中,通过 JSSDK 拉起订阅按钮

// 首先导入 JSSDK http://res2.wx.qq.com/open/js/jweixin-1.6.0.js
<wx-open-subscribe template="TenvU22BA1jCp4YHfYEpRuESXYReQyDuhs4vbdWA99I" id="subscribe-btn">
    <template slot="style">
    <style>
      .subscribe-btn {
          color: #fff;
          background-color: #07c160;
      }
     </style>
     </template>
     <template>
        <button class="subscribe-btn">
          上课告诉
         </button>
      </template>
</wx-open-subscribe>
<script>
var btn = document.getElementById('subscribe-btn');   btn.addEventListener('success', function(e){
     // 依据回调确定用户是 勾销 还是容许
    // 如果无奈接管微信回调的状况下,须要在此处保留用户订阅的新姐
});
</script>

接管微信回调的订阅事件

  • 用户在图文 /H5 等场景内订阅告诉的操作 , 会向开发者接口推送以下报文
<xml>
    <ToUserName> 公众号微信号 </ToUserName>
    <FromUserName> 用户 openid</FromUserName>
    <CreateTime> 工夫戳 </CreateTime>
    <MsgType><![CDATA[event]]>(固定值)</MsgType>
    <Event><![CDATA[subscribe_msg_popup_event]]>(固定值)</Event>
    <SubscribeMsgPopupEvent>
        <List>
            <TemplateId> 模板 id</TemplateId>
            <SubscribeStatusString> 用户点击行为(批准、勾销发送告诉)</SubscribeStatusString>
            <PopupScene> 场景(图文、H5)</PopupScene>
        </List>
    </SubscribeMsgPopupEvent>
</xml>
  • 依据推送报文,保留至 用户和订阅模板关系表,供下文推送应用

推送告诉流程

  • 调用微信服务发送订阅告诉
POST https://api.weixin.qq.com/cgi-bin/message/subscribe/bizsend?access_token=ACCESS_TOKEN
  • 申请参数阐明
{
  "touser": "接收者 openid,必须是曾经订阅此音讯模板的用户,不然无奈推送",
  "template_id": "音讯模板 ID",
  "page": "点击跳转的链接",
  "data": {
      "name1": {"value": "冷冷"},
       "time7": {"value": "2021-01-28 23:15:42"}
     }
}

问题汇总

  • 长期订阅告诉申请问题

目前开发的行业较少(政府、公共)其余行业是否凋谢长期订阅须要提前提供资料申请,防止模板音讯到期后导致业务阻塞。

  • 框架适配问题

目前支流微信开发 SDK(WxJava、JFinal Weixin)还未有相干的事件实现、接管报文等须要开发者本人解决。

  • 防止用户勾销受权

在 H5 页面 JSSDK 拉起用户【容许】、【勾销】都会有回调事件,在勾销状况给予用户明确阐明,并做好短信告诉的降级策略。

>>> 源码 https://gitee.com/log4j/pig,欢送署名转载 <<<

退出移动版