微信-小程序模板消息升级订阅消息调研文档
in PHPweChat with 0 comment

微信-小程序模板消息升级订阅消息调研文档

in PHPweChat with 0 comment

微信-小程序模板消息升级订阅消息调研文档

说明

小程序消息推送接口升级为订阅消息接口,订阅消息案例及相关升级代码在前边的文章中,有兴趣可以去看一下,然后忘了把调研文档传上来了,补一下吧


相关文档

升级文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html
小程序模板消息能力调整通知:https://developers.weixin.qq.com/community/develop/doc/00008a8a7d8310b6bf4975b635a401?blockType=1
简书:https://www.jianshu.com/p/0853e36925e3
cnblog:https://www.cnblogs.com/msunh/p/12175555.html
csdn:https://blog.csdn.net/laishaojiang/article/details/103781670
other:https://www.watch-life.net/wechat/subscribe-message.html

订阅消息示例GitHub代码:https://github.com/zxliucn/miniProSubNews.git

示例图

修改

升级原因

小程序模板消息接口将于2020年1月10日下线,开发者可使用订阅消息功能
开发版及体验版小程序1月10日后已经无法获取form_id,正式版的小程序可能延长至4月1日

小程序订阅消息Api: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html
服务端Api:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.addTemplate.html

注意点

1.模板消息升级为订阅消息,是整个模块接口全部升级,不单单一个发送接口
2.订阅消息添加接口传送数据格式为x-www-from-urlencoded,文档上是json格式
3.微信开发者工具上是没法调起订阅消息弹框,需要真机调试或者发布到体验版
4.要有一个可https访问的域名,配置到开发者工具下
5.订阅消息发送数据字段长度不可超过20个字符,否则会出错,所以类似于收货地址的字段需要截取
6.订阅消息功能需要去开启
7.目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。
https://developers.weixin.qq.com/community/develop/doc/00008a8a7d8310b6bf4975b635a401?blockType=1

订阅消息介绍

一次性订阅消息:用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。
订阅消息推送位置:服务通知
订阅消息下发条件:用户自主订阅
订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面

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

小程序调用

文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html

步骤一:获取模板 ID
在微信公众平台手动配置获取模板 ID:(项目中根据模板类型由后台返回)
登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。

步骤二:获取下发权限(重要接口)
详见小程序端消息订阅接口 wx.requestSubscribeMessage
调起订阅窗口,用户选择之后会触发回调函数记录后台可记录用户订阅的消息模板。

wx.requestSubscribeMessage({
  tmplIds: [''],
  success (res) { }
})

服务端接口

服务端接口主要讲添加接口和发送接口,其他接口可以作为辅助接口使用,这里不做讲解

添加模板接口

subscribeMessage.addTemplate 添加模板接口(重要接口)
注意点:添加模板数据格式要用x-www-from-urlencoded,文档上是json格式

添加的模板id是先用subscribeMessage.getCategory获取当前小程序的服务类目,根据subscribeMessage.getPubTemplateTitleList获取帐号所属类目下的公共模板标题,选取适合自己场景的模板,再用subscribeMessage.getPubTemplateKeyWordsById获取模板下的字段,选取自己要用的字段,然后添加模板。

代码示例:

public static function generateSubTemplateId($type,$beid){
       $params = [
                'tid=6271',
                'kidList[0]=4',
                'kidList[1]=3',
                'kidList[2]=2',
                'kidList[3]=1',
                'sceneDesc=订单支付成功后进行通知',
       ];
    $paramStr = implode("&", $params);
    $accessToken = WeixinService::getAccessToken($beid);
    $url="https://api.weixin.qq.com/wxaapi/newtmpl/addtemplate?access_token=".$accessToken;
    $response = Curl::post($url,$paramStr);
    $returnArray=json_decode($response,true);
    var_dump($returnArray);
}
发送消息接口

subscribeMessage.send 发送消息接口(重要接口)

与订阅消息的区别:

1.不再需要form_id,
2.data数据格式跟之前不一样,需要对应字段类型
3.发送字段的字符不能超过20个字符

示例代码:

   data: {
     name3: {
      value: '我是玖柒后'
     },
     thing4: {
      value: 'Hello World!'
     },
     phrase1: {
      value: "祝张三同学"
     },
     date5: {
      value: "发送成功!"
     },
     thing2: {
      value: "1024 身体健康!"
     }
    },
    templateId: 'TEMPLATE_ID'
   }

结尾

心如花木,向阳而生。

Responses