1. 领加网络的博客首页
  2. 行业动态

微信公众号订阅通知下发消息教程

微信公众号模板消息功能即将取消,官方发布“服务号订阅通知灰度测试期自2021年1月27日0:00至4月30日24:00,期间服务号模板消息可正常使用;灰度测试期结束后服务号订阅通知的策略将另行公布”

部分原文如下:

下面对订阅通知做测试教程,供大家参考:

使用步骤

步骤一:开通服务号订阅通知

登录公众号后台,点击“添加功能插件”开通订阅通知。 

步骤二:申请合适的行业类目

请根据服务号所属的行业和需要的订阅通知类型,申请合适的行业类目。 

步骤三:在模板库选用模板

请根据通知使用场景,在公共模版库选用合适的订阅通知模板。 

步骤四:可以在图文消息、网页设置订阅通知组件

可以在图文消息、网页等场景设置订阅通知功能,供用户主动订阅。

可通过图文编辑器,在文章中插入订阅通知组件。每篇文章最多插入10个订阅通知组件(每个组件至多包含5条通知,每个组件不能同时包含一次性订阅和长期订阅),文章推送后用户即可点击订阅。

也可以使用开放标签能力,在网页内设置订阅通知组件。

仅支持在 JS-安全域名 下的网页(已认证的服务号,最多 5 个安全域名)

    用户拉起订阅客户端版本支持:

图文:安卓7.0.15 & IOS 7.0.14及以上版本

服务号网页:安卓7.0.12 & IOS 7.0.12及以上版本

步骤五:用户接收订阅通知

用户在图文消息或网页中点击拉起弹窗,允许后即表示订阅该通知。开发者可通过接口下发通知

开发步骤

以easywechat的laravel版本5.0为开发用例

1.获取jssdk

public function test(Request $request)
    {
        $app = MYFunction::openPlatform();
        $app->jssdk->setUrl('http://wxe2f76cfa5ab9043f.developers.lingj.net/index.html');
        $jssdk = $app->jssdk->buildConfig(array(),false,false,false,array('wx-open-subscribe'));
        return response()->json(['code' => '1','data'=>['jssdk'=>$jssdk]]);
    }

2.前端js,现以原生html为例

<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">

    $(function(){
        layer.open({type: 3});
        $.ajax({
            url: 'api/test',
            success : function(data){
                layer.closeAll();
                wx.config(data.data.jssdk);
            },
        });
    });

</script>

<wx-open-subscribe template="Yi5YC-OLTWfDdvNS9aipJEHdFWfqDER_vlcmOFcK2B0" 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 subTemplateId = new Array();
subTemplateId[0] = 'Yi5YC-OLTWfDdvNS9aipJEHdFWfqDER_vlcmOFcK2B0';
var btn = document.getElementById('subscribe-btn');
btn.addEventListener('success', function (e) {
    console.log('success', e.detail);

    let attend = false;
    let subscribeDetails = JSON.parse(e.detail.subscribeDetails); // 全部的模板
    for(let i in subTemplateId) {
        let subKey = subscribeDetails[subTemplateId[i]]; // 获取每个模板的状态
        let status = JSON.parse(subKey);
        let type = false;
        switch(status.status){
            case "reject":
                alert(`用户拒绝订阅全部消息`);
                type = false;
                break;
            case "cancel":
                alert(`用户取消订阅全部消息`);
                type = false;
                break;
            case "filter":
                alert(`第${i}条消息应该标题同名被后台过滤`);
                type = false;
                break;
            default:
                type = true;
                break;
        };
        if(!type) { // 如果其中有一个模板没有订阅,则全部不通过过
            attend = false;
            break;
        } else {
            attend = true;
        };
    };
    if(!attend) {
        alert("订阅消息才能参与")
        console.log("订阅消息才能参与")
        return
    };
    alert("参与成功")
    console.log("参与成功")

});
btn.addEventListener('error',function (e) {
    console.log('fail', e.detail);
    alert('订阅失败');
});
</script>

效果如下

微信公众号订阅通知下发消息教程
微信公众号订阅通知下发消息教程

3.消息推送中获取用户允许事件(如果是开放平台记着重新授权,更新权限集)

{"ToUserName":"gh_f8259559aa59","FromUserName":"oKKb00xTOZZF9Te9MhRXzktcyBA0","CreateTime":"1619503336","MsgType":"event","Event":"subscribe_msg_popup_event","SubscribeMsgPopupEvent":{"List":{"TemplateId":"Yi5YC-OLTWfDdvNS9aipJEHdFWfqDER_vlcmOFcK2B0","SubscribeStatusString":"accept","PopupScene":"1"}}}

获取以上报文,自行处理模板与openid对应关系

4.发送订阅通知

public function send(Request $request)
    {
        $app = MYFunction::openPlatform();
// easywechat目前好想不支持订阅通知,这个地方是我修改过的
        $result = $app->template_message->sendSubscription([
            'touser' => 'oKKb00xTOZZF9Te9MhRXzktcyBA0',
            'template_id' => 'Yi5YC-OLTWfDdvNS9aipJEHdFWfqDER_vlcmOFcK2B0',
            'page' => 'blog.lingj.net',
            'data' => [
                'thing1' => '测试订阅通知',
                'thing2' => '自动',
                'time4' => '2019年8月8日'
            ],
        ]);
    }
微信公众号订阅通知下发消息教程

原创文章,作者:代码加工厂,如若转载,请注明出处:http://blog.lingj.net/2021/04/27/218.html

发表评论

邮箱地址不会被公开。 必填项已用*标注