上网冲浪时,看到下面这个客服消息:左截图是一个企业微信客服聊天窗口,客服发送了一条带有小程序文字链的欢迎语,文字链不奇怪,奇怪的是点击文字链即可打开“对外收款”小程序,还预设了付款金额(右截图)。
“对外收款”小程序的开发者是腾讯,页面路径不支持复制,问题来了:这个客服的开发者是怎么获取“对外收款”小程序页面的具体路径的?
调查了一翻,发现小程序文字链的内容是这样的:
<a
data-miniprogram-appid="wx4c27f7260f03dfaf"
data-miniprogram-path="pages/index/index.html?projectid=TaZupaDS2d0000d09e0a07"
href=" "
>
一月会员 29元
</a>
wx4c27f7260f03dfaf
是对外收款小程序的 appid,这个很容易获取,关键是页面路径中的 projectid
参数,它是怎么来的?其实啊,它就隐藏在对外收款的收款码中。以下是获取方法:
https://work.weixin.qq.com/wework_admin/paybill/xxU0SVeE2dxxxx915181xx
这样的链接;paybill
后面的那串字符就是 projectid,即 xxU0SVeE2dxxxx915181xx
;获得 appid、path 后,再使用微信客服的欢迎语 API 发送菜单消息即可实现上图所示的效果,菜单消息就支持发送小程序文字链。
这个欢迎语之所以用两个感叹号提醒用户“付款后点我 继续下载”,是因为企业微信的对外收款功能没有回调通知,只能要求用户点击“付款后点我 继续下载”,从而通知开发者调用获取对外收款记录去查询用户是否已付款。
获取对外收款记录只能返回用户的 external_userid,但如果把微信客服和一个绑定了微信开放平台的小程序或公众号进行绑定,微信客服就可以获得用户的 unionid。
顺便提一下,长按上图的欢迎语,把它复制下来,粘贴到记事本中,你会发现欢迎语中的“付款后点我 继续下载”,以及“遇到问题咨询人工客服”的实际结构是这样的:
<a
href="weixin://kefumenu?kefumenucontent=付款后点我+++++继续下载&kefumenuid=remain"
>
付款后点我 继续下载
</a>
<a
href="weixin://kefumenu?kefumenucontent=❔遇到问题咨询人工客服❔&kefumenuid=human"
>
❔遇到问题咨询人工客服❔
</a>
当用户点击“付款后点我 继续下载”,以及“遇到问题咨询人工客服”时,用户就像点了一个菜单按钮一样,会自动向聊天窗口发送该菜单所对应的 kefumenucontent
的内容,可能这就是它叫菜单消息的原因吧。
微信公众号的客服 API 也支持发送菜单消息,但微信公众号客服的菜单消息复制下来,是这种结构的:
<a href="weixin://bizmsgmenu?msgmenucontent=会话测试&msgmenuid=100">会话测试</a>
<a href="weixin://bizmsgmenu?msgmenucontent=会话测试&msgmenuid= ">会话测试</a>
<a href="weixin://kefumenu?kefumenucontent=会话测试&kefumenuid=0">会话测试</a>
知道了这种结构,即使我们没有使用客服 API,也可以自行拼接出这种格式,向用户发送这种菜单消息。
相关内容: