现行流程要求商户在 Telegram 群里敲 /match 发送人 金额 时间,
字段多、格式严,一个字符不对就"Transaction not found",高峰期尤其折磨。
HH:MM,名字要完整大写,多一个空格就命中不了。商户的唯一动作:把顾客发来的 receipt 图片扔进 Telegram 群,顺手打个顾客的短名(可选)。 系统自己识别、自己匹配、自己确认。实在无法判断时,列 Top-5 候选让商户按一个数字就完事。
收款方(receiver)、金额(amount)、时间(time)—— 这三个在 receipt 上 100% 能看到。 用这三个缩小范围,再用商户打的 短名 做进一步辨别。根据候选数量的不同,有 4 种匹配场景:
同收款方 + 同金额 + 同时间,只有这 1 张待匹配单。不用看短名,直接对上。
有 2-3 张同时同金额,但商户打的 "Ali" 只匹配其中一个付款人全名 MUHAMMAD ALI BAKAR → 命中。
"Ali" 同时命中两个付款人 —— 系统分不清,列 Top-5 让商户按按钮选。
商户只丢了图没打短名 —— 同样按时间近远排 Top-5,按按钮选。
候选池已经用 收款方 + 金额 + 时间 ±5 分钟 过滤干净,评分只是在这些候选里再排优先级。 短名命中给 30 分上限,时间越接近给 10 分上限,合计 40 分。
| 排名 | 付款人全名 | 时间 | 短名分 | 时间分 | 总分 |
|---|---|---|---|---|---|
| 1️⃣ | MUHAMMAD ALI BAKAR | 14:28 | +10 | +6 | 16 |
| 2️⃣ | ALI HAMID BIN YUSOF | 14:25 | +10 | +0 | 10 |
| 3️⃣ | (未知付款人) | 14:30 | +0 | +10 | 10 |
| 4️⃣ | SITI NUR ALIYA | 14:31 | +0 | +8 | 8 |
| 5️⃣ | AHMAD HISHAM | 14:32 | +0 | +6 | 6 |
下图展示一笔钱从进入平台银行到商户上分的完整路径 —— 商户只出现在 ③ 和 ⑦ 两步,其余都由系统自动完成。
以 场景 B(候选多条、需要商户按按钮)为例,完整展示 Telegram 群里 bot 的每一条消息、按钮、回复。 所有步骤都在同一条消息里滚动更新,不会把群洗乱。
下面 4 张是真实测试样本,涵盖 OCBC、POSB、Trust Bank、PayNow 等 4 种不同银行的 receipt 版式。 系统自动从每张图里抽出 收款方 / 金额 / 时间,绿色代表命中,红色代表没抓到(极少数情况)。
※ 测试样本覆盖 OCBC、POSB、DBS、UOB、Trust Bank、MariBank、PayNow 等多家银行的 receipt 版式。 极少数漏抓金额的情况不会造成误匹配 —— 系统会自动走人工按钮路径,由商户确认后再入账。
不会一次性切换。每一期都有明确的"通过标准",上一期稳定才会推下一期。
/match
命令降级为兜底。界面、文档、培训全面切换到丢图匹配模式。