店票通-发票服务
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-6o2dm7lj--dpt-invoice-service-professor.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-6o2dm7lj/dpt-invoice-service-professor。店票通-发票服务,你的发票专家助手
阅读全文 (展开查看完整说明)
概述
店票通发票工具
脚本直连 MCP 服务端,不需要在 WorkBuddy 里配置 MCP 连接器。鉴权只有 Mcp-Key 一个头(没有 Authorization / token)。
运行环境:任意 Python 3.9+ 解释器,零第三方依赖(只用标准库),无需 pip / venv,不产生 __pycache__。跨平台:macOS / Windows / 安卓 / iOS 通用;私有状态目录自动探测(见下),不依赖 shell 展开 ~;stdout 强制 UTF-8,非 UTF-8 代码页(英文 Windows)也不会因中文输出报错。
<dpt> = python3 ~/.workbuddy/skills/dpt-invoice-service-professor__skillhub/scripts/dianpiaotong.py(若路径不存在,则以本机 ~/.workbuddy/skills/ 下含 scripts/dianpiaotong.py 的那个为准)
命令
| 目的 | 命令 |
|---|---|
| 查票 | <dpt> call query --orderId <订单号> |
| 开票 | <dpt> call apply --orderId <订单号>(自动查 pcguid)/<dpt> call apply --pcguid <pcguid> |
| 红冲(可批量) | <dpt> call negative --orderId A001,A002 |
| 换抬头 | <dpt> call reissue --orderId <订单号> --buyerName <名称> [--buyerTaxNum <税号>] |
| 配 APIKEY | <dpt> set-apikey <完整凭证> |
| 看状态 | <dpt> status(不联网;会打印状态目录与实际落盘路径) |
| 工具清单 | <dpt> tools(离线) |
| 退出 | <dpt> logout |
状态文件放哪(跨平台)
mcp_session / login_session.json / tax_login.json 三个私有状态文件默认落在状态目录下。状态目录按顺序探测,取第一个可写的:DIANPIAOTONG_STATE_DIR(或 config.env 的 STATE_DIR)→ $XDG_STATE_HOME/dianpiaotong → ~/.dianpiaotong(macOS / Windows / iOS 沙箱)→ 系统临时目录。需要固定位置(多端共享、沙箱 HOME 不可写)就设 DIANPIAOTONG_STATE_DIR 为绝对路径。排障先看 <dpt> status 的 state_dir。
正常流程(三步)
call ...→ 成功直接结束。- 返回
need_login: true(退出码 3)→ 原样渲染user_message(内含《打开店票通页面-税局登陆》链接),不要改写文案。 - 立刻跑
<dpt> wait-login(退出码 4 = 还在等用户;加--timeout-seconds 0只查一次)。
acked 后脚本自动重跑第 1 步那条命令并一起输出结果,用户无需再回复。
等待超时 / 被中断怎么办:wait-login 轮询到时限(或被 Ctrl-C、外壳超时打断)会返回user_input_kind: "login_timeout"(退出码 4),此时:
- 原样回复
user_message(固定为「店票通后台税局登录等待超时,我先中断任务,待您完成税局登录后可以回复我继续处理。」),不要改写; - 随即中断任务,不要再自己重试
wait-login、不要换命令绕过去; - 本地登录态还在(没被清),用户说「继续」时跑
<dpt> wait-login即可接着等,acked 后照样自动续跑原任务。
规则(硬)
- 输出
missing_apikey(退出码 5)→ 原样回复user_message并停止,不要换命令重试。 - 输出
need_login→ 原样回复user_message,然后自己跑wait-login,不要等用户确认。 - 输出
login_timeout→ 原样回复user_message并中断任务,等用户主动回复「继续」;不要自动重试。 - 只渲染
user_message里的链接;不贴裸地址,不回传request_id/session_proof/ 后端原始响应。 - 开票 / 红冲 / 换抬头属高风险动作:提交前先复述订单与动作并要用户确认。
- 改地址 / 密钥 / 接口路径 / 超时 / 重试 / 未登录关键词 → 改
config.env,不要改脚本。
退出码
0 成功 · 1 错误 · 2 用法错误 · 3 需税局登录(输出带登录链接)· 5 未配置 APIKEY· 4 登录未完成(仍在等待)/ 等待超时或被中断(输出 user_message,Agent 渲染后中断任务)
详情(按需加载)
- 工具参数、返回、错误码:
references/mcp-tools.md - 登录协议(PKCE)、
config.env字段、后端实现位置、排查:references/config-and-troubleshooting.md