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

news2024/11/19 17:28:36

微信小程序想要对接独立在线客服系统,除了使用小程序消息推送接口外,还可以使用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.coloradmin.cn/o/454898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML5 <s> 标签、HTML5 <sub> 和 <sup> 标签

HTML5 <s> 标签 定义和用法 <s> 标签定义加删除线的文本。HTML 5 中不再支持这个标签。请使用 CSS 代替。 HTML 4.01 与 HTML 5 之间的差异 在 HTML 4.01 中不赞成使用 <s> 标签。 在 HTML 5 中不支持 <s> 标签。 提示和注释 提示&#xff1a;请…

Oracle Linux 9 上基于 Docker 安装 Kubernetes 1.27 集群

Oracle Linux 9 上基于 Docker 安装 Kubernetes 1.27 集群 1. 禁用swap2. 禁用防火墙3. 将SELinux设置为permissive模式4. 添加网桥过滤及内核转发配置文件5. 加载 overlay、br_netfilter、ip_tables、iptable_filter 模块6. 安装 docker-ce7. 安装kubelet kubeadm kubectl8. 初…

【Java面试八股文】JVM篇

引言&#xff1a; 本文对多个平台的面试题进行了汇总、分类、概括、整理&#xff0c;对重点进行了标出&#xff0c;更便于阅读和记忆。 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线牛客面试题 目录 说说你了解的JVM内存模…

UE5实现建筑剖切效果

文章目录 1.实现目标2.实现过程2.1 材质参数集2.2 材质遮罩函数2.3 更新Box3.参考资料1.实现目标 基于BoxMask材质节点,在UE5中实现建筑物的剖切效果,GIF动图如下: 2.实现过程 实现原理与之前“BoxMask实现建筑生长效果”的原理相同,都是基于BoxMask材质节点实现。 具体实…

二分查找<万字详解>

目录 问题引入 二分查找的思路 二分查找的实现 左闭右闭写法 左闭右开写法 两种写法的对比 例题强化 常规的二分查找题目 猜数字大小 搜索插入位置 常规二分的变形题目 搜索二维矩阵 搜索二维矩阵 II 查找特定位置/特定数 在排序数组中查找元素的第一个和最后一…

DIN11系列 大电流输出信号隔离模块线性驱动器0~100mA/0~500mA/0~2A/0-4A

主要特性 精度、线性度误差等级&#xff1a; 0.1、0.2、0.5 级4-20mA/0-5V/0-10V 等标准信号输入0~100mA/0~500mA/0~1A/0-5A 等电流信号输出0~1V(max 5A)/0~10V/0-24V(max 5A) 等电压信号输出信号输入/信号输出 3000VDC 隔离辅助电源&#xff1a;12V、15V 或 24V 直流单电源供…

IJKPLAYER源码分析-音视频同步

前言 本文来介绍下IJKPLAYER的音视频同步策略及方法。IJKPLAYER所支持的同步策略&#xff0c;源自FFPLAY&#xff0c;因此有以下3种&#xff1a; 音视同步视频&#xff1a;这是缺省的同步策略&#xff0c;以audio为主时钟-参考时钟&#xff0c;采取video同步audio的方式&#x…

电子模块|外控集成 LED 光源 WS2812模块---硬件介绍和stm32驱动

电子模块|外控集成 LED 光源 WS2812模块 模块简介模块特点机械尺寸单线归零码通讯方式24bit 数据结构 stm32 驱动 模块简介 WS2812是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同&#xff0c;每个元件即为一个像素点。像素点内部包含了智能…

【小样本分割 2020 ICCV】PANet

文章目录 【小样本分割 2020 ICCV】PANet1. 简介2. 网络2.1 整体架构2.2 原型学习2.3 非参数度量学习2.4 原型对齐正则化 3. 代码3.1 backbone3.2 模型代码 【小样本分割 2020 ICCV】PANet 论文题目&#xff1a;PANet: Few-Shot Image Semantic Segmentation with Prototype Al…

IDEA下SpringBoot指定配置文件启动项目

目录 一. idea下的SpringBoot启动&#xff1a;指定配置文件 二. 项目已打包&#xff0c;运行配置 1&#xff09;.使用java -jar启动基于(一)下的配置文件启动 2&#xff09;指定项目内其它配置文件application-pro.yml启动项目 3&#xff09; Linux服务器上启动基于(三)的…

OneFlow源码解析:Eager模式下Tensor的存储管理

作者&#xff5c;郑建华 1 不同Tensor类型的存储管理方式 Lazy Tensor 的存储是由 Runtime 和 Actor 等对象管理的。静态图完成编译后&#xff0c;需要多少个对象、多少存储空间都是确定的&#xff0c;Runtime 等在初始化时会分配存储&#xff0c;在退出时回收资源。 Eager 模…

SpringBoot--图片验证码kaptcha

本文介绍如何在SpringBoot中整合kaptcha&#xff0c;以及如何配置kaptcha&#xff0c;生成验证码和校验等 文章目录 前言环境搭建项目结构添加依赖 代码实现KaptchaConfigKnife4jConfigdomainServiceutilcontroller 测试生成验证码校验验证码 前言 参考链接&#xff1a; Gith…

设计模式:结构型模式 - 适配器模式

文章目录 1.概述2.结构3.类适配器模式4.对象适配器模式5.应用场景6.JDK源码解析 - Reader 与 InputStream 1.概述 如果去欧洲国家去旅游的话&#xff0c;他们的插座如下图最左边&#xff0c;是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑&#xff0c;手机…

【Android车载系列】第9章 车载通信-Socket实现IPC通信机制(实现仿FdBus效果)

1 FDBus简介 FDBus 基于 Socket (TCP 和 Unix domain) 之上的IPC机制, 采用 Google protobuf 做序列化和反序列化。 FDBus还支持字符串形式的名字作为server地址。通过 name server 自动为 server 分配Unix domain 地址和 TCP 端口号, 实现 client 和server 之间用服务名字寻址…

【C++】哈希的应用:位图和布隆过滤器

目录 1. 位图1.1 位图的概念1.2 位图的结构1.3 位图的实现 2. 布隆过滤器2.1 概念2.2 结构2.3 布隆过滤器的实现 1. 位图 1.1 位图的概念 &#x1f4ad;位图&#xff08;bitset&#xff09;是一种基于哈希思想设计的数据结构&#xff0c;其功能主要用于判断数据是否已存在。适…

【设计模式】模板方法模式--让你的代码更具灵活性与可扩展性

文章目录 前言模板方法模式的定义核心组成模板方法模式与其他设计模式的区别 代码实现抽象类具体类Client 经典类图spring中的例子 总结 前言 在软件开发中&#xff0c;设计模式是一种经过实践检验的、可复用的解决方案&#xff0c;它们可以帮助我们解决某一特定领域的典型问题…

【2023 · CANN训练营第一季】应用开发深入讲解——第一章 模型转换(1)

学习目标 学习资源 1.模型转换 模型转换基础 在线课程 文档AIPP功能说明 文档 应用开发&#xff08;初级&#xff09; 课程目标&#xff1a; 了解AscendCL的使用场景、基本概念、基本开发流程。 学会使用AscendCL接口开发基础推理应用&#xff0c;应用中包含对图片的基本处理…

javaScript常见面试题(二)

一、浅拷贝和深拷贝 浅拷贝&#xff1a;&#xff08;1&#xff09;对于基本数据类型&#xff0c;拷贝的是值&#xff0c;修改的时候数据互不影响&#xff1b;&#xff08;2&#xff09;对于引用数据类型&#xff0c;拷贝的是在堆内存中存储的内存地址&#xff0c;修改的时候&a…

mapreduce基础: 手写本地wordcount案例

文章目录 一、源代码1. WordCountMapper类2. WordCountReducer类3. WordCountDriver类 二、运行截图 一、源代码 1. WordCountMapper类 package org.example.wordcount;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apac…

yum库和nfs共享服务

yum库 redhat&#xff0c;centos用的是.rpm的包&#xff0c;用yum解决依赖包关系下载 ubuntu&#xff0c;debian用的是.deb的包&#xff0c;用apt解决依赖包的关系下载 yum软件仓库的提供方式 FTP服务: ftp://… HTTP服务: http://…或者https&#xff1a;//… 本地目录: fi…