支付宝小程序客服系统怎么接
作者:周屿|更新于 2026-10-21
老板说,支付宝小程序里要加个客服,客户点一下就能聊,别让他跳出去。活落到做小程序的人手上,去搜支付宝小程序客服系统怎么接,搜出来的多是支付宝自带的客服按钮,或者客服系统的介绍,在小程序里怎么嵌,讲清楚的不多。
其实路就一条。把客服系统的对话页面放到你自己的域名上,在支付宝后台的「H5 域名配置」里报备这个域名,再在小程序里建一个页面,用 web-view 把对话页面打开。最后重新打包提审,线上就能用了。
按这个顺序走一遍,每一步看到的是这样。
先看三样东西齐不齐
这一步不看,后面会白忙。
- 小程序是企业主体的。个人主体的小程序一般用不了
web-view。 - 有一个备案过的域名,是 HTTPS 的,而且你能往它的根目录传文件。支付宝要靠根目录里的一个文件,确认这个域名是你的。
- 客服系统的对话页面已经放在这个域名上,用浏览器打开能正常聊天。
前两样是公司本来有没有的事,缺了就先去办。第三样是接下来要做的第一件事。
做的如果是微信小程序,还多一种接法,可以接微信客服。微信小程序用微信客服还是对话链接,另一篇讲过。
把对话页面放到自己的域名上
为什么一定要用自己的域名?客服系统一般都会给一个现成的聊天网址,可那个网址用的是客服系统的域名。你没法往它的根目录传文件,支付宝那边验证不过,就报备不进去。
在合从里,这个对话页面就是一个文件。先登录工作台,工作台就是客服回消息的那个页面。
- 打开「设置」,进「渠道管理」,选你的对话链接渠道。对话链接,就是一个点开就能聊天的网址。
- 左边点「链接与二维码」。
- 找到「使用自己的域名」,点「下载页面文件」,会下下来一个
chat.html。

这个文件不用改,交给管网站的同事,传到域名根目录就行。
传完用浏览器打开 https://你的域名/chat.html。能看到客服的欢迎语,发一句话,工作台那边收得到,这一步就好了。

有件事可以顺手一起办。下一步支付宝也要往根目录传一个校验文件,和传 chat.html 是同一个操作,交给同一个人一次做完。
这个对话页面除了嵌进小程序,还能发短信、印成二维码,对话链接还能放在哪,另一篇讲过。
在支付宝后台报备域名
登录支付宝开放平台,进你的小程序,在开发设置里找「H5 域名配置」,点添加。
这里最容易配错。支付宝后台有两个白名单:「服务器域名白名单」管的是小程序自己发出去的请求,「H5 域名配置」管的才是 web-view 打开的页面。要配的是后一个。配到前一个里,页面照样打不开。
- 点「下载校验文件」,传到域名根目录,用浏览器能打开就行。
- 填域名,格式是
https://你的域名,校验通过就保存。 - 填这个页面的使用场景、域名和页面截图,提交审核。
第 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 里跑的是网页,拿不到小程序的服务通知。消息不会丢,客户下次进来还能接着看。要主动通知客户,得用小程序自己的订阅消息另外做。