一、项目背景

城市年轻人对线下文娱社交的需求持续增长,"找人一起玩"是一个真实且高频的场景。当前市场存在三个核心问题:

第一,信息不对称。想找桌游搭子、剧本杀队友、City Walk同伴的人不知道该去哪里找;有技能、愿意带人玩的达人也缺少可信赖的获客渠道。两端都有人在,但缺乏高效匹配的平台。

第二,交易不安全。私下微信转账没有任何保障——一方放鸽子、服务不满意,另一方没有救济渠道。如果平台直接经手资金(用户付给平台、平台再转付达人),又会触发非法"二清"的合规风险。

第三,合规红线高。"陪玩""陪练"等称谓在监管审核中属于敏感词,容易触发平台下架。需要用合规的表述方式和场景定义来规避政策风险。

搭搭平台正是为解决这三个问题而设计的——用合规的身份定位、安全的资金托管机制,让用户找到合适的技能达人,让达人通过自己的技能获得收入。

二、平台定位

搭搭是一个绿色、合规的同城文娱休闲技能达人预约平台。平台仅提供线上信息撮合、资金托管、履约风控、售后仲裁四项服务,不直接提供任何线下服务。所有线下行为由用户与技能达人自主履约。

服务供给方统一称为"技能达人"(不用陪玩/陪练/教练等敏感称谓)。首期仅开放北京同城服务,后台预留多城市拓展接口。

平台盈利模式:从每笔订单实付金额中抽取35%作为平台服务费,剩余65%归技能达人。资金通过微信电商收付通托管和自动分账——用户付款后资金冻结在微信侧,订单完成后微信自动执行分账,平台全程不碰达人应得的钱,从技术架构上规避二清风险。

三、六大合规服务场景

以下场景为平台最终展示的固定服务场景,经过合规审查,V1.0不新增、不修改:

1. 桌游剧本杀

组局、教学、带队,在商场/商圈等公共场所进行

2. 网吧电竞

陪练、指导,在正规网吧/电竞馆进行

3. 城市漫游 City Walk

城市文化导览、街区探索,在公共空间进行

4. 台球

陪练、教学,在正规台球馆进行

5. COS委托

二次元角色扮演互动,在展会/公共场馆进行

6. 综合体育

球类、健身指导等,在正规体育场馆进行

四、核心业务主流程

  1. 达人入驻:提交三页资料(实名OCR+人脸核验+个人资料+素材上传)→ 后台人工审核 → 审核通过 → 缴纳500元保证金 → 接单权限自动开启
  2. 用户浏览:进入小程序默认定位北京 → 选择服务场景 → 系统自动过滤北京范围内、技能匹配、可接单的达人 → 点击卡片进入达人主页
  3. 下单:选择时长(最低60分钟)+ 见面地点 + 技能类型 + 留言备注(≤200字)→ 弹窗确认退款规则 → 微信支付 → 资金冻结在微信托管账户
  4. 达人接单:订单推送给对应达人 → 10分钟内操作接单/拒单 → 超时系统自动全额退款 → 接单后达人看到用户昵称、时长、地点、备注等信息
  5. 双向计时:双方见面后 → 达人点击"开始服务" → 用户弹窗确认 → 系统正式启动计时 → 服务中达人无法切换离线 → 退出小程序计时不受影响
  6. 续时与提醒:订单剩余10分钟双端推送提醒 → 用户可无限次续时(最低60分钟)→ 单价同步达人当前定价 → 计时自动顺延
  7. 订单完结:计时结束自动标记完成 → 用户可发布三档评价(好评/中评/差评+文字)→ 评价经敏词审核 → 违规评价不展示不计分
  8. 资金结算:订单完成后微信自动分账 → 65%进达人可提现余额 / 35%进平台 → 达人满足T+7结算+近7天无违规方可提现 → 最低提现50元

五、V1.0 功能范围边界

V1.0 包含(48个功能点)

  • • 六大场景固定展示,首期仅北京同城
  • • 用户浏览达人、查看主页、下单(时长+地点+技能+留言备注)
  • • 微信电商收付通支付(资金托管+自动分账)
  • • 达人三页入驻(实名OCR+人脸核验+素材上传)
  • • 500元保证金,审核通过后解锁接单
  • • 10分钟接单超时自动退款
  • • 双向确认计时(服务端驱动,退出不中断)
  • • 无限次续时、10分钟倒计时双端提醒
  • • 退款三场景:超时退/未计时退/计时后不退
  • • 三档评价+敏词审核、一键举报(6类)
  • • 达人工作台(收益流水+提现+月度台账)
  • • PC后台(审核/订单管理/财务对账/违规处罚)
  • • 消息中心+微信服务通知
  • • 在线状态管控(服务中不可离线)
  • • 首页热门达人/新晋达人两板块排序

V1.0 不做(延后版本)

  • IM即时通讯 — 用留言备注替代 → V1.3
  • 会员成长体系(VIP/SVIP/VVIP 10级)→ V1.1
  • 达人等级SABC+升降级+分级定价 → V1.1
  • 平台好友+常约达人 → V1.2
  • 个人主页编辑(相册/视频/个性资料)→ V1.2
  • 多城市开放+跨城筛选 → V2.0
  • 社区图文发布 → V2.0
  • • 支付失败自动补偿兜底 → 延后
以上范围为双方对V1.0产品功能的最终约定。后续任何新增需求均需评估对工期的影响,双方书面确认后生效。
双方已阅读并确认以上产品范围(点击勾选)

六、三端用户与角色

用户端(微信小程序内)

普通消费者,微信授权登录。核心操作:浏览六大场景 → 筛选达人 → 查看达人主页 → 下单(选时长+填地点+写备注)→ 微信支付 → 确认开始计时 → 评价。

达人端(同一小程序内)

技能服务提供者。同一微信用户登录后,如已入驻为达人,通过"我的"页面角色切换入口进入达人工作台。核心操作:三页入驻 → 等审核 → 缴保证金 → 接单/拒单 → 开始服务 → 查看收益 → 申请提现。

PC运营管理后台

平台运营管理员使用,独立Web应用。审核入驻资料、订单全量管理及Excel导出、财务对账(分润统计+提现审核驳回)、达人/用户管理(处罚+封禁)、举报工单处理。

角色切换说明

用户端和达人端是同一个微信小程序的内部视图,不是两个独立小程序。同一微信号可同时拥有用户(UID)和达人(TID)身份。登录后后端返回两个ID,前端根据身份展示对应页面。双重身份用户可在"我的"页面看到角色切换入口。

甲方(老板)需准备事项 — 共 12 项

标注为红色"必须先做"的 6 项是上线硬性条件。标黄色"可并行"的 6 项可与开发同步推进。点击每项可标记完成。

前 6 项红色标签的总耗时约 3-5 周。最慢的是 ICP 备案(15-20 工作日),请务必在第 1 周同步启动。

费用预估(甲方承担部分,不含开发费)

一次性费用

营业执照代办~¥2,000
对公账户开户~¥500
域名首年~¥200
6份协议法务审核¥5,000-15,000
小计~¥7,700-17,700

年度固定费用

域名续费~¥200/年
微信开放平台¥300/年
微信服务号¥300/年
小程序认证¥300/年
云服务器(初期)~¥1,500-3,000/月
微信年费合计¥900/年

项目里程碑(点击查看各节点交付内容)

🚀
项目启动 — 点击上方里程碑查看每个节点交付了什么

8周时间线(点击展开详情)

版本迭代规划

版本内容时机
V1.048个功能点,单城市(北京),无IM/会员/等级第8周
V1.1会员成长体系(VIP/SVIP/VVIP 10级)+ 达人等级SABC + 升降级V1.0稳定1个月后
V1.2平台好友 + 常约达人 + 个人主页编辑用户量>500
V1.3IM即时通讯订单量>100/天
V2.0多城市开放 + 社区图文模块商业模式验证后
面向对象:开发团队成员。前置阅读:02号文档《功能清单》。本文档说明本项目与传统微信小程序项目的差异点、为什么要这样设计、哪些坑不能踩。

一、与普通微信小程序的根本差异

1.1 不是云开发,是自建服务器

微信云开发(CloudBase)有五个致命缺陷:无关系型数据库(MongoDB文档型无JOIN无事务,本项目28张表必须MySQL)→ 无持续定时任务(云函数请求触发即销毁,10分钟超时和计时引擎需要常驻进程)→ 不支持外部HTTP回调(收付通支付回调需要自有域名)→ 不支持PC后台不支持多端共享数据。本项目必须自建服务器、自备域名、MySQL+Redis。

1.2 不是普通支付,是电商收付通

普通支付(用户付款到平台商户号→平台转给达人)= 非法二清,央行处罚。必须用电 商收付通:用户付款后资金冻结在微信托管账户,订单完成后微信自动分账65%给达人、35%给平台。平台全程不碰达人应得的钱。

开发影响:不能用JSAPI普通下单接口,要用ecommerce收付通接口。下单带profit_sharing分账指令。订单完成后调分账接口。退款先调分账回退再退款。

1.3 计时纯服务端驱动

小程序后台JS线程5-10秒冻结,前端setInterval倒计时必出问题。正确做法:下单时服务端记录绝对时间戳end_time → Redis Sorted Set调度(ZADD timer_queue end_time order_id)→ Worker每30秒轮询(ZRANGEBYSCORE timer_queue 0 NOW())→ 前端只做展示,每次调接口拿剩余时间。

1.4 没有IM,有留言备注

下单时填写:时长+见面地点+技能类型+留言备注(≤200字)。达人接单时看到全部信息决定接/拒。拒单可附原因。不需要WebSocket、消息存储、敏感词实时拦截。

1.5 单小程序双角色

用户端和达人端是同一小程序的内部视图。登录后后端返回uid和tid,前端根据两者存在展示对应页面。角色切换=前端路由切换,不需重新登录。OpenID是唯一标识,不需要UnionID。

二、核心模块技术决策

2.1 订单状态机(最重要)

PENDING 待接单 ACCEPTED 已接单 IN_PROGRESS 服务中 COMPLETED 已完成
↘ 10分钟超时/达人拒单 → CANCELLED(不可逆)  续时:保持IN_PROGRESS,只更新end_time
实现要点:状态变更必须写order_timeline表;更新带乐观锁(WHERE status=上一状态);支付回调和前端请求两处都要幂等处理。进入COMPLETED或CANCELLED后不可回任何状态。IN_PROGRESS后不能取消。

2.2 Redis Sorted Set 定时调度

// Key: order:timeout_queue | 结构: ZSET | Score: 到期时间戳(Unixms) // 下单: ZADD ... {下单+10min} {order_id} // 接单: ZREM(移除超时监控) // 计时开始: ZADD ... {end_time} {order_id} // Worker每30秒: ZRANGEBYSCORE ... 0 NOW() → 判状态→执行→ZREM

2.3 支付回调幂等

微信回调至少通知一次、不保证只通知一次。处理:①验签 → ②查order_payments(transaction_id已存在→直接返回SUCCESS)→ ③开事务写流水+更新订单+写时间线 → transaction_id做唯一索引。

2.4 金额精度(铁律)

禁止浮点数。金额全部存分(int64),只在展示时÷100转元。分润用整数运算:userPaid * 65 / 100,不用amount * 0.65

三、数据库要点

敏感信息加密:身份证号AES-256加密,密钥存环境变量不提交Git。身份证/人脸图片存COS私有桶,签名临时URL访问。密钥不进代码、不打印日志、DB只有密文。

软删除规则:订单(财务凭证)、支付流水、评价(影响好评率)、协议签署记录(合规举证)、举报工单(纠纷追溯)——全部用status字段逻辑删除,禁止硬删除。

四、开发常见坑

微信限制:服务器域名必须HTTPS;不能出现"充值""余额"字眼;wx.getLocation每次弹窗授权;页面栈最多10层;主包2MB限制。

支付调试:微信支付无沙箱环境(2023年废弃),必须真实商户号和真机测试。建议申请测试商户号。

收付通三个坑:①分账接收方必须先添加(达人入驻通过后调接口,走微信审核)②分账有30天窗口(超时不能分)③分账后退款要先调分账回退再退款(比普通退款多一步)。

五、代码结构

dada-platform/ ├── backend/ # Go Zero 微服务 │ ├── service/ │ │ ├── user/ # 用户服务 | order/ # 订单服务 │ │ ├── talent/ # 达人服务 | payment/ # 支付服务 │ │ └── notification/ # 通知服务 │ └── job/timer/ # 计时Worker(Redis轮询) ├── miniapp/ # uni-app 单小程序 │ ├── pages/user/ # 用户端 | pages/talent/ # 达人端 ├── admin/ # PC管理后台 Vue3 └── deploy/ # docker-compose + nginx

六、开发前必读

  • ☑ 阅读02号《功能清单》全部48个功能点
  • ☑ 理解电商收付通 vs 普通支付的区别
  • ☑ 理解服务端计时的必要性(前端setInterval是错的)
  • ☐ 记住订单状态机5个状态+不可逆规则
  • ☐ 理解金额存分、整数运算(浮点数算钱会出事)
  • ☐ 理解分账接收方要先添加、30天窗口、退款先回退
  • ☐ 阅读微信电商收付通API文档
  • ☐ 确认小程序后台request合法域名已配置
钱不能算错   钱不能算错   钱不能算错
每行涉及金额的代码都停下来多想一秒钟