d1f3f4e93d
- payment_orders 建表迁移,支持多 provider(stripe) - Stripe Checkout Session 创建、Webhook 验签、到账 - 支付成功自动为 API Key 增加额度 - payment.enabled 开关,关闭时不影响旧 Comfy Checkout
40 lines
1.5 KiB
SQL
40 lines
1.5 KiB
SQL
CREATE TABLE IF NOT EXISTS payment_orders (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
public_id TEXT NOT NULL,
|
|
user_id INTEGER NOT NULL,
|
|
recharge_record_id INTEGER,
|
|
provider TEXT NOT NULL,
|
|
payment_method TEXT NOT NULL DEFAULT 'stripe',
|
|
provider_session_id TEXT,
|
|
provider_payment_id TEXT,
|
|
amount_usd REAL NOT NULL,
|
|
amount_minor INTEGER NOT NULL,
|
|
currency TEXT NOT NULL DEFAULT 'usd',
|
|
status TEXT NOT NULL DEFAULT 'pending',
|
|
checkout_url TEXT,
|
|
success_url TEXT,
|
|
cancel_url TEXT,
|
|
note TEXT,
|
|
metadata TEXT,
|
|
created_at TEXT DEFAULT (datetime('now')),
|
|
updated_at TEXT DEFAULT (datetime('now')),
|
|
paid_at TEXT,
|
|
completed_at TEXT,
|
|
expires_at TEXT,
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
FOREIGN KEY (recharge_record_id) REFERENCES user_recharge_records(id) ON DELETE SET NULL
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS payment_orders_public_id_unique
|
|
ON payment_orders (public_id);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS payment_orders_provider_session_unique
|
|
ON payment_orders (provider, provider_session_id)
|
|
WHERE provider_session_id IS NOT NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS payment_orders_user_created_idx
|
|
ON payment_orders (user_id, created_at DESC);
|
|
|
|
CREATE INDEX IF NOT EXISTS payment_orders_status_idx
|
|
ON payment_orders (status);
|