微信小程序对接在线客服系统,对接小程序订阅消息模板,小程序订阅方法以及后端发送订阅模板消息的方法...

news/2024/12/22 18:38:21/

微信小程序想要对接独立在线客服系统,除了使用小程序消息推送接口外,还可以使用webview嵌入的形式嵌入聊天链接。

但是,使用webview嵌入的形式,当用户离开页面以后,就收不到客服回复的消息了

所以,我们需要当用户离开聊天页面后,客服回复消息,使用小程序的订阅模板来进行通知。

我们前往小程序后台,去开启一下订阅消息,并且选用一个模板。

在公共模板库里搜索一下,选用“咨询回复通知”

 配置一下字段,我们就需要三个字段就可以了,分别是,“回复内容”  “回复时间”  “回复者”

这样会得到模板ID,后面我们会通过这个模板ID进行发送

现在,我们去小程序端,增加一下订阅事件

在小程序端向用户发起消息请求,需要注意请求需要放在触发事件中,不能凭空(onload、onshow或者其他情况)触发。

页面xml

<button bindtap="sendreq">开始订阅</button>

页面js

const app = getApp()
Page({sendreq(){wx.requestSubscribeMessage({tmplIds: ['这里替换成你的模板ID'],success (res) {console.log(res)// res包含模板id,值包括'accept'、'reject'、'ban'、'filter'。// 'accept'表示用户同意订阅该条id对应的模板消息// 'reject'表示用户拒绝订阅该条id对应的模板消息// 'ban'表示已被后台封禁// 'filter'表示该模板因为模板标题同名被后台过滤。}})}
})

只有这样订阅过以后,才能给这个用户发送模板消息

我们后端发送模板消息的golang参考代码如下:

import ("github.com/silenceper/wechat/v2"offConfigMini "github.com/silenceper/wechat/v2/miniprogram/config"subscribeMsg "github.com/silenceper/wechat/v2/miniprogram/subscribe""kefu/tools""log"
)
    cfg := &offConfigMini.Config{AppID:     "AppID",AppSecret: "AppSecret",Cache: memory,}wc := wechat.NewWechat()mini := wc.GetMiniProgram(cfg)subscribe := mini.GetSubscribe()data := make(map[string]*subscribeMsg.DataItem, 0)data["thing1"] = &subscribeMsg.DataItem{Value: "测试", Color: "#000"}data["time2"] = &subscribeMsg.DataItem{Value: tools.GetNowTime(), Color: "#000"}data["name3"] = &subscribeMsg.DataItem{Value: "客服", Color: "#000"}msg := &subscribeMsg.Message{ToUser:     "okSbF5AhyVeyO-gK-Nj_nwoi2LQU",TemplateID: "Hk0zWtbgl0aci6b0UIWSUBywYzaglNqkw0KhzkbEuN4",Page:       "/pages/index",Data:       data,}log.Printf("%+v \n", msg)err := subscribe.Send(msg)if err != nil {log.Println("发送小程序订阅消息失败:", err)}

现在其实已经就能发送模板消息了

稍后,会开发客服系统后台,详细配置硬编码的字段。


http://www.ppmy.cn/news/52655.html

相关文章

ICMP 协议详解

文章目录 1 概述2 ICMP 协议2.1 工作原理2.2 报文格式2.3 ICMP 类型 1 概述 #mermaid-svg-6yUB8ZNYSzjbbDDq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6yUB8ZNYSzjbbDDq .error-icon{fill:#552222;}#mermaid-s…

苦熬10年,国产操作系统“归零”,新操作系统上新,跟Excel很像

苦熬10余年&#xff0c;国产操作系统自主研发 说到国内自主研发的操作系统&#xff0c;经验最丰富的品牌&#xff0c;当然是麒麟OS. 从诞生到发展&#xff0c;历经10多年的努力&#xff0c;麒麟os逐渐成为了国内自主研发操作系统领域中的一颗耀眼的明珠。麒麟OS不仅推出了许多…

【链表】力扣203题:移除链表元素

【链表】力扣203题&#xff1a;移除链表元素 力扣203题&#xff1a;移除链表元素 建议在看题目之前先了解数组的具体知识点&#xff0c;可以看这里&#xff1a; 算法基础&#xff08;三&#xff09;&#xff1a;链表知识点及题型讲解。 其它题目&#xff1a; 【链表】力扣206题…

设计模式简谈

设计模式是我们软件架构开发中不可缺失的一部分&#xff0c;通过学习设计模式&#xff0c;我们可以更好理解的代码的结构和层次。 设计原则 设计原则是早于设计方法出现的&#xff0c;所以的设计原则都要依赖于设计方法。这里主要有八个设计原则。 推荐一个零声学院免费教程&…

Spring IOC之对象的创建方式、策略及销毁时机和生命周期且获取方式

目录 一、对象的创建方式 1. 使用构造方法 2. 使用工厂类方法 3. 使用工厂类的静态方法 二、对象的创建策略 1. 单例策略 2. 多例策略 三、对象的销毁时机 四、生命周期方法 1. 定义生命周期方法 2. 配置生命周期方法 3. 测试 五、获取Bean对象的方式 1. 通过id/…

参与C++项目时的那些事儿

开发工具 在开发团队内部&#xff0c;使用相同的IDE、编译器等开发工具&#xff0c;工具的版本号和配置保持一致&#xff0c;便于开发团队积累使用经验&#xff0c;避免、消除工具的差异引入的问题。 代码质量 从检查时机看&#xff0c;分为&#xff1a; 开发人员本地检查&am…

以轻量级服务器niginx为核心的JavaWeb项目:第一章 项目设计

这里写目录标题 一 需求分析与环境搭建1.需求分析2.环境搭建1.2.1首先配置mysql环境1.2.2 配置maven环境 二 打成War包&#xff0c;发到linux上 一 需求分析与环境搭建 1.需求分析 2.环境搭建 1.2.1首先配置mysql环境 先查找一下mysql环境 [roothadoop122 ~]# mysql --vers…

vue---mixin混入

mixins是一种分发 Vue 组件中可复用功能的非常灵活的方式。混合对象可以包含任意组件选项。当组件使用混合对象时&#xff0c;所有混合对象的选项将被混入该组件本身的选项。 一个混入对象可以包含任意组件选项&#xff08;如data、methods、created、mounted等等&#xff09;。…