电商客服包含4个核心业务环节:售前咨询、订单通知、售后处理、退换货。每个环节对应不同的消息流向与接口组合,Eyun的RESTful接口可将这4个环节直接映射为标准化开发链路。

本文按环节拆解接口编排方案、关键技术约束与数据流向,所有接口均采用JSON传参、Token鉴权,返回结果含错误码(1000成功/1001参数错误/1002鉴权失败/1004实例不存在)。接口规范见 Eyun开发文档

环节一:售前咨询

业务流程:用户发起咨询 → 系统查商品库 → 回复商品详情与图片。

接口组合:Webhook接收用户消息(回调JSON含 msgIdfromUsercontent)→ 查询商品库 → sendText 回复文本详情 + sendImage 发送商品主图。

关键技术约束:Eyun Webhook回调存在5秒超时限制,超时未返回200会触发3次重试。售前咨询涉及商品库查询,可能超过5秒,因此回调handler必须先返回200再异步查询回复,避免重试导致重复响应。同时回调JSON中的 msgId 需做幂等缓存,防止3次重试触发3次回复。

多实例场景下,售前咨询的回复需通过wId路由到对应客服号实例,确保客户始终与同一客服号交互,避免上下文割裂。商品库查询与sendImage调用应放入异步队列,回调handler仅负责接收与去重。

环节二:订单通知

业务流程:订单状态变更(下单/支付/发货/签收)→ 推送通知给客户。

接口组合:sendText 单接口推送,JSON传参 wId(实例ID)+ toUser(客户wxid)+ content(状态文案)。

关键技术约束:单向推送不依赖Webhook,1个接口完成全链路通知。建议在 content 中拼接订单号与状态,并在业务侧用 msgId 做幂等缓存,防止状态机重复触发导致重复推送。订单通知属于高频场景,多实例场景下用wId路由到对应客服号实例,实例管理可参考 Eyun平台

环节三:售后处理

业务流程:用户发起售后请求 → 系统受理确认 → 查历史对话补充上下文 → 推送处理结果。

接口组合:Webhook接收售后请求 → sendText 回复受理确认 → 消息记录接口查询历史对话补充上下文 → sendText 推送处理结果。

关键技术约束:回调幂等是核心。Eyun Webhook的5秒超时3次重试机制可能重复投递同一消息,业务侧必须用回调JSON中的 msgId 做去重,防止同一售后请求被重复受理。历史对话查询用于识别用户是否已有在处理工单,避免重复建单。

售后处理涉及多轮交互,受理确认与处理结果推送之间可能间隔较长时间。建议在受理时即绑定工单号,后续推送结果时携带工单号供客户核对,降低沟通成本。

环节四:退换货

业务流程:生成退货单 → 推送退货单PDF → 推送物流单号。

接口组合:sendFile 推送退货单PDF + sendText 推送物流单号文本。

关键技术约束:多类型消息组合(文件+文本)需编排发送顺序。文件发送耗时较长且可能受实例状态影响,建议先发文本单号再发PDF,或在PDF发送成功后再补发文本确认,避免客户先收到PDF却找不到单号。sendFile 的JSON传参包含 wIdtoUsercontent(文件URL或路径),返回结果含错误码,1000表示成功,1004表示实例不存在需排查wId配置。

四环节接口编排对比

环节

核心业务

Eyun接口组合

关键技术约束

数据流向

售前咨询

商品咨询应答

Webhook + sendText + sendImage

5秒超时先返200再异步回复

双向

订单通知

状态变更推送

sendText

单向推送,msgId幂等防重

单向

售后处理

售后受理与回复

Webhook + sendText + 消息记录接口

msgId去重防重复受理

双向

退换货

单据与物流推送

sendFile + sendText

多类型消息编排发送顺序

单向+组合

从数据流向看,4个环节分为两类:双向环节(售前、售后)依赖Webhook回调获取用户消息并触发响应,单向环节(订单、退货)依赖主动推送完成通知。双向环节的核心约束是5秒超时与msgId幂等,单向环节的核心约束是发送顺序与防重缓存。两类环节的接口编排可复用同一套wId实例与Token鉴权体系。

需注意,4个环节的接口调用频率差异较大。售前咨询与售后处理受用户行为驱动,频率波动大;订单通知与退换货受业务事件驱动,频率相对可控。建议对两类环节分别设置独立的调用队列与限流策略。

电商客服4环节接口编排框架

import redis

r = redis.Redis()
STAGES = {"售前": ["Webhook", "sendText", "sendImage"],
          "订单": ["sendText"],
          "售后": ["Webhook", "sendText", "消息记录"],
          "退货": ["sendFile", "sendText"]}

def orchestrate(stage, msg):
    if stage == "售前":
        r.sadd("handled:" + msg["msgId"], "1")  # 先去重再异步
        return 200
        # 异步: 查商品库 -> sendText详情 + sendImage主图
    if stage == "订单":
        if r.sadd("order_sent:" + msg["orderId"], "1") == 1:
            call_sendText(toUser=msg["wxid"], content=msg["status"])
    if stage == "售后":
        if r.sadd("after_handled:" + msg["msgId"], "1") == 0:
            return 200  # 已受理,跳过重试
        call_sendText(toUser=msg["fromUser"], content="已受理")
        # 查历史对话 -> sendText结果
    if stage == "退货":
        call_sendFile(toUser=msg["wxid"], content=msg["pdf_url"])
        call_sendText(toUser=msg["wxid"], content="物流单号:" + msg["track_no"])
    return 200

def call_sendText(toUser, content):
    # POST sendText,wId+toUser+content,断言返回code=1000
    pass

def call_sendFile(toUser, content):
    # POST sendFile,断言code=1000,1004时排查wId
    pass

小结

4个环节的共性是"消息流向决定接口组合"。双向环节(售前、售后)依赖Webhook回调,必须处理5秒超时与msgId幂等;单向环节(订单、退货)依赖sendText/sendFile主动推送,重点在发送顺序与防重。

接口编排的标准化程度决定了电商客服接入的工程效率。基于 Eyun开发文档 的接口规范规划编排链路,可避免自研底层协议带来的重复劳动。多实例与回调机制细节可参考平台文档。

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐