feat: Implement user account center with authentication, subscription management, and cryptocurrency payment integration.

This commit is contained in:
2569718930@qq.com
2026-03-16 20:30:46 +08:00
parent 6a229a592b
commit 609fc8914a
6 changed files with 448 additions and 80 deletions
+17
View File
@@ -261,6 +261,10 @@ class WalletVerifyRequest(BaseModel):
signature: str = Field(..., min_length=20)
class WalletUnbindRequest(BaseModel):
address: str = Field(..., min_length=8)
class CreatePaymentIntentRequest(BaseModel):
plan_code: str = Field(default="pro_monthly", min_length=2)
payment_mode: str = Field(default="strict")
@@ -1226,6 +1230,19 @@ async def payment_wallets(request: Request):
raise HTTPException(status_code=exc.status_code, detail=exc.detail) from exc
@app.delete("/api/payments/wallets")
async def payment_wallet_unbind(request: Request, body: WalletUnbindRequest):
_assert_entitlement(request)
identity = _require_supabase_identity(request)
try:
return PAYMENT_CHECKOUT.unbind_wallet(
user_id=identity["user_id"],
address=body.address,
)
except PaymentCheckoutError as exc:
raise HTTPException(status_code=exc.status_code, detail=exc.detail) from exc
@app.post("/api/payments/wallets/challenge")
async def payment_wallet_challenge(request: Request, body: WalletChallengeRequest):
_assert_entitlement(request)