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

news/2024/7/20 3:54:04 标签: 微信小程序, 小程序

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

相关文章

day2 OSI七层体系结构

目录 网络体系结构的形成 协议与划分层次 OSI七层体系结构 网络体系结构的形成 两台计算机要互相传送文件需解决很多问题&#xff1b; (1) 必须有一条传送数据的通路。 (2) 发起方必须激活通路。 (3) 要告诉网络如何识别接收方。 (4) 发起方要清楚对方是否已开机&#…

JavaSE 08 集合 - Part 01

文章目录 概览Collection集合知识回顾概述和使用常用方法Collection 的遍历案例迭代器实例化对象思路List概述和特点List 特有方法案例一并发修改异常概述并发修改异常的源码分析运行流程实际情况为什么 for 循环就不会报异常?listIterator 列表迭代器增强 for 循环案例二数据…

YOLO算法改进指南【中阶改进篇】:2.添加CBAM注意力机制

文章目录 一、理论储备二、代码实现1. 增加CBAM.yaml文件2. common.py配置3. yolo.py配置4. 训练模型一、理论储备 卷积神经网络(CNN)在计算机视觉任务中取得了显著的成功。为了进一步提高CNN的性能,研究人员提出了一种名为“卷积神经网络注意力模块”(Convolutional Bloc…

【论文阅读】You Are What You Do:通过数据来源分析寻找隐蔽的恶意软件

You Are What You Do: Hunting Stealthy Malware via Data Provenance Analysis NDSS-2020 伊利诺伊大学香槟分校、德克萨斯大学达拉斯分校 Wang Q, Hassan W U, Li D, et al. You Are What You Do: Hunting Stealthy Malware via Data Provenance Analysis[C]//NDSS. 2020. 目…

如何把一个List转化成数组(深入解读toArray方法)

如何使用&#xff1f; 调用List的toArray方法就好&#xff0c;我们下面以List的子类 ArrayList为例进行转化 情况一 没有具体需要传到哪个数组里&#xff0c;你返回给我个数组就行。 ArrayList<String> s new ArrayList<>();s.add("123");s.add(&quo…

嵌入式就业怎么样?

嵌入式就业怎么样? 现在的IT行业,嵌入式是大热门&#xff0c;下面也要来给大家介绍下学习嵌入式之后的发展以及就业怎么样。 首先是好找工作。嵌入式人才目前是处于供不应求的状态中&#xff0c;据权威统计机构统计在所有软件开发类人才的需求中&#xff0c;对嵌入式工程师的…

将ISP DMA写到DDR的数据unpack成可被7yuv预览的RAW图

背景 上篇博客埋了个坑&#xff0c;就是如何将ISP DMA写到DDR的数据unpack成可被7yuv等软件预览的RAW图。跟通用DMA这种源端、目的端均以字节对齐访问不通&#xff0c;ISP DMA通常有一端是非字节对齐的&#xff0c;即流式&#xff08;stream&#xff09;访问——不需要指定访问…

Transformer 位置编码代码解析

Transformer 位置编码代码解析 Transformer 的 Multi-Head-Attention 无法判断各个编码的位置信息。因此 Attention is all you need 中加入三角函数位置编码&#xff08;sinusoidal position embedding&#xff09;&#xff0c;表达形式为&#xff1a; P E ( p o s , 2 i ) …