皮
皮皮工具箱 · 管理后台
客服配置 / 用户管理 / 反馈管理
皮
管理后台
微信客服设置
小程序端通过 uni.openCustomerServiceChat 打开企业微信客服,需绑同主体的 corpId 与客服链接。
启用「点击按钮跳转微信客服」总开关
首页打开小程序自动跳转客服
界面按钮 · 跳转微信客服
开关打开后,小程序端点击该按钮直接打开微信客服;关闭时不跳转客服,按钮走小程序原本的动作。
功能页工具 · 跳转微信客服
开关打开后,小程序端点击该功能方块不进入工具页面,而是直接打开微信客服;关闭时不跳转客服,正常进入工具。预置清单来自小程序功能页,可增删。
👥
-
小程序用户
💡
-
期望功能
🐞
-
BUG 反馈
⏳
-
待回复
反馈列表
小程序「期望功能 / BUG 反馈」提交的记录;回复后小程序端反馈记录会显示回复内容。
类型内容用户时间回复操作
注册用户
小程序端「皮皮号」注册的用户;删除将同时清除其登录态与反馈记录。
ID昵称皮皮号手机号平台最近登录
修改管理员密码
修改成功后将退出登录,需使用新密码重新登录。
全局约定
小程序端 luch-request (xhttp) 与本后端的交互约定;管理端请看页面底部「管理端接口」。
BASE http://localhost:3000 即 uniapp/main.js 的 baseURL(上线改回 https://ppgjx.com)
请求格式application/x-www-form-urlencoded(小程序统一使用),管理端使用 JSON,两种后端都支持
响应结构{ "code": 0, "message": "ok", "data": ... },HTTP 状态恒为 200
登录态小程序在 App.vue 启动拦截器统一注入自定义请求头:token(登录会话)与 uid(用户 id),另带 platform / version / cid
code 含义 0 成功 1 业务错误(拦截器弹出 message) 4 登录失效(小程序自动清登录态并跳转「我」页) 2 管理端未登录
小程序端 · 用户账号
POST/user/user/v1/register注册皮皮号
参数类型必填说明
namestring是昵称,≤7 个字
accountstring是皮皮号,3-15 位字母数字,唯一
passwordstring是4-20 位字母数字
成功 { "code": 0 }   失败示例 { "code": 1, "message": "皮皮号已被注册" }
POST/user/user/v1/login登录,返回的 data 存入 storage『user』
参数类型必填说明
account / passwordstring是皮皮号 + 密码
platformstring否devtools / ios / android
pushStatus0/1否推送授权状态
{ "code": 0, "data": { "user_id": 1, "name": "测试用户", "account": "test123", "phone": null, "icon": "", "token": "a3f..." } }
POST/user/user/v1/quit退出登录,销毁当前会话需登录
{ "code": 0 }
POST/user/user/v1/updatePassword修改密码,成功后全端强制重新登录需登录
参数类型必填说明
passwordstring是原密码
newPasswordstring是新密码,4-20 位字母数字
成功 { "code": 0, "message": "密码已修改, 请重新登录" }
失败 { "code": 1, "message": "原密码错误" }
POST/user/user/v1/pushApp.vue onShow 自动上报推送状态 / cid需登录
pushStatus0/1是cid 由拦截器请求头自动带上
POST/user/user/v1/sendSms发送短信验证码
phonestring是11 位手机号,本地联调时验证码打印在服务器控制台,5 分钟有效
POST/user/user/v1/phone绑定手机号,成功返回最新 user 对象需登录
phone / codestring是手机号与验证码(sendSms 获得并在服务端日志查看)
{ "code": 0, "data": { "user_id": 1, "...": "同登录返回, phone 已填" } }
小程序端 · 期望功能 / BUG 反馈
POST/user/feedback/v1/issue提交反馈(pages/index/function 与 feedback 共用)需登录
参数类型必填说明
issuestring是反馈内容,≤1000 字
type0 | 1是0 期望功能,1 BUG 反馈
platformstring否提交时平台
{ "code": 0, "message": "提交成功, 感谢您的反馈!" }
POST/user/feedback/v1/query查询「我」的反馈记录(待回复的排在最前)需登录
type0 | 1是0 期望功能 / 1 BUG 反馈
{ "code": 0, "data": [ { "issue": "手电筒…", "reply": null, "create_time": "2026-11-01 11:02" },
                        { "issue": "word 转 pdf…", "reply": "收到! 已排期", "create_time": "2026-11-01 11:02" } ] }
小程序端 · 启动对接
POST/functions/index/init启动时拉取远程工具列表(本地返回空数组,沿用内置列表)
{ "code": 0, "data": [] }
GET/api/kefu/config公开只读;启动拉取客服配置(utils/kefu.js 的 KEFU_BASE + 此路径)
{ "code": 0, "data": { "enabled": 0, "corp_id": "", "kefu_url": "",
           "auto_jump": 0, "auto_jump_mode": "every",
           "buttons": [ { "key": "index_fab", "name": "首页-客服悬浮按钮", "kind": "button", "open_service": 0 },
                         { "key": "qrcode", "name": "二维码", "kind": "tool", "open_service": 0 }, … ] } }
// kind=button 界面按钮;kind=tool 功能页方块,key 对应 /pages/functions/<key>/... 的目录名
小程序端 · 广告观看(真实实现,含排行榜)
POST/user/ad/get播放广告前的次数检查(pages/index/my.vue)需登录
{ "code": 0, "data": { "count": 3 } }
POST/user/ad/addCount观看倒计时结束后累计观看次数 +1(pages/index/adList.vue)需登录
{ "code": 0 }
POST/user/ad/getad广告位横幅列表(元素需 img/url 字段;本地无投放素材返回空数组)
{ "code": 0, "data": [] }
投放后 { "code": 0, "data": [ { "img": "https://…banner.png", "url": "https://…" } ] }
POST/user/ad/ranking观看次数排行榜(pages/index/ranking.vue,按 ad_count 倒序取前 50)需登录
offset INTEGER否已加载条数(传 0 / 空 = 重新加载第一页)
{ "code": 0, "data": { "list": [ { "name": "测试用户", "sum": 6 }, … ], "mySum": 3 } }
功能桩接口(依赖三方服务,返回明确提示而非网络错误)
本地后端以 code 1 + 中文提示 兜底,小程序端拦截器会把 message 弹给用户;接入对应服务后替换实现即可
路径对应页面依赖本地返回
POST /functions/ExpressCheck/query快递查询第三方物流 APIcode 1 暂不支持快递查询
POST /functions/WipeWatermark/exec视频提取(去水印)第三方解析 APIcode 1 暂不支持视频提取
POST /functions/ChatRoom/apply · /banned聊天室WebSocket 服务code 1 需完整服务端环境
POST /index/index/updateAPP 版本检查(真机)—code 0, data null → 不弹更新框
管理端接口(Bearer token,与客服配置接口同一套鉴权)
方法 / 路径 / 说明
方法路径说明
POST/api/admin/login登录
POST/api/admin/logout退出登录
PUT/api/admin/password修改管理员密码
GET PUT/api/admin/kefu/config读 / 存客服配置
POST GET PUT DELETE/api/admin/kefu/buttons按钮配置管理(:id 操作)
GET/api/admin/stats统计:users / ideas / bugs / pending
GET DELETE/api/admin/users用户列表 / 删除用户(连带其反馈与登录态)
GET/api/admin/feedback反馈列表,支持 ?type=0/1 与 ?status=0/1
PUT DELETE/api/admin/feedback/:id回复(/reply)与删除反馈
GET/api/kefu/config小程序公开接口(无需鉴权)
对接注意事项
1. 修改 uniapp/main.js 的 baseURL 与 domain,以及 uniapp/utils/kefu.js 的 KEFU_BASE,三处一起切换本地 / 线上后端(domain 用于 App 真机版本检查)。
2. 本地为 HTTP,微信开发者工具需勾选「详情 → 本地设置 → 不校验合法域名」(manifest 已设 urlCheck:false)。
3. 上小程序前把后端域名加入小程序后台 request 合法域名并切换为 HTTPS 线上地址。
4. 短信验证码为本地联调版本,验证码打印在服务器控制台,真实短信请自行接入服务商。
5. 全部接口返回 HTTP 200,未实现的接口由兜底路由返回 {code:1},小程序端不会弹「网络错误」。
确认操作