小程序客服会话


最近项目中要做一个商品搜索(小程序)功能,通过首页的搜索框引导用户到客户会话里面,用户通过会话进行商品的搜索。
搜索到相关的商品就推送相关商品的小程序卡片,没有搜索到就直接推送指定的商品链接。

原型如下图:




通过客户会话,用户发起会话,获取文本信息后,通过关键字进行搜索。而发起客服会话事件,是前后端通过 SessionFrom 来进行的。

接受消息和事件



由于客服有多个不同的入口,前端通过 session-from 属性 设置search_ 才可进入到搜索会话里面来。

部分代码:

                 // 每次从搜索进入
                if (StringUtils.isNotEmpty(cs)) {
                    if ((cs.startsWith("search_"))) {
                        logger.info("每次从首页进入");
                        getSearchone(openId, cs, jsonObject, request, 1);
                        return "success";
                    }
                }



现在问题有来了,前端从首页搜索框每次进入客服会话界面才到有SessionFrom,后面就不会带有SessionFrom,如果一直停留在该页面,不断进行会话,那该如何?(这个地方就踩坑了)

  针对这种情况,我们通过**用户第一次进入的时候把SessiionFrom的路径来源存储起来解决**。

 表结构:

 
<img src="https://qiniu.epipe.cn/picture/006.png"/> 
<br/>


 代码实现:
if (StringUtils.isNotEmpty(msgType) && "text".equals(msgType)) { //接受到了文本消息 WxMsgSmall wxMsgSmall = new WxMsgSmall(); wxMsgSmall.setOpenid(jsonObject.getString("FromUserName")); WxMsgSmall query = wxMsgSmallService.query(wxMsgSmall); if (null != query && query.getSessionFrom().startsWith("search_")) { //说明上次是通过搜索入口进去得 logger.info("尚未进入搜索页面"); getSearch(openId, cs, jsonObject, request, -1); return "success"; } } ``` 其中里面 getSearch,getSearchone 方法均为业务代码的实现。在该方法里面会有发送小程序卡片,图片,文本信息,此时就需要调用微信的客服消息发送相关的接口。 [客服消息](https://developers.weixin.qq.com/miniprogram/dev/api-backend/customerServiceMessage.send.html) <img src="https://qiniu.epipe.cn/picture/007.png"/> <br/> <img src="https://qiniu.epipe.cn/picture/008.png"/> <br/> 重点来看,在文本消息里面嵌套小程序,多个小程序链接,又是字符串类型,完全靠拼接起来,这个地方就会字符转义,从而发出去的就是一堆字符串了(折腾了我半天)。 拼接部分的代码: <img src="https://qiniu.epipe.cn/picture/009.png"/> <br/> 现在就来看看最终的效果 <img src="https://qiniu.epipe.cn/picture/010.jpg" height="1040" width="600"/> <img src="https://qiniu.epipe.cn/picture/011.jpg" height="1037" width="600"/> **从首页搜索框到客服会话消息里面,输入相关的商品,即可推送相关卡片。没有搜索到的商品会推荐相关的,到这步体验感觉稍好。那么难题又来了,从 小程序-->客服会话--> 点击 先关卡片链接或者卡片。跳回的页面却是小程序首页,却不是指定页面(页面路径均正确)。现在推出小程序,微信-->客服消息助手--> 点击卡片链接或者卡片,此时能够正常显示。 上线半天的时间 ,收到的反馈都要炸了。该问题始终没有定位出来,官方也没有类似的demo和帖子,限于小程序官方的瓶颈,只能下架该功能了**

文章作者: coderpwh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 coderpwh !
  目录