feat(payment): Stripe Checkout payment module
- payment_orders 建表迁移,支持多 provider(stripe) - Stripe Checkout Session 创建、Webhook 验签、到账 - 支付成功自动为 API Key 增加额度 - payment.enabled 开关,关闭时不影响旧 Comfy Checkout
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
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);
|
||||
Reference in New Issue
Block a user