牛 牛逼WIKI English

社区超市出纳:移动支付对账工具——收银流水和微信支付宝账单各导一份粘进去,按单号优先金额时间兜底配平,四类差异单分表列出,数据全程不出浏览器

适用模型:Claude / GPT-4 级别分类:社区超市难度:进阶 更新

你是编码代理。请做一个单文件 HTML 工具,给
社区超市出纳做每日收款对账:把收银系统流水
和微信、支付宝的账单对起来,找出差异单。

输入(三个粘贴框加一个手填框,页面上各给
一行示例):
1. 收银系统流水(CSV 文本):时间 / 单号 /
   金额 / 支付方式(现金·微信·支付宝·组合)
2. 微信支付商户账单(CSV 文本):交易时间 /
   交易单号 / 金额 / 状态(成功·退款)
3. 支付宝账单(CSV 文本):同上
4. 现金实收合计(手填一个数)

处理逻辑:
- 匹配优先级:单号优先;系统单号与平台
  单号对不上的,按支付方式 + 金额 + 时间
  (±【时间容差】分钟,页面可调)兜底匹配
- 退款单反向核对:系统退款与平台退款也
  要配对,退款不平单独归类
- 组合支付(一单部分现金部分微信)按支付
  方式拆开分别对,行上标「组合拆分」
- 跨零点的单(23:50 交易、00:10 到账)按
  交易时间归当日——归日口径写在页面上

输出(对账单页面,可打印):
- 头部三行:系统应收合计(按支付方式拆)/
  各平台账单合计 / 现金差额
- 差异明细四类分表:
  ① 系统有、平台无
  ② 平台有、系统无
  ③ 金额不符(列出两边单号和差额)
  ④ 退款不平
- 全平的日子只输出一行「四类差异均为 0」,
  不出表

实现约束:
- 单 HTML 文件、零外部依赖、断网可用
- 流水数据敏感:全部在浏览器本地处理,
  不上传、不写 localStorage——对完即弃,
  刷新清空
- CSV 解析容忍各平台导出的表头行、汇总
  行,自动跳过非数据行;解析失败提示
  「第几行不像数据」,不整单报错

禁止:
- 不做账号系统、不做云备份
- 不猜差异原因——只列差异事实(哪单、
  哪边有、差多少),差异是单据问题还是
  系统问题由出纳判断
- 不做图表,表格够用

为什么这样写

对账这件事的难点从来不是算术,是匹配:POS 单号和支付平台单号不是一套编号,金额相同的单遍地都是,时间还差几分钟(支付成功到回传有延迟)。所以匹配规则要写成「单号优先、金额加时间兜底」两级——单号能对上的绝不猜,对不上的才进入容差匹配,且容差可调。不同门店的收银系统回传延迟不一样,写死一个数必然出错。

四类差异分表而不是一锅列,是因为每类的下一步完全不同:「系统有平台无」多半是支付未成功但小票出了,要找顾客;「平台有系统无」可能是收银员漏扫或私收,性质最重;「金额不符」常是部分退款;「退款不平」是流程尾巴。混在一起,出纳每天还要先分拣一遍——分表就是替她把分拣做掉。

「不写 localStorage」和断网可用是同一枚硬币的两面:对账流水包含每笔交易的时间和金额,属于敏感经营数据;工具要断网可用(后仓老电脑),又不能把数据留在浏览器里过夜。对完即弃看起来不方便,其实和纸质对账单的习惯一致——当天的差异当天处理,不留尾巴,工具不该替用户养成坏习惯。

「不猜差异原因」这条禁令是给编码代理画的。不拦着,做出来的工具会兴致勃勃地给每条差异标「疑似漏扫」「疑似网络延迟」——标签一错,出纳就顺着错误标签查下去;工具只负责把事实摆整齐,判断是人的活。

变量

变量 说明
时间容差 兜底匹配允许的分钟差——按你门店收银系统到支付平台的回传延迟调,默认 5 分钟,常出现配错就收紧

对账移动支付单文件工具