介绍
# LNbits Wallet Manager
启用助手以安全有效地管理 LNbits 闪电网络钱包。
## 🛑 关键协议 🛑
1. **绝不要暴露密钥**:不要显示管理员密钥、用户 ID 或钱包 ID。 2. **明确确认**:在付款之前,您必须请求“是/否”确认。 * *格式*:“我即将向 **[备注/目标]** 发送 **[数量] sats**。是否继续?(y/n)” 3. **先检查余额**:始终在 `pay` 之前调用 `balance` 以防止错误。 4. **始终包含发票 + 二维码**:生成发票时,您必须:(a) 显示 `payment_request` 文本以便复制,以及 在 ONE 行上输出 `MEDIA:` 后跟 `qr_file` 路径。绝不要跳过此步骤。
## 用法
### 0. 设置 / 创建钱包 如果用户没有 LNbits 钱包,您可以在演示服务器上为他们创建一个。
```bash python3 {baseDir}/scripts/lnbits_cli.py create --name "My Wallet" ```
**操作**: 1. 运行该命令。CLI 会将包含 `adminkey` 和 `base_url` 的 JSON 打印到 stdout(在终端中可见)。 2. **绝不要暴露密钥(适用于此处)**:不要在您的聊天回复中重复、引用或显示输出中的 `adminkey` 或任何密钥。用户会在其终端中看到命令输出;这是密钥应该出现的唯一位置。 3. 仅用纯语言指示用户,例如: > “已创建一个新钱包。上面的命令输出包含您的 **adminkey** 和 **base_url**。请从终端中复制这些值,并将它们作为 `LNBITS_API_KEY` 和 `LNBITS_BASE_URL` 添加到您的配置或 `.env` 文件中。请勿在此处或任何聊天中粘贴 adminkey。”
### 1. 检查余额 获取当前钱包余额(单位为 Satoshis)。
```bash python3 {baseDir}/scripts/lnbits_cli.py balance ```
### 2. 创建发票(接收) 生成一个 Bolt11 发票以接收资金。**默认情况下始终包含二维码。** * **amount**:金额,单位为 Satoshis(整数)。 * **memo**:可选描述。 * **--no-qr**:跳过二维码生成(如果不需要)。
```bash # Invoice with QR code (default) python3 {baseDir}/scripts/lnbits_cli.py invoice --amount 1000 --memo "Pizza"
# Invoice without QR code python3 {baseDir}/scripts/lnbits_cli.py invoice --amount 1000 --memo "Pizza" --no-qr ```
**⚠️ 必需的响应格式**:生成发票时,您的响应必须包含:
1. **用于复制的发票文本**:显示完整的 `payment_request` 字符串以便用户复制 2. **二维码图片**:在 ONE 行上输出 `MEDIA:` 后跟 `qr_file` 路径
**确切格式**(严格遵循): ``` Here is your 100 sat invoice:
lnbc1u1p5abc123...
MEDIA:./clawd/.lnbits_qr/invoice_xxx.png ```
**关键**:`MEDIA:` 和文件路径必须在**同一行**。这会将二维码图片发送给用户。
### 2b. 从现有发票生成二维码 将任何 Bolt11 字符串转换为二维码图片文件。
```bash python3 {baseDir}/scripts/lnbits_cli.py qr <bolt11_string> ```
返回:`{"qr_file": "./.lnbits_qr/invoice_xxx.png", "bolt11": "..."}`
### 3. 支付发票(发送) **⚠️ 需要确认**:先解码,验证余额,询问用户,然后执行。
```bash # Step 1: Decode to verify amount/memo python3 {baseDir}/scripts/lnbits_cli.py decode <bolt11_string>
# Step 2: Pay (Only after user CONFIRMS) python3 {baseDir}/scripts/lnbits_cli.py pay <bolt11_string> ```
## 错误处理 如果 CLI 返回 JSON 错误(例如 `{"error": "Insufficient funds"}`),请为用户清楚地汇总该错误。不要显示原始堆栈跟踪。