支付宝小程序客服系统怎么接

合从在线客服系统首页 / 文章列表 / 详情2026-10-21 18:00:00

作者:周屿|更新于 2026-10-21

老板说,支付宝小程序里要加个客服,客户点一下就能聊,别让他跳出去。活落到做小程序的人手上,去搜支付宝小程序客服系统怎么接,搜出来的多是支付宝自带的客服按钮,或者客服系统的介绍,在小程序里怎么嵌,讲清楚的不多。

其实路就一条。把客服系统的对话页面放到你自己的域名上,在支付宝后台的「H5 域名配置」里报备这个域名,再在小程序里建一个页面,用 web-view 把对话页面打开。最后重新打包提审,线上就能用了。

按这个顺序走一遍,每一步看到的是这样。

先看三样东西齐不齐

这一步不看,后面会白忙。

  1. 小程序是企业主体的。个人主体的小程序一般用不了 web-view。
  2. 有一个备案过的域名,是 HTTPS 的,而且你能往它的根目录传文件。支付宝要靠根目录里的一个文件,确认这个域名是你的。
  3. 客服系统的对话页面已经放在这个域名上,用浏览器打开能正常聊天。

前两样是公司本来有没有的事,缺了就先去办。第三样是接下来要做的第一件事。

做的如果是微信小程序,还多一种接法,可以接微信客服。微信小程序用微信客服还是对话链接,另一篇讲过。

把对话页面放到自己的域名上

为什么一定要用自己的域名?客服系统一般都会给一个现成的聊天网址,可那个网址用的是客服系统的域名。你没法往它的根目录传文件,支付宝那边验证不过,就报备不进去。

在合从里,这个对话页面就是一个文件。先登录工作台,工作台就是客服回消息的那个页面。

  1. 打开「设置」,进「渠道管理」,选你的对话链接渠道。对话链接,就是一个点开就能聊天的网址。
  2. 左边点「链接与二维码」。
  3. 找到「使用自己的域名」,点「下载页面文件」,会下下来一个 chat.html。

对话链接渠道「链接与二维码」页,使用自己的域名区域的下载页面文件按钮

这个文件不用改,交给管网站的同事,传到域名根目录就行。

传完用浏览器打开 https://你的域名/chat.html。能看到客服的欢迎语,发一句话,工作台那边收得到,这一步就好了。

浏览器里打开对话页面,看到客服的欢迎语和输入框

有件事可以顺手一起办。下一步支付宝也要往根目录传一个校验文件,和传 chat.html 是同一个操作,交给同一个人一次做完。

这个对话页面除了嵌进小程序,还能发短信、印成二维码,对话链接还能放在哪,另一篇讲过。

在支付宝后台报备域名

登录支付宝开放平台,进你的小程序,在开发设置里找「H5 域名配置」,点添加。

这里最容易配错。支付宝后台有两个白名单:「服务器域名白名单」管的是小程序自己发出去的请求,「H5 域名配置」管的才是 web-view 打开的页面。要配的是后一个。配到前一个里,页面照样打不开。

  1. 点「下载校验文件」,传到域名根目录,用浏览器能打开就行。
  2. 填域名,格式是 https://你的域名,校验通过就保存。
  3. 填这个页面的使用场景、域名和页面截图,提交审核。

第 3 步的截图,要和这个域名实际打开的页面对得上,对不上会被驳回。提审时被驳回、说页面白屏的,先查两处:截图和实际页面是不是一致,域名是不是配在了「H5 域名配置」里。

只支持 HTTPS 域名,不支持 IP 地址,也不能带端口号。支付宝后台的菜单位置会调整,以当时看到的界面为准,每一步的细节,文档站上支付宝这一页写得更全。

在支付宝小程序里单独建一页

web-view 会铺满整个页面,盖住页面上别的东西,而且一个页面只能放一个。所以别把它塞进首页的一块区域,要单独建一个页面专门放它。

新建一个页面,比如 pages/support/index,axml 里只放一行:

<web-view src="https://你的域名/chat.html"></web-view>

然后在首页、「我的」页面,或者想放客服入口的地方加个按钮,点了跳过来:

my.navigateTo({ url: '/pages/support/index' })

把会员身份带过去

不带身份的话,客服那边看到的是一个匿名访客。小程序本来就知道当前登录的是哪个会员,拼 web-view 地址的时候把他的信息带上就行。

在页面的 onLoad 里取到当前用户,拼出 u 和 n。n 放名字。u 放这个会员的标识,下面代码里叫 chatKey,它该用什么值,后面单独讲:

Page({
  data: { url: '' },
  onLoad() {
    const user = my.getStorageSync({ key: 'user' }).data || {}
    const query = [
      'u=' + encodeURIComponent(user.chatKey), // 每个会员一个、别人猜不到,比如 UUID
      'n=' + encodeURIComponent(user.name),
    ].join('&')
    this.setData({ url: 'https://你的域名/chat.html?' + query })
  },
})

axml 里的 src 相应改成 {{url}}。客服打开对话,就能看到这个客户叫什么。

  • u 是必填的,名字、手机号这些都挂在 u 上。只带名字不带 u,资料会被忽略。
  • 名字、手机号这些参数,页面打开后会从地址栏里抹掉,客户转发出去不会带出手机号。
  • 中文要做 URL 编码,上面的代码已经做了。

u 每个客户都得不一样。 最常见的错,是代码里图省事写了个固定值,结果所有客户被认成同一个人,互相能看到聊天记录。拿不到用户 ID 的时候,干脆不传 u,按匿名访客接待,各聊各的,不会串。

u 还得别人猜不到。 网址上的参数,客户自己能改。u 要是用了顺序编号的会员号,客户把 10086 改成 10087,就能看到另一个客户的对话。手机号也一样能猜。

很多小程序的会员 ID 就是顺序编号的,不要直接拿来当 u。可以用随机字符串、UUID,或者用密钥对会员 ID 做一次哈希。

手机号、会员等级这些也能传,参数表在文档站「传客户资料给客服」那一页。

重新打包提审,真机上过一遍

支付宝和微信、抖音不一样。微信、抖音改完域名当场生效;支付宝配好以后,已经发布的线上小程序不会跟着变,要重新打包、提审、发布。

所以这种情况很常见:在支付宝开发者工具里预览好好的,用支付宝扫码或者线上版本打开就不行。开发工具一般会跳过域名校验,真机走的是线上配置。这时候重新打包生成体验版,扫码试,没问题再提审发布。

真机上还打不开的,照下面查:

看到什么 先查哪里
提示域名不在白名单 域名要加在「H5 域名配置」里,加进「服务器域名白名单」是配错了;加对了以后有没有重新发版
开发工具能开,真机不行 改完白名单没重新打包,打一个体验版再试
页面出来了,聊天窗一直转圈 用手机浏览器直接打开 https://你的域名/chat.html。浏览器里也转圈,查对话页面本身;浏览器里正常,看 web-view 的地址有没有跳到别的域名,跳过去的域名也要加进白名单

白名单只管 web-view 打开的那个地址。页面里客服程序自己连服务器用的地址,不用你配。

走完来看,时间花在哪

三样东西齐了的话,开发量就是一个新页面加几行代码。真正花时间的是域名报备和提审,审核要等。

可以一开始就把传 chat.html 和传校验文件一起交给运维,代码这边同时写,两头不耽误。

除了支付宝,还有微信、抖音小程序也要接的,几个小程序一起接时客服系统怎么挑,另一篇讲过。

常见问题

支付宝小程序客服免费吗?

合从没有免费版,注册后有 7 天企业版免费体验。之后按坐席买,标准版每个坐席一年 399 元,企业版 799 元。

域名备案要和小程序是同一个公司吗?

不用。支付宝是靠根目录里的校验文件确认域名归你,跟域名备案在谁名下没关系。

客户退出小程序以后,客服回的消息他能收到吗?

收不到提醒。web-view 里跑的是网页,拿不到小程序的服务通知。消息不会丢,客户下次进来还能接着看。要主动通知客户,得用小程序自己的订阅消息另外做。

轻松上手,简单好用

多渠道统一服务,提升营销转化,降低人工回复成本,客服团队协助更高效