七鱼开发文档中心
总览服务端 APIWebiOSAndroid鸿蒙Uniapp微信小程序插件三方接入

平台业务

分配商家

本节说明平台业务中如何指定商家或子企业客服。

分配商家

平台商家申请客服时,需要在打开会话界面传入的 ConsultSource 中指定 shopId。shopId 是企业在管理后台创建商家时填写的商家 ID;不指定时默认申请平台企业下的客服。更多设置请参考平台商家配置。

平台商家配置

SDK提供平台商家企业的支持,非平台电商不需要看该内容

参数名类型参数说明取值说明
shopIdString商家id,也是子企业的ID要咨询的商家 ID,平台电商调用
shopEntranceShopEntrance商家入口信息如果需要开启商家入口,则需要设置该字段,如果不指定将不显示商家入口在不开启后台配置时生效
sessionListEntranceSessionListEntrance会话列表入口信息如果需要开启会话列表入口,则需要设置该字段

ShopEntrance

参数名类型参数说明取值说明
logoString商家logo url图片地址
nameString商家名称最多显示三个字符超出将显示“xx...”

SessionListEntrance

参数名类型参数说明取值说明
imageResIdDrawableRes资源id入口图片资源id建议为半透明图片,如果不设置将显示默认图片
positionPosition枚举类型入口位置目前包含TOP_LEFT和TOP_RIGHT,即屏幕左上角和右上角,如果不设置将默认位于右上角

代码示例

ConsultSource source = new ConsultSource("shop_detail", "店铺客服", null);
source.shopId = "shopId";
source.shopEntrance = new ShopEntrance.Builder()
                 .setName(shopName)
                 .setLogo(shopLogo)
                 .build();
source.sessionListEntrance = new SessionListEntrance.Builder().build();
Unicorn.openServiceActivity(context, shopName, source);

平台版 App 通常在用户进入某个店铺、商品或订单页面时就能确定 shopId,打开客服时把该值写入 ConsultSource.shopId。后续查询会话状态、清除未读、删除会话、获取商家信息时,也使用同一个 shopId。

非平台版 App 不需要设置 shopId,也不需要接入本页的会话列表能力。

平台会话管理

本节说明 POPManager 提供的会话列表、会话状态、未读数和商家信息管理能力。

最近联系商家列表

获取最近联系商家列表,可用于展示会话列表,该接口返回一个Session列表,Session是一个包含会话信息的接口。

public static List<Session> getSessionList()

Session接口说明

方法名返回类型方法说明返回值说明
getContactId()String获取商家ID平台商家ID
getMsgStatus()MsgStatusEnum获取最后一条消息状态MsgStatusEnum是枚举值sending:正在发送success:发送成功fail:发送失败read:已读unread:未读recall:消息撤回
getUnreadCount()int获取商家的未读消息条数未读消息数
getContent()String获取最后一条消息的缩略内容最后一条消息的缩略内容
getTime()long获取最后一条消息的时间戳最后一条消息的时间戳
getFromAccount()String获取最近一条消息的发送方账号最近一条消息的发送方账号

代码示例

List<Session> sessionList = POPManager.getSessionList();

App 自建平台会话列表时,可以用 Session.getContactId() 作为商家会话 ID。用户点击某一行会话后,再用这个 ID 打开对应商家的客服窗口。

String shopId = session.getContactId();
ConsultSource source = new ConsultSource(null, "会话列表", null);
source.shopId = shopId;
Unicorn.openServiceActivity(context, shopId, source);

监听会话列表更新

public static void addOnSessionListChangedListener(OnSessionListChangedListener listener, final boolean add)

参数说明

字段类型参数说明取值说明
listenerOnSessionListChangedListener会话列表有变更时的通知接口回调函数
addboolean添加或注销监听true:添加监听false:注销监听

OnSessionListChangedListener

接口回调函数说明
OnSessionListChangedListener需要实现两个方法onSessionUpdate:商家会话发生变化(更新/添加)onSessionDelete:删除商家会话

代码示例

OnSessionListChangedListener listener = new OnSessionListChangedListener() {
    @Override
    public void onSessionUpdate(List<Session> updateSessionList) {
        for (Session session : updateSessionList) {
            int index = -1;
            for (int i = 0; i < sessionList.size(); i++) {
                if (session.getContactId().equals(sessionList.get(i).getContactId())) {
                    index = i;
                    break;
                }
            }

            if (index >= 0) {
                sessionList.remove(index);
            }

            sessionList.add(session);
        }

        sortSessionList(sessionList);
        adapter.notifyDataSetChanged();
    }

    @Override
    public void onSessionDelete(String shopId) {
        for (Session session : sessionList) {
            if (session.getContactId().equals(shopId)) {
                sessionList.remove(session);
                adapter.notifyDataSetChanged();
                break;
            }
        }
    }
};
POPManager.addOnSessionListChangedListener(listener, add);

获取会话状态

获取会话状态,返回值 SessionStatusEnum为会话状态

public static SessionStatusEnum querySessionStatus(String shopId)

参数说明

参数名类型参数说明取值说明
shopIdString聊天对象ID商户ID
返回值SessionStatusEnum会话状态SessionStatusEnum是枚举值NONE:空状态IN_SESSION:会话中IN_QUEUE:排队中

代码示例

SessionStatusEnum statusEnum = POPManager.querySessionStatus(String shopId);

删除联系商家记录

public static void deleteSession(String shopId, boolean clearMsgHistory)
参数名类型参数说明取值说明
shopIdString聊天对象ID商户ID
clearMsgHistoryboolean是否同时清空消息记录true:清空false:不清空

代码示例

POPManager.deleteSession(String shopId, boolean clearMsgHistory);

获取商家信息

根据商家ID获取商家信息

public static ShopInfo getShopInfo(String shopId)

参数说明

参数名类型参数说明取值说明
shopIdString聊天对象ID商户ID
返回值ShopInfo商家信息ShopInfo接口

ShopInfo接口说明

方法名返回类型方法说明返回值说明
getAccount()String获取商家ID商家ID
getName()String获取商家名称商家名称
getAvatar()String获取商家头像商家头像

代码示例

ShopInfo shopInfo = POPManager.getShopInfo(shopId);

获取商家最后一条消息内容

可用于未读消息变化时,展示最后一条未读消息,或者展示客服的最后一条消息

public static IMMessage queryLastMessage(String shopId)

参数说明

字段类型参数说明取值说明
shopIdString聊天对象ID商户ID

代码示例

IMMessage message = POPManager.queryLastMessage(shopId)
if (message != null) {
	// 获取消息附件
	if (message.getAttachment() != null) {
		if (message.getAttachment() instanceof YsfAttachment) {
			Log.d("queryLastMessage", "message:" + ((YsfAttachment) message.getAttachment()).getContent());
		} else {
			Log.d("queryLastMessage", "message:" + message.getAttachStr());
		}
	} else {
		// 获取文本消息
		Log.d("queryLastMessage", "message:" +message.getContent());
   }
 }

平台业务

本节收纳平台企业或平台电商相关的基础说明和平台补充内容。

SDK加入了平台商家企业的支持,平台商家就是类似京东,天猫一类的企业,下属很多其他的第三方商家,每个第三方商家都能够独立管理自己的客服,平台不直接管理客服的分配,绩效等日常工作。

本节内容仅仅介绍平台电商接入的相关知识,所有内容是在前面内容基础上编写的,有关 SDK 接入,客服分配,UI 定制等基础知识,请先阅读前文。

如果您不是平台商家企业,可以忽略这部分内容。

这篇文档有帮助吗?

目录