Skip to main content

Extore Logo

兑所 · Extore

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

CI PyPI version Python 3.12+ Native WebMCP MIT License

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


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

一个实例可以管理多个独立店铺。平台管理员管理店铺、注册与邮件服务,店主管理自己的商品、队列、配置和附件;商品管理链接继续只授权指定商品。已有单店数据迁移到默认店铺。

能做什么

能力 说明
商品与规格 多商品、SKU 档位、价格与属性;卡密绑定商品和规格。支持私有商品、快速模板、中英文参数名称与 Markdown 教程。
卡密管理 使用密码学安全随机数生成卡密,批量发行、复制与下载;按商品、规格、批次和状态跟踪库存与生命周期。原卡密只在发行时显示。
独立商品队列 每个商品独立领取、筛选和批处理任务,显示真实步骤、处理消息与商品内排位。人或获授权的 AI 使用同一套接口。
灵活交付 链接、文本、账户信息或文件,也可只返回服务状态。支持一次领取、重复查看、失败重试、退回补充、附原因的拒绝,以及顾客主动销毁内容。
权限与认证 平台管理员使用多个 Passkey;店主可用邮箱密码、可选 TOTP 或多个 Passkey 登录。注册默认关闭,由平台管理员邀请店主。商品链接默认 1 次浏览器登录与 1 个 CLI 绑定,支持委派和会话审计。
自动化与二次开发 开源预设处理器、店铺加密配置档案、代码定义输入输出与步骤、Python SDK、签名事件与回调;原生定义 49 个 WebMCP 工具,按页面、身份与权限动态提供。
命令行操作 manage 管理商品授权,customer 兑换与领取,admin 用固定账号的设备管理本店或平台;默认精简输出,凭证保存到私密文件,提供可复制 AI 提示词。
界面与存储 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,之后关闭这套首次密码登录;店主账号使用独立的邮箱密码和可选 TOTP,也可添加多个 Passkey。平台管理员先配置 SMTP,再邀请店主,详见多店与账号。

首次登录、认证恢复与运行边界
  • Passkey 需要 HTTPS 或 localhost;部署前确定固定域名。平台管理员首次密码会话只能注册 Passkey,不能管理商品。
  • 平台管理员丢失全部 Passkey 时,在服务器执行 uv run extore reset-auth 恢复首次密码登录;店主使用邮件重置自己的密码,开启 TOTP 时还须提供第二因素或恢复码。两者均保留业务数据。详见认证恢复。
  • API 与 worker 共享数据目录和配置,一个数据库只运行一个 worker。数据目录、数据库、issuance.key 和 master-secrets.key 都要妥善保护和备份。详见生产运行。
  • 领取链接是凭证。一次领取会消耗查看机会;销毁不能撤回已下载的副本、外部内容或历史备份。未知、超时或崩溃的交付默认等待核实,下游须用稳定任务 ID 去重。详见自动处理与领取。

命令行与 AI 接入

完整 CLI 要求 0.6.0 及以上;也可在该版本源码目录用 uv run extore … 执行。安装与完整操作见 CLI 指南。

# 单商品授权:登录时隐藏输入完整管理链接
extore manage login
extore manage queues --all

# 顾客:卡密从私密文件标准输入读取
extore customer exchange --origin https://extore.example.com --codes-stdin < /path/to/private-codes.txt

# 店主:首次在浏览器用真实 Passkey 批准此设备
extore admin login --origin https://extore.example.com

# 已有邮箱账号的店主:隐藏输入密码及已开启的第二因素
extore admin login --origin https://extore.example.com --email owner@example.com

商品授权可以在客户端聚合查看,每次写入仍使用一个独立授权。店主设备授权最多 30 天,8 小时会话由本机私钥续签;后续 JSON 写操作另用一次性设备签名。列表默认摘要,任务详情和教程按需读取,制卡与新授权链接保存为 0600 文件。

SMTP 凭据、TOTP 密钥与店铺处理器配置加密保存,接口只返回配置状态和修订元数据。付款适配尚未启用,供应商平台仍待确定;现有预设只交付链接或文本,不代表已完成真实付款。

网页可复制带 5 分钟 CLI 绑定票据的商品机器人接入提示词;文档里的提示词也可直接复制,配合已授权的 CLI 使用。上传只保存材料,提交或交付需明确执行下一步;持续运行机器人由接入方安排。

文档

文档 内容
快速入门与运行指南 本地运行、管理权限、认证恢复、生产配置、Docker 与 Arch Linux 部署
接口与事件协议 商品、SKU、卡密、队列、附件、完整事件定义与签名回调
CLI 指南 商品完整管理、卡密、授权、队列与私密输出
顾客 CLI · 店主 CLI 批量兑换、材料与交付;Passkey 设备批准和全店操作
多店与账号 平台与店主边界、邮箱邀请、TOTP、SMTP、加密处理器配置与存储额度
可复制 AI 提示词 商品处理、店主运营与顾客领取的操作模板
原生 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.6.1

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.6.1
File Size Uploaded
extore-0.6.1.tar.gz 706.4 kB Details

Built distribution (wheel)

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

Total release size: 1.0 MB

Release files / extore-0.6.1.tar.gz

Download URL extore-0.6.1.tar.gz
Size 706.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d825c91c4f891d9e5bea46bef989e28ebf231fdf1e678acf4f2a5883aa92dafe
BLAKE2b-256 checksum
How to use checksums
51fb23b769acdc1a4969b4b08b2531192c898a127e27dfcefd17ba8b974fe9d7
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.6.1-py3-none-any.whl

Download URL extore-0.6.1-py3-none-any.whl
Size 328.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b865ed637a211713cb2183c3b2d08e970f24633465599d5bfdcdc87a3e494b1
BLAKE2b-256 checksum
How to use checksums
661c85ee99ce6dd34272a9b22b207e9f66e8d71fd55ee0de641969c0b64c1b99
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

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.5.0

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