微信小程序客服系统,订阅消息模板通知,客服系统使用一次性订阅消息给小程序用户回复通知

小程序的订阅消息,分为一次性订阅消息和长期订阅消息,长期订阅消息只对政务民生、医疗、交通、金融、教育等线下公共服务开放,一般情况下我们用不了。

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

注意:授权一次,发送一条,多了发不了

 

下面是小程序中,点击在线咨询的时候,先让订阅一下通知,然后再加载客服系统的聊天链接

比如:wxml部分

    <view class="listItem">
      <view class="left">店铺客服</view>
      <view class="right"><button type="primary" size="mini" bindtap="callKefu">在线咨询</button>
      </view>
    </view>

js部分。这里面就是拼接我的客服系统聊天界面链接,重要的是visitor_id参数部分,按照我的要求是   mini|商户ID|openid ,这样我在客服系统那里,好拿到openid去发送订阅消息

//咨询店铺客服
  callKefu(){
    this.subReplyNotice();
     var url=app.globalData.apiUrl+"/chatIndex?kefu_id="+this.data.kefu_name+"&ent_id="+this.data.ent_id+"&visitor_name="+this.data.nickname+"&avator="+this.data.avatar+"&visitor_id=mini|"+this.data.ent_id+"|"+this.data.openid;
     wx.navigateTo({
      url: "/pages/index/kefu?url="+encodeURIComponent(url)
    })
  },
//订阅回复通知
  subReplyNotice(){
    wx.requestSubscribeMessage({
      tmplIds: ['Hk0zWtbgl0aci6b0UIWSUBywYzaglNqkw0KhzkbEuN4'],
      success (res) {
        console.log(res)
        // res包含模板id,值包括'accept'、'reject'、'ban'、'filter'。
        // 'accept'表示用户同意订阅该条id对应的模板消息
        // 'reject'表示用户拒绝订阅该条id对应的模板消息
        // 'ban'表示已被后台封禁
        // 'filter'表示该模板因为模板标题同名被后台过滤。
      }
    })
  },

 

pages/index/kefu   

wxml部分

<!--pages/index/kefu.wxml-->
<view wx:if="{{url}}">
    <web-view  src="{{url}}"></web-view>
</view>

js部分

/**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log(options.url);
    this.setData({
      url:decodeURIComponent(options.url),
    });
  },