# 批量购买套餐脚本功能总结

## 功能说明

新增 Python 运维脚本 `scripts/batch_package_purchase/batch_purchase.py`，用于读取单列 CSV，并逐资产调用后台 `POST /api/admin/orders` 接口购买同一个套餐。

## 输入与配置

- CSV 每行一个 ICCID 或虚拟号，首行表头可选。
- `--base-url` 配置接口地址。
- `--package-id` 指定本批次统一购买的套餐 ID。
- 认证支持已有 Access Token，或使用后台账号自动登录获取 Token。
- 支付方式固定为 `wallet`。

## 安全控制

- 默认仅预演，显式增加 `--execute` 后才会真实下单。
- 下单前统一校验 CSV，重复资产会阻断整批执行。
- 每个资产独立调用一次接口，结果逐条刷新到 CSV。
- POST 请求不自动重试，避免响应丢失造成重复购买。
- Token 和密码支持环境变量传入，不写入结果文件。

## 输出

结果 CSV 包含：

- CSV 原始行号和资产标识。
- 成功或失败状态。
- HTTP 状态码和业务错误码。
- 接口消息。
- 成功订单的订单 ID、订单号和订单金额。

脚本执行结束时，成功数量与输入总数一致则退出码为 `0`；存在失败或中途因认证失效停止时退出码为 `2`；参数、CSV 或登录错误时退出码为 `1`。
