uni.opencustomerservicechat需校验基础库≥2.10.4、extinfo.url须为后台已配置的https客服链接,仅mp-weixin可用,不支持自动发欢迎语。

uni-app 调用 openCustomerServiceChat 前必须校验基础库版本
微信小程序原生支持客服会话是从基础库 2.10.4 开始的,而 uni-app 的 uni.openCustomerServiceChat 是对 wx.openCustomerServiceChat 的封装,底层依赖该 API。低于此版本调用会直接报错或静默失败。
实操建议:
公众号运营:文章发布至草稿、样式封面、评论与用户管理、数据统计等。用户要求将 Markdown 发送到公众号草稿、查看阅读量统计或类似后台操作时,使用本技能。
- 在调用前务必用
uni.getSystemInfo拿到SDKVersion,并做语义化比较(不能直接字符串比大小) - 推荐使用
miniprogram-ci或真机调试确认实际运行环境版本,开发者工具模拟版本可能不准 - 若版本不满足,降级方案只能展示客服电话或跳转公众号图文(无会话能力)
uni.openCustomerServiceChat 必须传 extInfo 且 extInfo 中的 url 需要提前配置
微信要求客服会话必须绑定一个已备案的「客服链接」,即 extInfo.url 必须是小程序管理后台「客服管理 → 客服链接」中已添加并审核通过的 URL。传任意地址或未配置的地址会触发 fail: invalid url 错误。
常见错误现象:
- 控制台报错
fail invalid extInfo.url或fail: invalid url - 真机点击无反应,也不弹出任何提示
- 开发者工具提示「当前账号未配置客服链接」但后台明明已加
实操建议:
- 登录 微信公众平台 → 小程序 → 客服管理 → 客服链接,添加形如
https://xxx.com/kefu的 HTTPS 地址(必须备案、ICP、有 SSL) -
extInfo至少包含{ url: 'https://xxx.com/kefu' },corpId非必填(仅企业微信场景需要) - 配置后需等待 5–10 分钟生效,缓存可能导致刚配完就调用失败
App 和 H5 端无法使用 uni.openCustomerServiceChat,需条件编译区分
uni.openCustomerServiceChat 仅在微信小程序(包括微信、QQ、快手等兼容平台)有效,App 端调用会返回 not function 或直接忽略;H5 端则完全不识别该 API,可能报 undefined is not a function。
实操建议:
- 用条件编译
#ifdef MP-WEIXIN包裹调用逻辑,其他端改用uni.makePhoneCall或跳转外部客服页面 - 不要在公共方法里无脑调用,否则上线后 App 用户点客服按钮无响应
- H5 若需类似体验,可接入第三方在线客服 SDK(如美洽、有赞客服),但需单独引入和初始化
客服会话打开后无法自动发送欢迎语?这是微信限制,不是代码问题
微信明确不支持通过 API 自动发送消息,uni.openCustomerServiceChat 只能打开会话窗口,后续所有消息都需用户手动输入或客服侧主动发起。所谓“自动欢迎语”只能由客服在后台设置「新会话欢迎语」,且仅对首次咨询用户生效。
容易被忽略的地方:
- 前端传
message字段(如extInfo: { url: '...', message: '你好' })完全无效,微信已废弃该参数 - 试图用
setTimeout模拟输入并触发回车,不仅无效,还可能被微信拦截 - 客服侧欢迎语需在「客服管理 → 新会话欢迎语」中开启并填写,且仅对未会话过的用户展示一次
真正在意用户体验的话,得让客服运营同学把欢迎语写清楚、带引导按钮(比如「点此查看订单」),而不是指望前端绕过限制。










