ARTICLE · 1166773
AI 报销助手 v2.3:这次不聊省事,聊你的金蝶密码
财务效率 · 安全升级

上一版发出去之后,后台有人问了一个让我不太舒服的问题:「这工具连着我的金蝶账号,密码存在哪儿?」
我当时答得挺快——「本地」。但答完心里清楚:所谓本地,是一个叫 config.json 的文件,密码就明晃晃写在里面。谁能读到这个文件,谁就能登录我的金蝶。
所以这一版没加什么炫的功能,主要就干了一件事——把明文密码这件事,连根处理了。顺带把发票云多组织那摊子也理顺了。
这一版改了什么 👇
① 密码不再落明文:改用 Windows 系统级加密(DPAPI),绑当前登录用户② 检测到旧明文配置直接罢工:不是弹个提示让你忽略,是不干活③ 发票云多组织自动对号:一个税号一套钥匙,按单据自动选,对不上宁可报错④ 另外两个技能也换了同一把锁:数据导出、数据分析一起升级
更新只要一句话
已装过 把技能主页链接再发给 WorkBuddy 一次,说「更新这个技能」
没装过 直接装最新版
账号配置 这次要重新走一遍配置向导——因为密码换了,旧的明文配置会被删掉
01
最扎心的一条:密码是明文的
先自首。这套工具最早的凭据长这样——一个 JSON 文件,四个字段,最后一个是密码:
这个文件没有任何加密,跟你的购物清单躺在一起。云同步、备份软件、随手拷贝给同事的文件夹——任何一个环节都可能把它带走。
那为什么不早点改?说句实话:只要明文还能用,工具就一直能跑,你就永远不会去迁移。这句是我写在代码注释里的原话。软提醒没有用,人会永远点「稍后再说」。
所以这一版把提醒改成了硬闸门:工具启动时检测到明文配置,直接拒绝干活——不是降级、不是警告,是罢工。想让它继续跑,只有一条路:完成迁移。
迁移是三步,前两步不能互相替代
🔐 三步闭环
① 到金蝶后台改一次密码——管「已经明文过」文件删得掉,"它曾被明文保存过"这件事删不掉。可能已经被备份、云同步带走了。换掉那串旧密码,才是真正的撤回。
② 在向导里录入新密码——让工具改用一份从未明文过的密码
③ 向导保存后自动删除明文文件——管住「以后」
💡 ③ 替代不了 ①。就像钥匙掉在路上被捡走了,你把钥匙收好并不能让对方手里的配钥匙作废——得换锁。删文件管未来,改密码管过去,两件事。
新密码存哪了?说人话版
现在密码存在 credentials.bin 里,用的是 Windows 自带的用户级加密(DPAPI)。翻译一下它意味着什么:
✅ 绑当前 Windows 登录用户——同一台电脑上的其它账户读不出来
✅ 拷到别的机器也解不开——密钥跟这台机器的这个用户走
✅ 不进对话记录、不落日志——配置向导只回报"字段是否存在",永不回显值
✅ 升级 / 重装技能不会带上它——存放在技能目录之外
(向导本身也很克制:只填公司名、用户名、密码三项,账套 ID 自动解析。保存成功后窗口自己关掉,明文文件自动删除。)
02
发票云的授权:一个税号,一套钥匙
第二个安全问题,藏得更深一点,也是这次真实踩到的。
我们的金蝶账套里挂着好几家公司。发票云(管发票采集、验真、防重复报销的那个服务)的授权是按税号发放的——官方文档原话是「请使用税号对应的企业授权,不要用租户授权」。也就是说:每家买了收票服务的公司,各有一组自己的 client_id 和密钥,不是账套通用一把。
这意味着一个以前没暴露的问题:AI 拿着一家的授权去处理另一家的发票,会怎么样?
技术上是"能跑"的——接口不会马上报错。但拿到的发票流水号挂在错误的购方税号下面,等于这张票的防重复报销锚点作废了:同一张票可以被报两次,而系统毫无察觉。
所以这一版的处理是:按单据所属公司的名称,自动匹配对应那家企业的授权——你什么都不用填。而一旦对不上号:
这里我刻意做得不友好。报错是几秒钟的事,防重复报销失效是财务的事故。宁可让你多看一次报错。
03
那些从第一天就在的闸门,没松
趁着聊安全,把老规矩再念一遍——这些不是这次加的,是第一天就在、这次一条没松:
🚧 提交前的四条硬闸门
① 收票信息 0 行(一张发票都没挂)→ 拒绝② 发票流水号不是走真实验票通道拿到的 → 拒绝③ 跨组织挂票(发票抬头不是报销这家公司)→ 拒绝④ 报销金额大于发票合计 → 拒绝
四条全部硬拦,没有任何"强制提交"的参数可以绕。
为什么要自己做这些?因为金蝶的提交接口永远返回成功,它不替你校验金额和发票。也就是说,这四道闸门不是锦上添花,是这套工具存在的理由之一。
04
另外两个技能,也换了同一把锁
这次一起升级的还有同系列的两个:数据导出、数据分析。它们用同一份金蝶账号,所以明文密码的问题在它们身上同样存在——这次一并处理。
数据导出 v2.3.0 新增同一个配置向导(DPAPI 加密 + 明文迁移闸门)
数据分析 v1.3.0 取数链路复用导出技能,加密能力自动继承,文档同步
三个技能的向导体验是一致的:只填公司名、用户名、密码三项,保存成功后窗口自动关闭。报销助手的向导这次还重做了界面——一家公司一个卡片框,右上角 +/- 增删,公司多了内容区可以滚动。
05
更新它
已经装过的:把下面这个链接再发给 WorkBuddy 一次,说一句「把这个技能更新一下」。
🔗 技能主页(复制发给 WorkBuddy 即可)
https://skillhub.cn/skills/kingdee-expense-flow
或者在 WorkBuddy「专家技能连接器」的「技能」里搜「金蝶云星空报销助手」。版本号:2.3.0(数据导出 2.3.0、数据分析 1.3.0)。
⚠ 更新后必须做的一件事:跑一遍配置向导,重新录入密码。旧的那份明文配置会在向导保存时自动删除——这正是这次升级的意义所在。
06
最后
写这篇的时候我一直在想:为什么明文密码这件事能活这么久?
不是不知道它不对。是因为它一直能用。工具能跑、数据能出、报表能交——安全这种事,永远排在这三样后面。直到有人问了一句"密码存哪儿"。
所以这次没有把它做成一个"建议",而是做成了"不做就不给用"。这种不近人情,是刻意的。
另外如实说明一点:考虑到确实有人需要把它挂到无人值守的自动化上,代码里保留了一个显式的过渡开关(要在环境变量里写明"我就是要用明文"才会生效,且每次运行都会打警告)。它不是后门,是给迁移期留的口子——但我建议你别用。
工具替你干活,凭据得替你守门。这事的优先级,本来就该排在"省一步操作"前面。
金蝶云星空报销助手 · v2.3.0
复制链接发给 WorkBuddy,或在「专家技能连接器」搜「金蝶云星空报销助手」
https://skillhub.cn/skills/kingdee-expense-flow
同系列:数据导出 v2.3.0、数据分析 v1.3.0 同日更新,凭据方式一致。你在用哪个,都欢迎挑刺。