Skip to main content

Extore Logo

兑所 · Extore

一个商家的卡密兑换与交付网站。
输入卡密,填写信息,领取商品或查看服务结果。

CI PyPI version Python 3.12+ Native WebMCP MIT License

在线站点 · 使用文档 · 问题反馈 · 赞助项目


Extore 接手支付之后的兑换与交付:验证卡密,将顾客带到对应商品,收集必要信息,再交给商品队列、官方处理器或外部服务。支付与支付订单管理留在上游平台,两边通过制卡接口、Webhook 和签名回调通信。

能做什么

能力 说明
商品与规格 多商品、SKU 档位、价格与属性;卡密绑定商品和规格。支持私有商品、快速模板、中英文参数名称与 Markdown 教程。
卡密管理 使用密码学安全随机数生成卡密,批量发行、复制与下载;按商品、规格、批次和状态跟踪库存与生命周期。原卡密只在发行时显示。
独立商品队列 每个商品独立领取、筛选和批处理任务,显示真实步骤、处理消息与商品内排位。人或获授权的 AI 使用同一套接口。
灵活交付 链接、文本、账户信息或文件,也可只返回服务状态。支持一次领取、重复查看、失败重试、退回补充、附原因的拒绝,以及顾客主动销毁内容。
权限与认证 商家后台支持多个 Passkey。商品管理链接默认支持 1 次浏览器登录和 1 个 CLI 设备绑定,按权限授权、向下委派,并记录设备、会话与操作审计。
自动化与二次开发 官方开源预设处理器、Python SDK、签名事件与回调;原生定义 49 个 WebMCP 工具,按页面、身份与权限动态提供。
命令行管理 extore manage 绑定设备,处理任务与附件;可在客户端聚合多个商品队列,每个授权范围保持独立。支持复制机器人接入提示词。
界面与存储 SQLite 持久化任务、事件和投递重试;撕纸与分段虚线界面,灰黑暗色主题、中英文语言,默认跟随系统与浏览器。

顾客上传的是兑换材料,管理者上传的是交付文件。官方处理器来自审核后固定版本的开源子模块,商家在预设中选择并填写配置。浏览器 AI 需要原生 WebMCP 支持及实际授权,具体兼容性见工具文档。

兑换流程

卡密 → 对应商品与规格 → 填写参数 / 上传材料 → 处理任务 → 领取内容 / 查看结果
  1. 商家创建商品,配置输入、输出、处理方式和查看规则,按规格发行卡密。
  2. 顾客输入有效卡密。非公开商品在验证成功后才显示。
  3. 提交参数后创建唯一任务,重复提交返回同一个任务。
  4. 队列管理者、官方处理器或外部平台完成任务,顾客通过领取链接查看进度和结果。

队列商品可修改未来任务的输入输出,已有任务保留各自的结构快照。自动商品发行卡密后锁定处理器和输入输出结构。SKU 价格用于商品定义,上游平台负责实际定价、收款和销售库存。

快速运行

从 PyPI 安装后,可直接使用 extore 命令:

uv tool install extore
export EXTORE_DATA="$HOME/.local/share/extore"
extore init
extore serve

另开一个终端,设置相同的 EXTORE_DATA 后运行 extore worker。extore --help 查看全部命令,extore --version 查看版本。生产环境还须配置 EXTORE_ORIGIN 并提供 HTTPS,见运行指南。

也可以从源码运行:

需要 Python 3.12+、uv 和 Linux。完整环境、部署和备份说明见运行指南。

git clone --recurse-submodules https://github.com/TokenNotIncluded/extore.git
cd extore
uv sync --frozen
uv run extore init
uv run extore serve

另开一个终端,在项目目录启动 worker,处理自动发货和 Webhook 投递:

uv run extore worker

打开 http://localhost:8000。在 2.5 秒内点击左上角 Logo 5 次,或直接访问 /admin。首次使用初始化密码注册 Passkey,注册成功后密码登录立即禁用;后续可添加多个 Passkey。

首次登录、认证恢复与运行边界
  • Passkey 需要 HTTPS 或 localhost;部署前确定固定域名。首次密码会话只能注册 Passkey,不能管理商品。
  • 丢失全部 Passkey 时,须在服务器终端执行 uv run python -m extore.cli reset-auth。它撤销全部 Passkey、登录会话及 CLI 设备授权,保留商品、卡密与任务;商品管理链接须另行撤销。详见认证恢复。
  • API 与 worker 共享数据目录和配置,一个数据库只运行一个 worker。数据目录、数据库和 issuance.key 都要妥善保护和备份。详见生产运行。
  • 领取链接是凭证。一次领取会消耗查看机会;销毁不能撤回已下载的副本、外部内容或历史备份。未知、超时或崩溃的交付默认等待核实,下游须用稳定任务 ID 去重。详见自动处理与领取。

命令行处理商品队列

安装后执行 extore manage login,在隐藏输入中粘贴完整商品管理链接;也可用 --link-stdin 从标准输入接收。客户端保存设备密钥,8 小时会话到期后通过设备签名续签,直到授权过期或撤销。商家可复制一段机器人接入提示词,其中的 CLI 专用票据有效 5 分钟,用于首次绑定。

extore manage products
extore manage queues --all
extore manage jobs --product PRODUCT_ID

多个商品来自各自独立授权,聚合发生在客户端,任何写操作仍明确选择单个商品。完整命令与权限说明见CLI 文档。CLI 提供管理操作,运行持续处理机器人由接入方安排。

文档

文档 内容
快速入门与运行指南 本地运行、管理权限、认证恢复、生产配置、Docker 与 Arch Linux 部署
接口与事件协议 商品、SKU、卡密、队列、附件、完整事件定义与签名回调
远程管理 CLI 私密登录、设备续签、多商品队列、任务审核与文件操作
原生 WebMCP 49 个工具、浏览器支持、权限范围与确认要求
Python SDK 官方处理器协议、任务结果、外部验签与回调示例
验收记录 已记录的验证结果、对接边界与限制
产品定义 · 设计说明 项目范围、交互和视觉原则

服务运行后,/docs 提供交互式 OpenAPI 文档。事件与回调协议版本为 v1。

贡献

欢迎通过 Issues 提交可复现的问题或功能建议,也欢迎提交 Pull Request。修改前请阅读产品定义与设计说明,保持单商家范围、商品权限隔离和既有视觉语言。

常用检查如下;完整检查项以 CI 工作流为准:

uv run ruff check extore scripts tests
uv run ruff format --check extore scripts tests
uv run pytest -q
node --test tests/*.test.cjs

Pull Request 请说明行为变化和验证结果。官方预设处理器在独立仓库维护,主项目通过子模块固定版本。反馈或示例中请删除卡密、管理链接、领取凭证、密钥和顾客资料。

赞助

如果 Extore 帮到了你,可以通过 donate.lmm.best 支持项目维护。

Extore 项目累计赞助

许可证

Extore 使用 MIT License。官方处理器子模块的许可见其仓库。

Metadata

Release files for extore 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for extore 0.5.0
File Size Uploaded
extore-0.5.0.tar.gz 484.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for extore 0.5.0
File Interpreter ABI Platform
extore-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 702.8 kB

Release files / extore-0.5.0.tar.gz

Download URL extore-0.5.0.tar.gz
Size 484.2 kB
Tags Source
SHA-256 checksum
How to use checksums
775b0276976550d1bdf0b0585f115d1412b9fc03917d005ff9796b2587c886af
BLAKE2b-256 checksum
How to use checksums
c63fe78c15f86d73ff73aa4f127a5b2daee70b5356b341870f936e2e9a6507b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Omarchy","version":"4.0.4","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / extore-0.5.0-py3-none-any.whl

Download URL extore-0.5.0-py3-none-any.whl
Size 218.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7eb49ca53541397da3f3e305416db8247a459b9376d9604458759ab385b7070e
BLAKE2b-256 checksum
How to use checksums
a6f3fc8f2528b96c9a4b1ac608c6f9a006f98db4dd6e5882f6aa0812786905be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Omarchy","version":"4.0.4","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.9.1

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

This release

0.5.0 This release

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page