batch-print-paylisted
Install: claude install-skill Mao-jh/batch-print
# 通用批量打印文件(一次付费 7 天不限次)
一整个文件夹的材料,按顺序一次提交给打印机,并留下凭证。
本 Skill 分两段:**先免费出清单**(只读,一张都不打),**再取授权真提交**(在你本机完成)。
> **为什么需要授权**:批量打印需要一份由服务方签发的凭证。
> 授权**在你本机离线校验**(不联网即可验证真伪与有效期),
> 但**没有有效授权就不提交打印**——这是服务的一部分,不是限制。
---
## 第 0 步 · 免费出清单(scan / printers,只读,绝不打印)
```bash
python scripts/batchprint.py scan 材料文件夹
python scripts/batchprint.py printers
```
清单会告诉你:**要打哪些文件、多少个、什么类型、多大**,以及本机有几台打印机、默认是哪台。
超出安全阀(默认 50)的部分会明确标出来,**不会被提交**。
⚠️ **打印是不可撤销的动作**。务必先把清单给用户过一眼,确认没有多打/错打的文件。
---
## 第 1 步 · 请求授权(未付费会返回 402)
```
POST https://skills-gate.airpriv.com/api/batch-print-license
Content-Type: application/json
{"machine_fp":"<本机指纹串,8–128 位字母数字/连字符,可省略>"}
```
**首次调用一定拿到 `402 Payment Required`** —— 这是设计,不是错误。响应里带:
- HTTP 头 `Payment-Needed`(base64url 编码的账单)
- 响应体 `payment_needed` / `payment_needed_token` / `amount` / `out_trade_no`
> `machine_fp` 可选:带上则这份授权**绑定这台机器**,换机器需重新授权。省略则不绑定。
> 本机指纹:`python scripts/license_check.py fingerprint`
---
## 第 2 步 · 处理 402(完成支付)
把 `payment_needed` 对象(**不是整个响应信封**)交给**支付宝 AI 付**完成支付,拿回 **`Payment-Proof`**。
**不要自己伪造** —— 服务端会拿它去支付宝网关做真实校验。
---
## 第 3 步 · 携凭证重试(拿到授权凭证)
同一请求加上头 `Payment-Proof: <凭证>` 重发,成功返回 `200`,
`content.data.license` = 授权凭证(存成 `license.json`)。
**一次付费 = 一份授权 = 7 天有效**,期间反复打**不需要再付费**。
---
## 第 4 步 · 校验授权并执行提交(离线)
```bash
python scripts/license_check.py check license.json --fingerprint "<与第 1 步相同的值>"
echo $? # 0 = 放行;非 0 = 拒绝,不要执行
```
退出码:`0` 通过 · `4` 签名不通过 · `5` 已过期 · `6` 产品不匹配 · `7` 指纹不匹配 · `2` 路径问题。
**退出码 `0` 才允许执行**: