一洽客服系统-实时接收离线推送消息

目录

1. 选择要接收的推送数据
2. 接收留言回复推送
3. 接收客服推送消息
4. 接收未读消息推送
5. 已读事件推送

1.选择要接收的推送数据


注意:每次收到post请求后需要返回一洽 success 没有返回一洽会判断为未收到而重新发送

2. 接收留言回复推送

留言回复推送可设置只接收指定渠道的回复消息,客服在Echat系统回复访客留言时,可以根据访客留下的联系方式,回复到不同的渠道,系统会把客服选择的回复渠道下发给开发者的URL,开发者可以利用公司自有的系统(比如:邮件系统,短信平台,会员站内信,APP系统通知,微信公众平台)来回复留言

GET参数追加:dataType=staffPush&msgType=msgReply
请求地址示例:

http://api.myserver.com/echatDataReceiver?timestamp=myTimestamp&nonce=myNonce&signature=81ceaac69a2f44be4f98d4adbea202d5792c62bb&dataType=staffPush&msgType=msgReply

访客端接入推送参数pushInfo,开发者通过此参数来确认访客的身份以及app推送信息。 pushInfo最大允许长度255。

访客端接入方式:
js sdk接入:


    var _echatServer = ['e.echatsoft.com'];
    window._echat=window._echat||function(){(_echat.q=_echat.q||[]).push(arguments)};_echat.l=+new Date;
    _echat('initParam', { companyId: 203});
    _echat('initParam', { pushInfo: '${pushInfo}'});
    (function () {
        var echat = document.createElement('script');
        echat.type = 'text/javascript';
        echat.async = true;
        echat.id = 'echatmodulejs';
        echat.setAttribute('charset','UTF-8');
        echat.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'es.echatsoft.com/visitor/echat.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(echat, s);
    })();

对话窗口地址传参接入:

https://es.echatsoft.com/visitor/mobile/chat.html?companyId=203&pushInfo=${pushInfo}

POST内容:客服回复消息的XML信息
明文XML示例:

<xml>
    <msgId>345678</msgId>
    <tm>1500000237041</tm>
    <companyId>60</companyId>
    <uid><![CDATA[28474495]]></uid>
    <visitorType>1</visitorType>
    <appId><![CDATA[公众号或者小程序的appId]]</appId>
    <type>3</type>
    <talkId><![CDATA[1733339]]></talkId>
    <chatTime>1500000237041</chatTime>
    <staffName><![CDATA[Allen]]></staffName>
    <staffLogName><![CDATA[18038039853]]></staffLogName>
    <staffNickName><![CDATA[Allen@Echat]]></staffNickName>>
    <echatTag><![CDATA[商品咨询]]></echatTag>
    <routeName><![CDATA[商品咨询]]></routeName>
    <chatDepartmentName><![CDATA[商品咨询]]></chatDepartmentName>
    <chatChannel><![CDATA[webpc]]></chatChannel>
    <replyChannel><![CDATA[email,sms]]></replyChannel>
    <email><![CDATA[allen@echatsoft.com]]></email>
    <mobile><![CDATA[18098922786]]></mobile>
    <replyContent><![CDATA[客服回复的内容]]></replyContent>
    <chatRecord><![CDATA[访客留言的内容]]></chatRecord>
    <viewUrl><![CDATA[http://api.echatsoft.com/msgReply/xxx]]><viewUrl>    
    <myData><![CDATA[web/sdk渠道接入时客户传递的业务数据]]></myData>
    <pushInfo><![CDATA[web/sdk渠道接入时客户传递的推送信息]]></pushInfo>
    <unreadMsgCount><![CDATA[3]]></unreadMsgCount>
    </xml>

xml字段解释:

属性 类型 含义
companyId Long 数据发生的账号ID
msgId Long 消息ID
uid String 用户的唯一ID,未登录是游客的ID,登录之后是会员的ID
visitorType String 访客身份类型 -1未知,0-游客(web),1-会员(vip),2-SDK游客(sdk),4-微信(wechat),5-自定义接口(custom)
mediaId String visitorType==5时,此值有效,值为自定义渠道的渠道ID
appId String 公众号或者小程序的appId
type int type=3是客服回复留言,type=4是客服推送消息。 type=5是客服发送的对话消息。 type=6 留言放弃
talkId String 消息所在回话记录的ID
chatTime Long 消息发送的时间
staffName String 回复留言或者推送消息的客服名称
staffLogName String 操作客服的登陆名
staffNickName String 操作客服的昵称
echatTag String 会话接入时的路由标签
routeName String 会话所在路由的路由名称
chatDepartmentName String 对话客服分组名称
chatChannel String 留言渠道,回复留言时默认回复到留言的渠道
replyChannel String 选择的其他回复渠道
email String 访客的邮箱
mobile String 访客的手机
replyContent String 客服回复
chatRecord String 访客留言
viewUrl String 可查询当前留言详细信息的页面地址
myData String web/sdk渠道接入时客户传递的业务数据
pushInfo String web/sdk渠道接入时客户传递的推送信息
unreadMsgCount int 当前访客的所有未读消息数量

3.接收客服推送消息

接收客服推送可设置只接收指定渠道的推送消息,客服在Echat系统回复访客留言时,可以根据访客留下的联系方式,回复到不同的渠道,系统会把客服选择的回复渠道下发给开发者的URL,开发者可以利用公司自有的系统(比如:邮件系统,短信平台,会员站内信,APP系统通知,微信公众平台)来实时推送给访客

GET参数追加:dataType=staffPush&msgType=msgSend
请求地址示例:

http://api.myserver.com/echatDataReceiver?timestamp=myTimestamp&nonce=myNonce&signature=81ceaac69a2f44be4f98d4adbea202d5792c62bb&dataType=staffPush&msgType=msgSend

访客端接入推送参数pushInfo,开发者通过此参数来确认访客的身份以及app推送信息。 pushInfo最大允许长度255。

访客端接入方式:
js sdk接入:


    var _echatServer = ['e.echatsoft.com'];
    window._echat=window._echat||function(){(_echat.q=_echat.q||[]).push(arguments)};_echat.l=+new Date;
    _echat('initParam', { companyId: 203});
    _echat('initParam', { pushInfo: '${pushInfo}'});
    (function () {
        var echat = document.createElement('script');
        echat.type = 'text/javascript';
        echat.async = true;
        echat.id = 'echatmodulejs';
        echat.setAttribute('charset','UTF-8');
        echat.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'es.echatsoft.com/visitor/echat.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(echat, s);
    })();

对话窗口地址传参接入:

https://es.echatsoft.com/visitor/mobile/chat.html?companyId=203&pushInfo=${pushInfo}

POST内容:客服推送消息的XML信息
明文XML示例:

<xml>
    <msgId>345678</msgId>
    <tm>1500000237041</tm>
    <companyId>60</companyId>
    <uid><![CDATA[28474495]]></uid>
    <visitorType>1</visitorType>
    <appId><![CDATA[公众号或者小程序的appId]]</appId>
    <type>4</type>
    <talkId><![CDATA[1733339]]></talkId>
    <chatTime>1500000237041</chatTime>
    <staffName><![CDATA[Allen]]></staffName>
    <staffLogName><![CDATA[18038039853]]></staffLogName>
    <staffNickName><![CDATA[Allen@Echat]]></staffNickName>>
    <chatChannel><![CDATA[webpc]]></chatChannel>
    <replyChannel><![CDATA[email,sms]]></replyChannel>
    <email><![CDATA[allen@echatsoft.com]]></email>
    <mobile><![CDATA[18098922786]]></mobile>
    <replyContent><![CDATA[客服回复的内容]]></replyContent>
    <viewUrl><![CDATA[http://api.echatsoft.com/msgReply/xxx]]><viewUrl>
    <myData><![CDATA[web/sdk渠道接入时客户传递的业务数据]]></myData>
    <pushInfo><![CDATA[web/sdk渠道接入时客户传递的推送信息]]></pushInfo>
    <unreadMsgCount><![CDATA[3]]></unreadMsgCount>
</xml>

xml字段解释见留言回复推送的字段解释。

4.接收未读消息推送

未读消息推送开启后可接收手机访客在离开手机屏幕之后客服发送给访客的消息,开发者可将此消息通过自己的APP推送或者其他渠道通知客户有新消息。 接口配置生效后需要在web路由中开启接收未读消息推送,开启后当前路由的手机访客的未读消息会推送到开发者的URL

GET参数追加:dataType=staffPush&msgType=chatSend
请求地址示例:

http://api.myserver.com/echatDataReceiver?timestamp=myTimestamp&nonce=myNonce&signature=81ceaac69a2f44be4f98d4adbea202d5792c62bb&dataType=staffPush&msgType=chatSend

访客端接入推送参数pushInfo,开发者通过此参数来确认访客的身份以及app推送信息。 pushInfo最大允许长度255。

访客端接入方式:
js sdk接入:


    var _echatServer = ['e.echatsoft.com'];
    window._echat=window._echat||function(){(_echat.q=_echat.q||[]).push(arguments)};_echat.l=+new Date;
    _echat('initParam', { companyId: 203});
    _echat('initParam', { pushInfo: '${pushInfo}'});
    (function () {
        var echat = document.createElement('script');
        echat.type = 'text/javascript';
        echat.async = true;
        echat.id = 'echatmodulejs';
        echat.setAttribute('charset','UTF-8');
        echat.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'es.echatsoft.com/visitor/echat.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(echat, s);
    })();

对话窗口地址传参接入:

https://es.echatsoft.com/visitor/mobile/chat.html?companyId=203&pushInfo=${pushInfo}

POST内容:客服推送消息的XML信息
明文XML示例:

<xml>
    <msgId>345678</msgId>
    <tm>1500000237041</tm>
    <companyId>60</companyId>
    <uid><![CDATA[28474495]]></uid>
    <visitorType>1</visitorType>
    <type>5</type>
    <talkId><![CDATA[1733339]]></talkId>
    <lan><![CDATA[ZH-CN]]></lan>
    <chatTime>1500000237041</chatTime>
    <staffName><![CDATA[Allen]]></staffName>
    <staffPhoto><![CDATA[http://vfile.rainbowred.com/group1/M00/37/FC/wKhCBFi-kY-AXWamAAAPfGESU5s664.PNG]]></staffPhoto>
    <staffNickName><![CDATA[Allen@Echat]]></staffNickName>>
    <echatTag><![CDATA[商品咨询]]></echatTag>
    <routeName><![CDATA[商品咨询]]></routeName>
    <chatDepartmentName><![CDATA[商品咨询]]></chatDepartmentName>
    <chatChannel><![CDATA[mobile]]></chatChannel>
    <email><![CDATA[allen@echatsoft.com]]></email>
    <mobile><![CDATA[18098922786]]></mobile>
    <msgType>1</msgType>
    <contentType>1</contentType>
    <content><![CDATA[您好,请问有什么可以帮助到您?]]></content>
    <myData><![CDATA[web/sdk渠道接入时客户传递的业务数据]]></myData>
    <pushInfo><![CDATA[web/sdk渠道接入时客户传递的推送信息]]></pushInfo>
    <unreadMsgCount><![CDATA[3]]></unreadMsgCount>
</xml>

xml字段解释:

属性 类型 含义
companyId Long 数据发生的账号ID
msgId Long 消息ID
uid String 用户的唯一ID,未登录是游客的ID,登录之后是会员的ID
visitorType String 访客身份类型 -1未知,0-游客(web),1-会员(vip),2-SDK游客(sdk),4-微信(wechat),5-自定义接口(custom)
mediaId String visitorType==5时,此值有效,值为自定义渠道的渠道ID
type int type=3是客服回复留言,type=4是客服推送消息 type=5是客服发送的对话消息
talkId String 消息所在回话记录的ID
lan String 对话访客的语言 zh,en,fr,ko,jp等
chatTime Long 消息发送的时间
staffName String 发送消息的客服名称
staffPhoto String 发送消息的客服头像
staffNickName String 操作客服的昵称
echatTag String 会话接入时的路由标签
routeName String 会话所在路由的路由名称
chatDepartmentName String 对话客服分组名称
chatChannel String 留言渠道,回复留言时默认回复到留言的渠道
replyChannel String 选择的其他回复渠道
email String 访客的邮箱
mobile String 访客的手机
msgType int 发送消息的消息类型 1:系统消息 2:客服发送消息
contentType int 1:对话开始消息 2:自动应答语 3:长时间未回复警告提示语 4:对话结束消息
21:文本消息 22:图片消息 23:文件消息 24:邀请评价消息 25:图文消息
content String 发送的消息内容 contentType为:1、2、3、4、21、24时content为字符串文本
22、23、25:content内容为空
myData String web/sdk渠道接入时客户传递的业务数据
pushInfo String web/sdk渠道接入时客户传递的推送信息(新版本接口使用字段名)
unreadMsgCount int 当前访客的所有未读消息数量

5.已读事件推送

在访客将消息获取已读后给开发者推送 msgRead事件通知开发者当前访客消息已读

GET参数追加:dataType=staffPush&msgType=msgRead
请求地址示例:

http://api.myserver.com/echatDataReceiver?timestamp=myTimestamp&nonce=myNonce&signature=81ceaac69a2f44be4f98d4adbea202d5792c62bb&dataType=staffPush&msgType=msgRead

POST内容:客服推送消息的XML信息
明文XML示例:

<xml>
    <msgId>345678</msgId>
    <tm>1500000237041</tm>
    <companyId>60</companyId>
    <uid><![CDATA[28474495]]></uid>
    <visitorType>1</visitorType>
    <appId>公众号或者小程序的appId</appId>
    <echatTag><![CDATA[商品咨询]]></echatTag>
    <visitorMedia><![CDATA[1]]></visitorMedia>
    <myData>web/sdk渠道接入时客户传递的业务数据</myData>
    <pushInfo><![CDATA[[web/sdk渠道接入时客户传递的推送信息]]></pushInfo>
    <unreadMsgCount><![CDATA[3]]></unreadMsgCount>
</xml>

xml字段解释:

属性 类型 含义
companyId Long 数据发生的账号ID
msgId Long 消息ID
uid String 用户的唯一ID,未登录是游客的ID,登录之后是会员的ID
visitorType String 访客身份类型 -1未知,0-游客(web),1-会员(vip),2-SDK游客(sdk),4-微信(wechat),5-自定义接口(custom)
appId String 公众号或者小程序的appId
echatTag String 路由参数
visitorMedia int 客户端的媒介,1-PC网页,2-手机网页,5-微信,6-sdk,200-自定义渠道
myData String web/sdk渠道接入时客户传递的业务数据
pushInfo String web/sdk渠道接入时客户传递的推送信息(新版本接口使用字段名)
unreadMsgCount int 当前访客的所有未读消息数量