当用户在小程序点击客服按钮,进入会话时,我们一定想知道他从哪个页面进去的,页面是什么内容,用户最可能想了解什么信息。
由于我用的是云开发模式,没用服务器,因此将今天测试的流程庖丁解牛的发出来,供参考:
步骤一、用户点击客服按钮

按钮配置代码:
<button open-type="contact" url="旅游路线链接" send-message-title="卡片标题" show-message-card="true" send-message-img="/images/img_kefu_show_tip.png" bindcontact="handleContact"
session-from='{"title":"两日游","url":"http://skb.lvyouquan.com/mg/53af38b41b3440af83e2b4de5cfd094c/bdf30829792b44a1a00e44dd8e18c95c/ProductNew/c7a695d11f104776b2dc4e1252d9493a?busType=1&isQRCode=1","description":"description","thumb_url":"http://vsource.cn/wp-content/uploads/2019/11/learn_downqr-150x150.png"}'>
点击购买</button>
注意:session-from只有在用户进入会话的时候才会发送给回调接口/云开发的云函数。
云开发配置代码:

event格式如下:
event= { CreateTime: 1617001411,
Event: 'user_enter_tempsession',
FromUserName: 'oZ1ag4rkCRqNTXwiSkjF4_eCZJ14',
MsgType: 'event',
SessionFrom:
'{"title":"两日游","url":"http://skb.lvyouquan.com/mg/53af38b41b3440af83e2b4de5cfd094c/bdf30829792b44a1a00e44dd8e18c95c/ProductNew/c7a695d11f104776b2dc4e1252d9493a?busType=1&isQRCode=1","description":"description","thumb_url":"http://vsource.cn/wp-content/uploads/2019/11/learn_downqr-150x150.png"}',
ToUserName: 'gh_7f451e6c35fe',
userInfo:
{ appId: 'wx2c73883c8d9b4e3f',
openId: 'oZ1ag4rkCRqNTXwiSkjF4_eCZJ14' } }
步骤二、用户发送卡片消息
右下角可以点击发送,图片可以定制,比如定制为:发送商品,那么后台就可以自动回复对应商品的信息。此处发送一条消息的目的在于可以有5条自动回复消息的权限。否则,若用户不发送消息,是没有权限给用户主动发消息的。
此举,也可以解决小程序给H5商城导流的问题。小程序仅仅需要做简单展示或引流,H5做核心的变现和业务逻辑。

云开发的代码:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
//<!--下载云存储图片-->
let downLoad = async (fileID) => {
const res = await cloud.downloadFile({
fileID: fileID, // 图片的File ID
})
const buffer = res.fileContent
console.log(buffer)
return buffer
}
//<!--把媒体文件上传到微信服务器-->
let upload = async (Buffer) => {
return await cloud.openapi.customerServiceMessage.uploadTempMedia({
type: 'image',
media: {
contentType: 'image/png',
value: Buffer
}
})
}
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
console.log('event=',event)
if (event.MsgType == 'miniprogrampage') {
let Buffer = await downLoad('cloud://bvread-bdqed.6276-bvread-bdqed-1302378864/kefu/ad_kefu_qun.png')
let meida = await upload(Buffer)
await cloud.openapi.customerServiceMessage.send({
"touser": wxContext.OPENID,
"msgtype": "image",
"image": {
"media_id": meida.mediaId
}
})
}
else {
var sessionFromStr = event.SessionFrom;
var sessionFrom = JSON.parse(sessionFromStr)
await cloud.openapi.customerServiceMessage.send({
'touser': wxContext.OPENID,
'msgtype': 'link',
'link':{
'title': sessionFrom.title,
'url': sessionFrom.url,
'description': sessionFrom.description,
'thumb_url': sessionFrom.thumb_url
}
})
}
return 'success'
}
网友评论