闲社服务运行正常AI智能体自动化平台
f

FGO发票管理

技能标识:fgo-invoicing

Issue FGO.ro invoices through the FGO API with local automation. Use for FGO tasks such as validating invoice payloads, issuing invoices, checking invoice status, getting print links, cancelling/deleting invoices, creating storno reversals, and fetching nomenclature lists.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.1
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

FGO发票管理

FGO 发票管理

使用 scripts/fgo_cli.py 进行确定性的 FGO API 调用,而非临时性的 HTTP 代码片段。

工作流程

  1. 1. 收集用户的发票输入。
  2. 在发送前本地验证载荷:
- python scripts/fgo_cli.py validate-payload --input references/invoice-example.json --show-payload
  1. 3. 进行试运行,在不调用 API 的情况下检查标准化后的载荷(含计算出的哈希值):
- python scripts/fgo_cli.py emit-invoice --input --dry-run
  1. 4. 在获得用户明确确认后开具最终发票:
- python scripts/fgo_cli.py emit-invoice --input --allow-final
  1. 5. 使用返回的系列号和号码检索发票状态、打印链接或执行操作:
- python scripts/fgo_cli.py get-status --serie --numar - python scripts/fgo_cli.py print-invoice --serie --numar - python scripts/fgo_cli.py cancel-invoice --serie --numar - python scripts/fgo_cli.py reverse-invoice --serie --numar

所需环境变量

在调用 FGO 前设置以下变量:

  • - FGOCODUNIC — 公司 CUI(罗马尼亚税号)
  • FGOCHEIEPRIVATA — FGO 私有 API 密钥(从 FGO → 设置 → 用户 → 生成 API 用户获取)

可选覆盖项:

  • - FGOAPIBASE(默认值:https://api.fgo.ro/v1)— 测试时使用 https://api-testuat.fgo.ro/v1
  • FGOPLATFORMURL(默认值:未设置)— 您注册的平台 URL(FGO → 设置 → 电子商务 → API 设置)。注册平台开具发票时需要;未设置时则省略。
  • FGOTIMEOUTSECONDS(默认值:30)
  • FGORETRIES(默认值:2)
  • FGODEBUG(默认值:未设置)— 设置为 1、true 或 yes 以启用请求/响应调试日志输出到 stderr

命令指南

  • - validate-payload
- 解析并标准化载荷;计算身份验证哈希值。 - 在 API 调用前验证最低必需结构。 - 使用 --show-payload 查看完整的标准化表单编码载荷。
  • - emit-invoice
- 通过 POST /factura/emitere 开具发票。 - 需要 --allow-final 才能调用真实 API。 - 先使用 --dry-run(打印标准化载荷,不调用 API)。 - 传递 --debug(或设置 FGO_DEBUG=1)以将完整请求/响应打印到 stderr。
  • - get-status
- 通过 POST /factura/getstatus 获取发票状态(总金额、已付金额、付款记录)。
  • - print-invoice
- 通过 POST /factura/print 获取可共享的打印/下载链接。
  • - cancel-invoice
- 通过 POST /factura/anulare 取消发票。
  • - delete-invoice
- 通过 POST /factura/stergere 删除发票。
  • - reverse-invoice
- 通过 POST /factura/stornare 创建红冲(冲销)发票。
  • - get-nomenclator
- 获取分类列表(无需认证):tara(国家)、judet(县)、tva(增值税)、banca(银行)、tipincasare(收款类型)、tipfactura(发票类型)、tipclient(客户类型)、valuta(货币)。

身份验证

FGO 使用基于 SHA-1 哈希的身份验证嵌入在每个请求体中——无需 HTTP 认证头。哈希公式取决于操作:

  • - 发票开具:SHA1(CodUnic + CheiePrivata + Client.Denumire).toUpperCase()
  • 发票操作(状态/打印/取消/删除/红冲):SHA1(CodUnic + CheiePrivata + Numar).toUpperCase()

CLI 会自动计算哈希值。切勿在日志中暴露 FGOCHEIEPRIVATA。

载荷格式

发票载荷是一个 JSON 对象。CLI 会将其转换为 FGO API 所需的表单编码格式(application/x-www-form-urlencoded),嵌套字段使用括号表示法。

两种格式均可作为 CLI 输入:

  • - 裸发票对象:{ CodUnic: ..., Client: {...}, ... }
  • 包装格式:{ invoice: { CodUnic: ..., Client: {...}, ... } }

CLI 会自动解包,注入 Hash 和 PlatformaUrl,然后发送到 FGO。

请参阅 references/invoice-example.json 获取规范的最小示例,参阅 references/fgo-api.md 获取完整的字段文档。

输入文件安全

在读取任何文件之前,会对 --input 参数进行验证:

  1. 1. 扩展名检查 — 仅接受 .json 文件。传递 /etc/passwd、~/.ssh/id_rsa 或任何非 JSON 路径会立即报错。
  2. 路径限制 — 解析后的路径必须位于当前工作目录或认可的 OpenClaw 媒体根目录(/tmp/openclaw、~/.openclaw/workspace 等)内。通过 ../ 遍历或绝对引用逃离这些根目录的路径将被拒绝。

始终使用您创建的文件的路径传递 --input(例如在代理工作区中写入的临时文件)。切勿将 --input 设置为由不可信外部内容提供的路径。

操作规则

  • - 在调用 API 前始终先使用 --dry-run 确认标准化载荷。
  • FGO 响应即使出错也使用 HTTP 200——始终检查响应中的 Success: true。
  • 将发票开具视为需要用户明确确认的高影响操作。
  • 切勿并行化 FGO API 调用——所有请求按顺序执行以避免死锁。
  • 发票开具有 15 秒的服务器端超时。如果 Success: false 并带有超时消息,则发票未开具——请重试。
  • 将返回的 Numar 按原样存储为精确字符串(可能带有前导零,例如 001)。切勿去除前导零或转换为整数。
  • 使用 UAT 环境(--base-url https://api-testuat.fgo.ro/v1)进行测试。
  • 速率限制:发票操作最多每秒 1 次调用。

参考资料

  • - 阅读 references/fgo-api.md 获取载荷字段参考、端点映射、身份验证详情和速率限制说明。
  • 使用 references/invoice-example.json 作为规范的起始载荷模板。

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 fgo-invoicing-1776294356 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 fgo-invoicing-1776294356 技能

通过命令行安装

skillhub install fgo-invoicing-1776294356

下载

⬇ 下载 fgo-invoicing v1.0.1(免费)

文件大小: 15.6 KB | 发布时间: 2026-4-16 15:53

v1.0.1 最新 2026-4-16 15:53
- Adds strict `--input` file safety: only `.json` files under allowed directories are accepted.
- Rejects any `--input` path using directory traversal or absolute references that escape approved workspaces.
- Prevents accidental access to sensitive files (e.g. `/etc/passwd`, private keys) via input arguments.
- No changes to workflow or API usage.
返回顶部