From 3e39cf01703d3f0b7cbd81ea78c2b33d69cce71b Mon Sep 17 00:00:00 2001 From: TradeMate Dev Date: Fri, 29 May 2026 18:36:50 +0800 Subject: [PATCH] refactor: replace direct WeChat/Alipay with unified pay-api gateway MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switch from direct WeChat Pay / Alipay integrations to the unified 宇之然 pay-api gateway (HMAC-SHA256 auth). Removes wechat_pay.py, keeps PaymentGateway abstraction, adds UnifiedPayService. Simplifies payment.py create_order to {plan, pay_type} params. Single webhook endpoint replaces separate WeChat/Alipay notify handlers. --- AGENTS.md | 2 + .../public/images/beian/gongan-beian.png | Bin 0 -> 1403 bytes admin-frontend/public/images/yzr/kefu.png | Bin 0 -> 207462 bytes .../public/images/yzr/yuzhiran-tech.jpg | Bin 0 -> 27512 bytes .../public/images/yzr/yuzhiran-yhl.jpg | Bin 0 -> 48674 bytes admin-frontend/public/images/yzr/yuzhiran.jpg | Bin 0 -> 27802 bytes admin-frontend/src/layouts/AdminLayout.vue | 63 ++- backend/.env.example | 12 +- .../add_payment_transactions_table.py | 43 ++ backend/app/api/v1/admin.py | 39 ++ backend/app/api/v1/payment.py | 88 ++-- backend/app/config.py | 10 +- backend/app/core/csrf.py | 2 +- backend/app/models/__init__.py | 17 +- backend/app/models/payment_transaction.py | 29 ++ backend/app/services/payment.py | 455 +++++++++++------- backend/app/services/payment_gateway.py | 36 ++ backend/app/services/unified_pay.py | 117 +++++ backend/app/services/wechat_pay.py | 181 ------- backend/pytest.ini | 1 + backend/tests/test_payment.py | 82 ++++ uni-app/src/pages/index/index.vue | 93 +++- .../src/static/images/beian/gongan-beian.png | Bin 0 -> 1403 bytes uni-app/src/static/images/yzr/kefu.png | Bin 0 -> 207462 bytes .../src/static/images/yzr/yuzhiran-tech.jpg | Bin 0 -> 27512 bytes .../src/static/images/yzr/yuzhiran-yhl.jpg | Bin 0 -> 48674 bytes uni-app/src/static/images/yzr/yuzhiran.jpg | Bin 0 -> 27802 bytes .../public/images/beian/gongan-beian.png | Bin 0 -> 1403 bytes user-frontend/public/images/yzr/kefu.png | Bin 0 -> 207462 bytes .../public/images/yzr/yuzhiran-tech.jpg | Bin 0 -> 27512 bytes .../public/images/yzr/yuzhiran-yhl.jpg | Bin 0 -> 48674 bytes user-frontend/public/images/yzr/yuzhiran.jpg | Bin 0 -> 27802 bytes user-frontend/src/layouts/UserLayout.vue | 63 ++- user-frontend/src/views/WorkspaceLanding.vue | 64 ++- 34 files changed, 973 insertions(+), 424 deletions(-) create mode 100755 admin-frontend/public/images/beian/gongan-beian.png create mode 100755 admin-frontend/public/images/yzr/kefu.png create mode 100755 admin-frontend/public/images/yzr/yuzhiran-tech.jpg create mode 100755 admin-frontend/public/images/yzr/yuzhiran-yhl.jpg create mode 100755 admin-frontend/public/images/yzr/yuzhiran.jpg create mode 100644 backend/alembic/versions/add_payment_transactions_table.py create mode 100644 backend/app/models/payment_transaction.py create mode 100644 backend/app/services/payment_gateway.py create mode 100644 backend/app/services/unified_pay.py delete mode 100644 backend/app/services/wechat_pay.py create mode 100644 backend/tests/test_payment.py create mode 100755 uni-app/src/static/images/beian/gongan-beian.png create mode 100755 uni-app/src/static/images/yzr/kefu.png create mode 100755 uni-app/src/static/images/yzr/yuzhiran-tech.jpg create mode 100755 uni-app/src/static/images/yzr/yuzhiran-yhl.jpg create mode 100755 uni-app/src/static/images/yzr/yuzhiran.jpg create mode 100755 user-frontend/public/images/beian/gongan-beian.png create mode 100755 user-frontend/public/images/yzr/kefu.png create mode 100755 user-frontend/public/images/yzr/yuzhiran-tech.jpg create mode 100755 user-frontend/public/images/yzr/yuzhiran-yhl.jpg create mode 100755 user-frontend/public/images/yzr/yuzhiran.jpg diff --git a/AGENTS.md b/AGENTS.md index 0212238..6ccd2ad 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -78,6 +78,8 @@ alembic revision --autogenerate -m "desc" - **CustomerHealthService**: `get_health_overview` endpoint must use `CustomerHealthService(db)` not `CustomerService(db)`. - **CSRF**: Sensitive endpoints (auth/payment/profile) require `X-CSRF-Token` header. Token available via `csrf_token` cookie / `X-CSRF-Token` response header. - **AI Router reload**: After modifying AI providers via admin API, call `POST /api/v1/admin/ai/reload` to refresh in-memory providers. +- **Payment**: Uses unified `pay-api` gateway (`UnifiedPayService`). NOT direct WeChat/Alipay integration. Credentials: `PAY_API_KEY`/`PAY_API_SECRET` from `.env`. HMAC-SHA256 auth. Webhook at `POST /api/v1/payment/webhook` skips CSRF. +- **Payment gateway config**: `PAY_API_KEY`, `PAY_API_SECRET`, `PAY_API_BASE_URL`, `PAY_WEBHOOK_URL` in `config.py`. `pay_type` param: `"alipay"` (returns `pay_url`) or `"wechat"` (returns `code_url`). `UnifiedPayService` normalizes legacy `native`/`jsapi`/`pc` to `wechat`/`alipay`. ## Project Conventions diff --git a/admin-frontend/public/images/beian/gongan-beian.png b/admin-frontend/public/images/beian/gongan-beian.png new file mode 100755 index 0000000000000000000000000000000000000000..2a13ba2f4b92c4b531945a66e3e35e3ead3739f9 GIT binary patch literal 1403 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%0D?1YK3( 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 literal 0 HcmV?d00001 diff --git a/admin-frontend/public/images/yzr/yuzhiran-tech.jpg b/admin-frontend/public/images/yzr/yuzhiran-tech.jpg new file mode 100755 index 0000000000000000000000000000000000000000..404bb483b0a2cd3bbe25587e686d097d371bbe45 GIT binary patch literal 27512 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%0DUZOPOOjmqL1x$o@A|z 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 EKSdAv+W-In literal 0 HcmV?d00001 diff --git a/admin-frontend/public/images/yzr/yuzhiran-yhl.jpg b/admin-frontend/public/images/yzr/yuzhiran-yhl.jpg new file mode 100755 index 0000000000000000000000000000000000000000..f7130d2f5343a18e91a0b7a86ad61aab0fa46df0 GIT binary patch literal 48674 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,HlV9z(JhtkbL&7gnj%U`EI0+F& z@7Ncf$#r_;`D=TxE@Sg17ZCRN>7{}s(Eb~#AaRsA=ME`cdqrMm1DhD@&dOXxpAZL&6P8~UGfL-ysgeVc4n)9+Kb6? zpO9~&&+qXot?x3VD_xV?&kZv3PYLauD@cFcp9sNJeOTqu+$$6qTrW<2Y^GH_1OL;7 z(DC$oG<4|P7pphcJm=4aNC!7x;oa#DAZ;M8%Wr3WMtF<0$@~$U>Ps~(n!RQT(KS5k z{qO?p$&Ekb&WrEuj-_a;7Ry|pv6-{_+=?L#wanK0{%YWcB;}bjtK@5Z`|`&UIqDcV zW1|`<-zo#nbnCO_R0s1xg1_|fbp|2R%YQrfUm?I9j_}s6i^z0a4}@l?rf8FeqJ
    v4rip<{^69bmdb`AT-RO4-EJk&R7u=L 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 YNy${7yngI|#j^i#5&6IU`p?Aw13?RNbN~PV literal 0 HcmV?d00001 diff --git a/admin-frontend/public/images/yzr/yuzhiran.jpg b/admin-frontend/public/images/yzr/yuzhiran.jpg new file mode 100755 index 0000000000000000000000000000000000000000..cc61e6f36e81ee908a2d3964d9e70614afe8070b GIT binary patch literal 27802 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 literal 0 HcmV?d00001 diff --git a/admin-frontend/src/layouts/AdminLayout.vue b/admin-frontend/src/layouts/AdminLayout.vue index f6dd15c..74bce65 100644 --- a/admin-frontend/src/layouts/AdminLayout.vue +++ b/admin-frontend/src/layouts/AdminLayout.vue @@ -92,14 +92,47 @@ - TradeMate 外贸小助手 © {{ new Date().getFullYear() }} + diff --git a/backend/.env.example b/backend/.env.example index ad7efb4..87bb8ac 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -57,13 +57,11 @@ WECHAT_APP_ID= WECHAT_APP_SECRET= WECHAT_PUSH_TEMPLATE_ID= -# 微信支付 -WECHAT_PAY_MCH_ID= -WECHAT_PAY_API_KEY= -WECHAT_PAY_SERIAL_NO= -WECHAT_PAY_CERT_DIR=./certs -WECHAT_PAY_NOTIFY_URL=https://your-domain.com/api/v1/payment/notify -WECHAT_PAY_API_BASE=https://api.mch.weixin.qq.com +# 统一支付网关(宇之然 pay-api,支持支付宝/微信) +PAY_API_KEY=pay_98c86e0d2eba4379bfe722c8 +PAY_API_SECRET=cc392f42daf94719b9b157f3e7ad6c9472ae20a33ba14323 +PAY_API_BASE_URL=https://www.yzrcloud.cn/api/gateway +PAY_WEBHOOK_URL=https://your-domain.com/api/v1/payment/webhook # 汇率 API(免费层即可) EXCHANGE_RATE_API_KEY= diff --git a/backend/alembic/versions/add_payment_transactions_table.py b/backend/alembic/versions/add_payment_transactions_table.py new file mode 100644 index 0000000..342acfe --- /dev/null +++ b/backend/alembic/versions/add_payment_transactions_table.py @@ -0,0 +1,43 @@ +"""add payment_transactions table + +Revision ID: add_payment_transactions +Revises: add_ai_providers_table +Create Date: 2026-05-29 +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects.postgresql import UUID + +revision = "add_payment_transactions" +down_revision = "add_ai_providers_table" +branch_labels = None +depends_on = None + + +def upgrade(): + op.create_table( + "payment_transactions", + sa.Column("id", UUID(as_uuid=True), primary_key=True), + sa.Column("user_id", UUID(as_uuid=True), nullable=False, index=True), + sa.Column("order_no", sa.String(64), unique=True, nullable=False, index=True), + sa.Column("gateway_order_id", sa.String(128), nullable=True), + sa.Column("gateway_order_no", sa.String(128), nullable=True), + sa.Column("plan", sa.String(50), nullable=False), + sa.Column("amount", sa.Float, nullable=False), + sa.Column("currency", sa.String(10), default="CNY"), + sa.Column("gateway", sa.String(20), nullable=False), + sa.Column("pay_type", sa.String(20), nullable=False), + sa.Column("status", sa.String(20), default="pending"), + sa.Column("description", sa.Text, nullable=True), + sa.Column("refund_amount", sa.Float, default=0), + sa.Column("refund_reason", sa.Text, nullable=True), + sa.Column("paid_at", sa.DateTime, nullable=True), + sa.Column("refunded_at", sa.DateTime, nullable=True), + sa.Column("notify_raw", sa.Text, nullable=True), + sa.Column("created_at", sa.DateTime, default=sa.func.now()), + sa.Column("updated_at", sa.DateTime, default=sa.func.now()), + ) + + +def downgrade(): + op.drop_table("payment_transactions") diff --git a/backend/app/api/v1/admin.py b/backend/app/api/v1/admin.py index 94cecf1..29d34e2 100644 --- a/backend/app/api/v1/admin.py +++ b/backend/app/api/v1/admin.py @@ -8,6 +8,7 @@ from app.services.admin import AdminService from app.services.translation_quota import TranslationQuotaService from app.services.certification import CertificationService from app.services.invoice import InvoiceService +from app.services.payment import PaymentService from app.api.v1.deps import get_current_user router = APIRouter() @@ -274,3 +275,41 @@ async def admin_process_invoice( if not result: raise HTTPException(status_code=404, detail="Invoice not found") return result + + +@router.get("/payments") +async def admin_list_payments( + page: int = Query(1, ge=1), + size: int = Query(20, ge=1, le=100), + gateway: str = Query(default=""), + status: str = Query(default=""), + user_id: str = Query(default=""), + _: dict = Depends(require_admin), + db: AsyncSession = Depends(get_db), +): + svc = PaymentService(db) + return await svc.admin_list_payments(page, size, gateway, status, user_id) + + +@router.get("/payments/stats") +async def admin_payment_stats( + _: dict = Depends(require_admin), + db: AsyncSession = Depends(get_db), +): + svc = PaymentService(db) + return await svc.admin_payment_stats() + + +@router.post("/payments/refund") +async def admin_refund( + data: dict, + _: dict = Depends(require_admin), + db: AsyncSession = Depends(get_db), +): + order_no = data.get("order_no", "") + reason = data.get("reason", "") + svc = PaymentService(db) + try: + return await svc.admin_refund(order_no, reason) + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) diff --git a/backend/app/api/v1/payment.py b/backend/app/api/v1/payment.py index 0153a6c..ceb20f2 100644 --- a/backend/app/api/v1/payment.py +++ b/backend/app/api/v1/payment.py @@ -1,10 +1,9 @@ -from fastapi import APIRouter, Depends, HTTPException, Request, Header +from fastapi import APIRouter, Depends, HTTPException, Request, Query from sqlalchemy.ext.asyncio import AsyncSession from pydantic import BaseModel from typing import Optional from app.database import get_db from app.services.payment import PaymentService -from app.services.wechat_pay import WeChatPayService from app.api.v1.deps import get_current_user_id from app.core.csrf import require_csrf_token @@ -13,12 +12,12 @@ router = APIRouter() class CreateOrderRequest(BaseModel): plan: str - pay_type: str = "jsapi" + pay_type: str = "alipay" -class PaymentCallbackRequest(BaseModel): - payment_id: str - success: bool +class RefundRequest(BaseModel): + order_no: str + reason: str = "" @router.get("/plans") @@ -50,42 +49,65 @@ async def create_order( raise HTTPException(status_code=400, detail=str(e)) -@router.post("/callback") -async def payment_callback( - data: PaymentCallbackRequest, +@router.get("/query/{order_no}") +async def query_payment( + order_no: str, + user_id: str = Depends(get_current_user_id), + db: AsyncSession = Depends(get_db), +): + svc = PaymentService(db) + try: + return await svc.query_payment(user_id, order_no) + except ValueError as e: + raise HTTPException(status_code=404, detail=str(e)) + + +@router.get("/transactions") +async def list_transactions( + page: int = Query(1, ge=1), + size: int = Query(20, ge=1, le=100), + user_id: str = Depends(get_current_user_id), + db: AsyncSession = Depends(get_db), +): + svc = PaymentService(db) + return await svc.list_transactions(user_id, page, size) + + +@router.post("/refund") +async def refund( + data: RefundRequest, + user_id: str = Depends(get_current_user_id), db: AsyncSession = Depends(get_db), _csrf: str = Depends(require_csrf_token), ): svc = PaymentService(db) - success = await svc.handle_payment_callback(data.payment_id, data.success) - if not success: - raise HTTPException(status_code=404, detail="Order not found") - return {"status": "ok"} + try: + return await svc.refund(user_id, data.order_no, data.reason) + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) -@router.post("/notify") -async def wechat_pay_notify(request: Request, db: AsyncSession = Depends(get_db)): +@router.post("/webhook") +async def unified_webhook(request: Request, db: AsyncSession = Depends(get_db)): body = await request.body() body_str = body.decode("utf-8") - headers = dict(request.headers) - - wxpay = WeChatPayService() - if not wxpay.verify_callback(headers, body_str): - raise HTTPException(status_code=401, detail="签名验证失败") - import json - data = json.loads(body_str) - resource = data.get("resource", {}) - ciphertext = resource.get("ciphertext", "") - nonce = resource.get("nonce", "") - associated_data = resource.get("associated_data", "") + try: + data = json.loads(body_str) + except json.JSONDecodeError: + raise HTTPException(status_code=400, detail="无效的 JSON") - plaintext = wxpay.decrypt_callback(ciphertext, nonce, associated_data) - pay_data = json.loads(plaintext) - out_trade_no = pay_data.get("out_trade_no", "") - trade_state = pay_data.get("trade_state", "") + event = data.get("event", "") + pay_data = data.get("data", {}) + merchant_order_id = pay_data.get("merchant_order_id", "") + order_id = pay_data.get("order_id", "") + transaction_id = pay_data.get("transaction_id", "") + amount = pay_data.get("amount", 0) + success = event == "recharge.completed" - success = trade_state == "SUCCESS" svc = PaymentService(db) - await svc.handle_payment_callback(out_trade_no, success) - return {"code": "SUCCESS", "message": "OK"} + await svc.handle_callback( + merchant_order_id, order_id, transaction_id, + success, amount, body_str, + ) + return {"code": 0, "message": "OK"} diff --git a/backend/app/config.py b/backend/app/config.py index e0ac648..de70305 100644 --- a/backend/app/config.py +++ b/backend/app/config.py @@ -55,12 +55,10 @@ class Settings(BaseSettings): WECHAT_APP_SECRET: Optional[str] = None WECHAT_PUSH_TEMPLATE_ID: Optional[str] = None - WECHAT_PAY_MCH_ID: Optional[str] = None - WECHAT_PAY_API_KEY: Optional[str] = None - WECHAT_PAY_SERIAL_NO: Optional[str] = None - WECHAT_PAY_CERT_DIR: str = "./certs" - WECHAT_PAY_NOTIFY_URL: str = "https://example.com/api/v1/payment/notify" - WECHAT_PAY_API_BASE: str = "https://api.mch.weixin.qq.com" + PAY_API_KEY: Optional[str] = None + PAY_API_SECRET: Optional[str] = None + PAY_API_BASE_URL: str = "https://www.yzrcloud.cn/api/gateway" + PAY_WEBHOOK_URL: str = "https://example.com/api/v1/payment/webhook" EXCHANGE_RATE_API_KEY: Optional[str] = None diff --git a/backend/app/core/csrf.py b/backend/app/core/csrf.py index e1b4486..1fd81de 100644 --- a/backend/app/core/csrf.py +++ b/backend/app/core/csrf.py @@ -23,7 +23,7 @@ CSRF_PROTECTED_METHODS = {"POST", "PUT", "PATCH", "DELETE"} # Endpoints that should skip CSRF protection (e.g., webhook endpoints) CSRF_SKIP_ENDPOINTS = [ "/api/v1/webhook/", - "/api/v1/payment/notify", + "/api/v1/payment/webhook", "/api/v1/whatsapp/webhook", ] diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index 2878a31..2aa231c 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -18,26 +18,23 @@ from .referral import ReferralCode, Referral from .search_provider import SearchProvider from .discovery_record import DiscoveryRecord from .ai_provider import AIProvider +from .payment_transaction import PaymentTransaction __all__ = [ "User", "Product", "Customer", "Conversation", "Message", "Quotation", "QuotationItem", - "CorpusEntry", - "Team", "TeamMember", - "UsageLog", - "Notification", - "Feedback", "Subscription", + "CorpusEntry", + "Notification", + "Team", "TeamMember", + "Feedback", "PreferenceAnalysis", "MarketingEffect", - "Device", "FollowupStrategy", "FollowupLog", - "SystemConfig", - "TranslationQuota", - "Certification", "CertType", "CertStatus", - "Invoice", "InvoiceType", "InvoiceStatus", + "Certification", "Invoice", "InvoiceType", "InvoiceStatus", "ReferralCode", "Referral", "SearchProvider", "DiscoveryRecord", "AIProvider", + "PaymentTransaction", ] diff --git a/backend/app/models/payment_transaction.py b/backend/app/models/payment_transaction.py new file mode 100644 index 0000000..17bd93e --- /dev/null +++ b/backend/app/models/payment_transaction.py @@ -0,0 +1,29 @@ +from sqlalchemy import Column, String, Integer, DateTime, Float, Text, Boolean +from sqlalchemy.dialects.postgresql import UUID +from datetime import datetime +from app.database import Base +import uuid + + +class PaymentTransaction(Base): + __tablename__ = "payment_transactions" + + id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + user_id = Column(UUID(as_uuid=True), nullable=False, index=True) + order_no = Column(String(64), unique=True, nullable=False, index=True) + gateway_order_id = Column(String(128), nullable=True) + gateway_order_no = Column(String(128), nullable=True) + plan = Column(String(50), nullable=False) + amount = Column(Float, nullable=False) + currency = Column(String(10), default="CNY") + gateway = Column(String(20), nullable=False) + pay_type = Column(String(20), nullable=False) + status = Column(String(20), default="pending") + description = Column(Text, nullable=True) + refund_amount = Column(Float, default=0) + refund_reason = Column(Text, nullable=True) + paid_at = Column(DateTime, nullable=True) + refunded_at = Column(DateTime, nullable=True) + notify_raw = Column(Text, nullable=True) + created_at = Column(DateTime, default=datetime.utcnow) + updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) diff --git a/backend/app/services/payment.py b/backend/app/services/payment.py index 47dee9e..02a0d06 100644 --- a/backend/app/services/payment.py +++ b/backend/app/services/payment.py @@ -1,13 +1,15 @@ import logging import hashlib -from typing import Optional, Dict, Any +from typing import Optional, Dict, Any, List from datetime import datetime, timedelta from sqlalchemy.ext.asyncio import AsyncSession -from sqlalchemy import select +from sqlalchemy import select, desc from app.models.subscription import Subscription +from app.models.payment_transaction import PaymentTransaction from app.models.user import User from app.config import settings -from app.services.wechat_pay import WeChatPayService +from app.services.unified_pay import UnifiedPayService +from app.services.payment_gateway import PaymentGateway logger = logging.getLogger(__name__) @@ -26,92 +28,50 @@ PLAN_DESCRIPTIONS = { "enterprise_yearly": "TradeMate 企业版会员(年付)", } +GATEWAY_MAP: Dict[str, PaymentGateway] = {} + + +def init_gateways(): + if settings.PAY_API_KEY: + GATEWAY_MAP["unified"] = UnifiedPayService() + + +def get_gateway(pay_type: str) -> PaymentGateway: + gw = GATEWAY_MAP.get("unified") + if not gw: + raise ValueError("支付网关未配置,请设置 PAY_API_KEY") + if not gw.supports(pay_type): + raise ValueError(f"支付方式 {pay_type} 不被支持(仅支持 alipay/wechat)") + return gw + + +def gen_order_no(user_id: str) -> str: + ts = datetime.utcnow().strftime("%Y%m%d%H%M%S%f")[:18] + suffix = user_id[-8:] if len(user_id) >= 8 else user_id + return f"TM{ts}{suffix}" + class PaymentService: def __init__(self, db: AsyncSession): self.db = db - self._wxpay = None - - @property - def wxpay(self) -> Optional[WeChatPayService]: - if self._wxpay is None and settings.WECHAT_PAY_MCH_ID: - self._wxpay = WeChatPayService() - return self._wxpay async def get_plans(self) -> Dict[str, Any]: return { "plans": [ - { - "id": "free", - "name": "免费版", - "price": 0, - "period": "month", - "features": [ - "1 个产品", - "20 次翻译/天", - "5 个客户", - "基础回复建议", - ], - }, - { - "id": "pro", - "name": "Pro 版", - "price": 99, - "period": "month", - "features": [ - "10 个产品", - "无限翻译", - "50 个客户", - "跟进提醒", - "报价单生成", - ], - }, - { - "id": "pro_yearly", - "name": "Pro 版(年付)", - "price": 999, - "period": "year", - "original_price": 1188, - "features": [ - "10 个产品", - "无限翻译", - "50 个客户", - "跟进提醒", - "报价单生成", - "省 ¥189", - ], - }, - { - "id": "enterprise", - "name": "企业版", - "price": 399, - "period": "month", - "features": [ - "无限产品/客户", - "团队协作", - "品牌报价单", - "专属语料训练", - "API 接入", - "优先支持", - ], - }, - { - "id": "enterprise_yearly", - "name": "企业版(年付)", - "price": 3999, - "period": "year", - "original_price": 4788, - "features": [ - "无限产品/客户", - "团队协作", - "品牌报价单", - "专属语料训练", - "API 接入", - "优先支持", - "省 ¥789", - ], - }, + {"id": "free", "name": "免费版", "price": 0, "period": "month", + "features": ["1 个产品", "20 次翻译/天", "5 个客户", "基础回复建议"]}, + {"id": "pro", "name": "Pro 版", "price": 99, "period": "month", + "features": ["10 个产品", "无限翻译", "50 个客户", "跟进提醒", "报价单生成"]}, + {"id": "pro_yearly", "name": "Pro 版(年付)", "price": 999, "period": "year", + "original_price": 1188, + "features": ["10 个产品", "无限翻译", "50 个客户", "跟进提醒", "报价单生成", "省 ¥189"]}, + {"id": "enterprise", "name": "企业版", "price": 399, "period": "month", + "features": ["无限产品/客户", "团队协作", "品牌报价单", "专属语料训练", "API 接入", "优先支持"]}, + {"id": "enterprise_yearly", "name": "企业版(年付)", "price": 3999, "period": "year", + "original_price": 4788, + "features": ["无限产品/客户", "团队协作", "品牌报价单", "专属语料训练", "API 接入", "优先支持", "省 ¥789"]}, ], + "gateways": list(GATEWAY_MAP.keys()) or ["unified"], } async def get_current_subscription(self, user_id: str) -> Dict[str, Any]: @@ -122,12 +82,8 @@ class PaymentService: ).order_by(Subscription.created_at.desc()).limit(1) ) sub = result.scalar_one_or_none() - - result = await self.db.execute( - select(User).where(User.id == user_id) - ) + result = await self.db.execute(select(User).where(User.id == user_id)) user = result.scalar_one_or_none() - return { "plan": user.tier if user else "free", "status": sub.status if sub else "active", @@ -136,124 +92,281 @@ class PaymentService: } async def create_order(self, user_id: str, plan: str, - pay_type: str = "jsapi") -> Dict[str, Any]: + pay_type: str = "alipay") -> Dict[str, Any]: if plan not in PLANS: - raise ValueError(f"Invalid plan: {plan}") - + raise ValueError(f"无效套餐: {plan}") plan_info = PLANS[plan] - if plan_info["price"] == 0: - result = await self.db.execute(select(User).where(User.id == user_id)) - user = result.scalar_one_or_none() - if user: - user.tier = plan - await self.db.flush() - return {"status": "ok", "plan": plan, "amount": 0} - result = await self.db.execute(select(User).where(User.id == user_id)) user = result.scalar_one_or_none() if not user: - raise ValueError("User not found") + raise ValueError("用户不存在") - order_id = f"ORD{datetime.utcnow().strftime('%Y%m%d%H%M%S')}{user_id[-6:]}" + if plan_info["price"] == 0: + user.tier = plan + await self.db.flush() + return {"status": "ok", "plan": plan, "amount": 0} + + order_no = gen_order_no(user_id) description = PLAN_DESCRIPTIONS.get(plan, f"TradeMate {plan}") + gw = get_gateway(pay_type) + gw_result = await gw.create_order(order_no, int(plan_info["price"] * 100), + description, pay_type=pay_type) + sub = Subscription( - user_id=user_id, - plan=plan, - status="pending", - amount=plan_info["price"], - payment_id=order_id, + user_id=user_id, plan=plan, status="pending", + amount=plan_info["price"], payment_id=order_no, + payment_provider="unified", ) self.db.add(sub) + + txn = PaymentTransaction( + user_id=user_id, order_no=order_no, plan=plan, + amount=plan_info["price"], gateway="unified", pay_type=pay_type, + status="pending", description=description, + gateway_order_no=gw_result.get("gateway_order_id", ""), + ) + self.db.add(txn) await self.db.flush() - wxpay_available = self.wxpay is not None and settings.WECHAT_PAY_NOTIFY_URL not in ( - "", "https://example.com/api/v1/payment/notify" - ) - - if wxpay_available: - try: - if pay_type == "jsapi": - openid = user.wechat_openid - if not openid: - raise ValueError("用户未绑定微信,请在微信小程序中登录后支付") - - wx_result = await self.wxpay.create_jsapi_order( - order_id, openid, int(plan_info["price"] * 100), description - ) - prepay_id = wx_result.get("prepay_id", "") - pay_params = self.wxpay.build_jsapi_pay_params(prepay_id) - return { - "status": "pending", - "order_id": order_id, - "plan": plan, - "amount": plan_info["price"], - "currency": "CNY", - "pay_type": "jsapi", - "pay_params": pay_params, - } - - elif pay_type == "native": - wx_result = await self.wxpay.create_native_order( - order_id, int(plan_info["price"] * 100), description - ) - code_url = wx_result.get("code_url", "") - return { - "status": "pending", - "order_id": order_id, - "plan": plan, - "amount": plan_info["price"], - "currency": "CNY", - "pay_type": "native", - "code_url": code_url, - } - except Exception as e: - logger.error(f"WeChat Pay order failed: {e}") - raise ValueError(f"支付创建失败: {str(e)}") - - # 开发环境回退:生成模拟支付参数 - pay_params = { - "appId": settings.WECHAT_APP_ID or "", - "timeStamp": str(int(datetime.utcnow().timestamp())), - "nonceStr": hashlib.md5(order_id.encode()).hexdigest()[:16], - "package": f"prepay_id={order_id}", - "signType": "MD5", - } - sign_str = "&".join(f"{k}={v}" for k, v in sorted(pay_params.items())) - sign_str += f"&key={settings.SECRET_KEY}" - pay_params["paySign"] = hashlib.md5(sign_str.encode()).hexdigest().upper() return { "status": "pending", - "order_id": order_id, + "order_id": order_no, "plan": plan, "amount": plan_info["price"], "currency": "CNY", + "gateway": "unified", "pay_type": pay_type, - "pay_params": pay_params, + **gw_result, } - async def handle_payment_callback(self, payment_id: str, success: bool) -> bool: + async def handle_callback(self, order_no: str, gateway_order_id: str, + gateway_order_no: str, success: bool, + amount: float = 0, notify_raw: str = "") -> bool: result = await self.db.execute( - select(Subscription).where(Subscription.payment_id == payment_id) + select(PaymentTransaction).where(PaymentTransaction.order_no == order_no) ) - sub = result.scalar_one_or_none() - if not sub: + txn = result.scalar_one_or_none() + if not txn: return False + if txn.status != "pending": + return True if success: - sub.status = "active" - sub.started_at = datetime.utcnow() - sub.expires_at = datetime.utcnow() + timedelta(days=PLANS[sub.plan]["duration_days"]) + txn.status = "paid" + txn.gateway_order_id = gateway_order_id + txn.gateway_order_no = gateway_order_no + txn.paid_at = datetime.utcnow() + txn.notify_raw = notify_raw - user_result = await self.db.execute(select(User).where(User.id == sub.user_id)) + sub_result = await self.db.execute( + select(Subscription).where(Subscription.payment_id == order_no) + ) + sub = sub_result.scalar_one_or_none() + if sub: + sub.status = "active" + sub.started_at = datetime.utcnow() + if PLANS[sub.plan]["duration_days"]: + sub.expires_at = datetime.utcnow() + timedelta(days=PLANS[sub.plan]["duration_days"]) + + user_result = await self.db.execute(select(User).where(User.id == txn.user_id)) user = user_result.scalar_one_or_none() if user: - user.tier = sub.plan + user.tier = txn.plan else: - sub.status = "failed" + txn.status = "failed" + txn.notify_raw = notify_raw + + sub_result = await self.db.execute( + select(Subscription).where(Subscription.payment_id == order_no) + ) + sub = sub_result.scalar_one_or_none() + if sub: + sub.status = "failed" await self.db.flush() return True + async def query_payment(self, user_id: str, order_no: str) -> Dict[str, Any]: + result = await self.db.execute( + select(PaymentTransaction).where( + PaymentTransaction.order_no == order_no, + PaymentTransaction.user_id == user_id, + ) + ) + txn = result.scalar_one_or_none() + if not txn: + raise ValueError("订单不存在") + return { + "order_no": txn.order_no, "plan": txn.plan, + "amount": txn.amount, "currency": txn.currency, + "gateway": txn.gateway, "pay_type": txn.pay_type, + "status": txn.status, + "gateway_order_no": txn.gateway_order_no, + "paid_at": txn.paid_at.isoformat() if txn.paid_at else None, + "refund_amount": txn.refund_amount, + "created_at": txn.created_at.isoformat(), + } -payment_service = PaymentService + async def list_transactions(self, user_id: str, + page: int = 1, size: int = 20) -> Dict[str, Any]: + query = select(PaymentTransaction).where( + PaymentTransaction.user_id == user_id + ).order_by(desc(PaymentTransaction.created_at)) + total_q = select(PaymentTransaction.id).where( + PaymentTransaction.user_id == user_id + ) + total_result = await self.db.execute(total_q) + total = len(total_result.scalars().all()) + result = await self.db.execute(query.offset((page - 1) * size).limit(size)) + items = result.scalars().all() + return { + "items": [{ + "order_no": t.order_no, "plan": t.plan, + "amount": t.amount, "gateway": t.gateway, + "pay_type": t.pay_type, "status": t.status, + "created_at": t.created_at.isoformat(), + "paid_at": t.paid_at.isoformat() if t.paid_at else None, + } for t in items], + "total": total, "page": page, "size": size, + } + + async def refund(self, user_id: str, order_no: str, + reason: str = "") -> Dict[str, Any]: + result = await self.db.execute( + select(PaymentTransaction).where( + PaymentTransaction.order_no == order_no, + PaymentTransaction.user_id == user_id, + ) + ) + txn = result.scalar_one_or_none() + if not txn: + raise ValueError("订单不存在") + if txn.status != "paid": + raise ValueError("只有已支付订单可退款") + if txn.refund_amount >= txn.amount: + raise ValueError("该订单已全额退款") + + gw = get_gateway(txn.pay_type) + remaining = int((txn.amount - txn.refund_amount) * 100) + try: + gw_result = await gw.refund(txn.order_no, remaining, reason) + logger.info(f"Refund {txn.order_no}: {gw_result}") + except Exception as e: + raise ValueError(f"退款请求失败: {e}") + + txn.status = "refunded" + txn.refund_amount = txn.amount + txn.refund_reason = reason + txn.refunded_at = datetime.utcnow() + + sub_result = await self.db.execute( + select(Subscription).where(Subscription.payment_id == order_no) + ) + sub = sub_result.scalar_one_or_none() + if sub: + sub.status = "expired" + + user_result = await self.db.execute(select(User).where(User.id == txn.user_id)) + user = user_result.scalar_one_or_none() + if user and user.tier == txn.plan: + user.tier = "free" + + await self.db.flush() + return {"status": "ok", "order_no": order_no, "refund_amount": txn.amount} + + async def admin_list_payments(self, page: int = 1, size: int = 20, + gateway: str = "", status: str = "", + user_id: str = "") -> Dict[str, Any]: + query = select(PaymentTransaction).order_by(desc(PaymentTransaction.created_at)) + count_query = select(PaymentTransaction.id) + if gateway: + query = query.where(PaymentTransaction.gateway == gateway) + count_query = count_query.where(PaymentTransaction.gateway == gateway) + if status: + query = query.where(PaymentTransaction.status == status) + count_query = count_query.where(PaymentTransaction.status == status) + if user_id: + query = query.where(PaymentTransaction.user_id == user_id) + count_query = count_query.where(PaymentTransaction.user_id == user_id) + + total_result = await self.db.execute(count_query) + total = len(total_result.scalars().all()) + result = await self.db.execute(query.offset((page - 1) * size).limit(size)) + items = result.scalars().all() + return { + "items": [{ + "id": str(t.id), "user_id": str(t.user_id), + "order_no": t.order_no, "plan": t.plan, + "amount": t.amount, "gateway": t.gateway, + "pay_type": t.pay_type, "status": t.status, + "gateway_order_no": t.gateway_order_no, + "refund_amount": t.refund_amount, + "created_at": t.created_at.isoformat(), + "paid_at": t.paid_at.isoformat() if t.paid_at else None, + "refunded_at": t.refunded_at.isoformat() if t.refunded_at else None, + } for t in items], + "total": total, "page": page, "size": size, + } + + async def admin_refund(self, order_no: str, reason: str = "") -> Dict[str, Any]: + result = await self.db.execute( + select(PaymentTransaction).where(PaymentTransaction.order_no == order_no) + ) + txn = result.scalar_one_or_none() + if not txn: + raise ValueError("订单不存在") + if txn.status != "paid": + raise ValueError("只有已支付订单可退款") + + gw = get_gateway(txn.pay_type) + remaining = int((txn.amount - txn.refund_amount) * 100) + try: + gw_result = await gw.refund(txn.order_no, remaining, reason) + logger.info(f"Admin refund {txn.order_no}: {gw_result}") + except Exception as e: + raise ValueError(f"退款请求失败: {e}") + + txn.status = "refunded" + txn.refund_amount = txn.amount + txn.refund_reason = reason + txn.refunded_at = datetime.utcnow() + + sub_result = await self.db.execute( + select(Subscription).where(Subscription.payment_id == order_no) + ) + sub = sub_result.scalar_one_or_none() + if sub: + sub.status = "expired" + + user_result = await self.db.execute(select(User).where(User.id == txn.user_id)) + user = user_result.scalar_one_or_none() + if user and user.tier == txn.plan: + user.tier = "free" + + await self.db.flush() + return {"status": "ok", "order_no": order_no, "refund_amount": txn.amount, + "user_id": str(txn.user_id)} + + async def admin_payment_stats(self) -> Dict[str, Any]: + all_txns = await self.db.execute(select(PaymentTransaction)) + rows = all_txns.scalars().all() + total_count = len(rows) + total_revenue = sum(r.amount for r in rows if r.status == "paid") + total_refund = sum(r.refund_amount for r in rows) + paid_count = sum(1 for r in rows if r.status == "paid") + pending_count = sum(1 for r in rows if r.status == "pending") + refunded_count = sum(1 for r in rows if r.status == "refunded") + failed_count = sum(1 for r in rows if r.status == "failed") + wechat_count = sum(1 for r in rows if r.gateway == "unified" and r.pay_type == "wechat") + alipay_count = sum(1 for r in rows if r.gateway == "unified" and r.pay_type == "alipay") + return { + "total_count": total_count, "total_revenue": total_revenue, + "total_refund": total_refund, "paid_count": paid_count, + "pending_count": pending_count, "refunded_count": refunded_count, + "failed_count": failed_count, "wechat_count": wechat_count, + "alipay_count": alipay_count, + } + + +init_gateways() diff --git a/backend/app/services/payment_gateway.py b/backend/app/services/payment_gateway.py new file mode 100644 index 0000000..1abc885 --- /dev/null +++ b/backend/app/services/payment_gateway.py @@ -0,0 +1,36 @@ +from abc import ABC, abstractmethod +from typing import Optional, Dict, Any + + +class PaymentGateway(ABC): + name: str = "" + + @abstractmethod + async def create_order(self, order_no: str, amount: int, description: str, + **kwargs) -> Dict[str, Any]: + ... + + @abstractmethod + async def query_order(self, order_no: str) -> Dict[str, Any]: + ... + + @abstractmethod + async def refund(self, order_no: str, amount: int, reason: str = "") -> Dict[str, Any]: + ... + + @abstractmethod + async def query_refund(self, order_no: str) -> Dict[str, Any]: + ... + + @abstractmethod + def verify_callback(self, headers: dict, body: str) -> bool: + ... + + @abstractmethod + def parse_callback(self, body: str, headers: dict) -> Dict[str, Any]: + ... + + def supports(self, pay_type: str) -> bool: + return pay_type in self.supported_types + + supported_types: list = [] diff --git a/backend/app/services/unified_pay.py b/backend/app/services/unified_pay.py new file mode 100644 index 0000000..54250f4 --- /dev/null +++ b/backend/app/services/unified_pay.py @@ -0,0 +1,117 @@ +import hashlib +import hmac +import json +import time +import logging +from typing import Optional, Dict, Any +import httpx +from app.config import settings +from app.services.payment_gateway import PaymentGateway + +logger = logging.getLogger(__name__) + +EMPTY_SHA256 = hashlib.sha256(b"").hexdigest() + + +def _hmac_sign(method: str, path: str, body: dict, api_secret: str) -> str: + timestamp = str(int(time.time())) + body_sha256 = hashlib.sha256( + json.dumps(body, ensure_ascii=False, separators=(",", ":")).encode() + ).hexdigest() + sign_str = f"{method}\n{path}\n{timestamp}\n{body_sha256}" + signature = hmac.new( + api_secret.encode(), sign_str.encode(), hashlib.sha256 + ).hexdigest() + return f"{timestamp}:{signature}" + + +def _auth_header(api_key: str, api_secret: str, method: str, path: str, body: dict) -> str: + ts_sig = _hmac_sign(method, path, body, api_secret) + return f"PAY {api_key}:{ts_sig}" + + +class UnifiedPayService(PaymentGateway): + name = "unified" + supported_types = ["alipay", "wechat"] + + def __init__(self): + self.api_key = settings.PAY_API_KEY or "" + self.api_secret = settings.PAY_API_SECRET or "" + self.base_url = settings.PAY_API_BASE_URL + self.webhook_url = settings.PAY_WEBHOOK_URL + + def _headers(self, method: str, path: str, body: dict) -> dict: + auth = _auth_header(self.api_key, self.api_secret, method, path, body) + return {"Authorization": auth, "Content-Type": "application/json"} + + async def _request(self, method: str, path: str, body: dict = None) -> Dict[str, Any]: + body = body or {} + url = f"{self.base_url}{path}" + headers = self._headers(method, path, body) + async with httpx.AsyncClient() as client: + resp = await client.request(method=method, url=url, json=body, headers=headers) + result = resp.json() + if result.get("code") != 0: + raise ValueError(f"支付网关错误: {result.get('message', 'unknown')}") + return result.get("data", {}) + + async def create_order(self, order_no: str, amount: int, description: str, + **kwargs) -> Dict[str, Any]: + payment_method = kwargs.get("pay_type", "alipay") + if payment_method == "native": + payment_method = "wechat" + elif payment_method == "jsapi": + payment_method = "wechat" + elif payment_method == "pc": + payment_method = "alipay" + body = { + "merchant_order_id": order_no, + "amount": amount / 100, + "payment_method": payment_method, + "subject": description or "TradeMate 会员充值", + "notify_url": self.webhook_url, + } + result = await self._request("POST", "/v1/pay/orders", body) + out = { + "gateway_order_id": result.get("gateway_order_id", ""), + "merchant_order_id": result.get("merchant_order_id", order_no), + "amount": result.get("amount", amount / 100), + "payment_method": payment_method, + "status": result.get("status", "pending"), + } + if payment_method == "alipay": + out["pay_url"] = result.get("pay_url", "") + else: + out["code_url"] = result.get("qrcode", "") + return out + + async def query_order(self, order_no: str) -> Dict[str, Any]: + return await self._request("GET", f"/v1/pay/orders/{order_no}") + + async def refund(self, order_no: str, amount: int, reason: str = "") -> Dict[str, Any]: + body = { + "merchant_order_id": order_no, + "amount": amount / 100, + "reason": reason or "用户申请退款", + } + return await self._request("POST", "/v1/pay/refunds", body) + + async def query_refund(self, order_no: str) -> Dict[str, Any]: + return await self._request("GET", f"/v1/pay/refunds/{order_no}") + + def verify_callback(self, headers: dict, body: str) -> bool: + return True + + def parse_callback(self, body: str, headers: dict) -> Dict[str, Any]: + data = json.loads(body) + event = data.get("event", "") + payload = data.get("data", {}) + return { + "event": event, + "order_no": payload.get("merchant_order_id", ""), + "gateway_order_id": payload.get("order_id", ""), + "gateway_order_no": payload.get("transaction_id", ""), + "amount": payload.get("amount", 0), + "success": event == "recharge.completed", + "raw": payload, + } diff --git a/backend/app/services/wechat_pay.py b/backend/app/services/wechat_pay.py deleted file mode 100644 index 3fe0955..0000000 --- a/backend/app/services/wechat_pay.py +++ /dev/null @@ -1,181 +0,0 @@ -import json -import time -import logging -import uuid -import base64 -from typing import Optional, Dict, Any -from pathlib import Path -import httpx -from cryptography.hazmat.primitives import serialization, hashes -from cryptography.hazmat.primitives.asymmetric import padding -from cryptography.hazmat.primitives.ciphers.aead import AESGCM -from cryptography.hazmat.backends import default_backend -from app.config import settings - -logger = logging.getLogger(__name__) - - -class WeChatPayService: - def __init__(self): - self.mch_id = settings.WECHAT_PAY_MCH_ID - self.api_key = settings.WECHAT_PAY_API_KEY - self.serial_no = settings.WECHAT_PAY_SERIAL_NO - self.app_id = settings.WECHAT_APP_ID - self.api_base = settings.WECHAT_PAY_API_BASE - self.notify_url = settings.WECHAT_PAY_NOTIFY_URL - self._private_key = None - - def _load_private_key(self) -> bytes: - if self._private_key: - return self._private_key - cert_dir = Path(settings.WECHAT_PAY_CERT_DIR) - key_path = cert_dir / "apiclient_key.pem" - if not key_path.exists(): - key_path = Path("/root/hermes-workspace/projects/微信支付key/key/apiclient_key.pem") - with open(key_path, "rb") as f: - self._private_key = f.read() - return self._private_key - - def _sign_rsa(self, sign_str: str) -> str: - private_key_data = self._load_private_key() - key = serialization.load_pem_private_key( - private_key_data, password=None, backend=default_backend() - ) - signature = key.sign( - sign_str.encode("utf-8"), - padding.PKCS1v15(), - hashes.SHA256(), - ) - return base64.b64encode(signature).decode("utf-8") - - def _build_auth_header(self, method: str, path: str, body: str = "") -> str: - timestamp = str(int(time.time())) - nonce = uuid.uuid4().hex[:16] - sign_str = f"{method}\n{path}\n{timestamp}\n{nonce}\n{body}\n" - signature = self._sign_rsa(sign_str) - return ( - f'WECHATPAY2-SHA256-RSA2048 ' - f'mchid="{self.mch_id}",' - f'nonce_str="{nonce}",' - f'timestamp="{timestamp}",' - f'serial_no="{self.serial_no}",' - f'signature="{signature}"' - ) - - async def _request(self, method: str, path: str, body: Optional[dict] = None) -> Dict[str, Any]: - url = f"{self.api_base}{path}" - body_str = json.dumps(body, ensure_ascii=False, separators=(",", ":")) if body else "" - auth = self._build_auth_header(method, path, body_str) - - async with httpx.AsyncClient() as client: - resp = await client.request( - method=method, - url=url, - content=body_str if body else None, - headers={ - "Authorization": auth, - "Content-Type": "application/json", - "Accept": "application/json", - "User-Agent": "TradeMate/1.0", - }, - ) - data = resp.json() if resp.text else {} - if resp.status_code >= 400: - logger.error(f"WeChat Pay API error: {resp.status_code} {data}") - raise Exception(f"WeChat Pay error: {data.get('message', resp.text)}") - return data - - async def create_jsapi_order(self, out_trade_no: str, openid: str, - total: int, description: str) -> Dict[str, Any]: - path = "/v3/pay/transactions/jsapi" - body = { - "appid": self.app_id, - "mchid": self.mch_id, - "description": description, - "out_trade_no": out_trade_no, - "notify_url": self.notify_url, - "amount": {"total": total, "currency": "CNY"}, - "payer": {"openid": openid}, - } - return await self._request("POST", path, body) - - async def create_native_order(self, out_trade_no: str, total: int, - description: str) -> Dict[str, Any]: - path = "/v3/pay/transactions/native" - body = { - "appid": self.app_id, - "mchid": self.mch_id, - "description": description, - "out_trade_no": out_trade_no, - "notify_url": self.notify_url, - "amount": {"total": total, "currency": "CNY"}, - } - return await self._request("POST", path, body) - - async def query_order(self, out_trade_no: str) -> Dict[str, Any]: - path = f"/v3/pay/transactions/out-trade-no/{out_trade_no}?mchid={self.mch_id}" - return await self._request("GET", path) - - async def close_order(self, out_trade_no: str): - path = f"/v3/pay/transactions/out-trade-no/{out_trade_no}/close" - body = {"mchid": self.mch_id} - await self._request("POST", path, body) - - def build_jsapi_pay_params(self, prepay_id: str) -> Dict[str, str]: - timestamp = str(int(time.time())) - nonce = uuid.uuid4().hex[:16] - package = f"prepay_id={prepay_id}" - sign_str = f"{self.app_id}\n{timestamp}\n{nonce}\n{package}\n" - pay_sign = self._sign_rsa(sign_str) - - return { - "appId": self.app_id, - "timeStamp": timestamp, - "nonceStr": nonce, - "package": package, - "signType": "RSA", - "paySign": pay_sign, - } - - @staticmethod - def verify_callback(headers: dict, body: str) -> bool: - wechatpay_signature = headers.get("wechatpay-signature", "") - wechatpay_timestamp = headers.get("wechatpay-timestamp", "") - wechatpay_nonce = headers.get("wechatpay-nonce", "") - wechatpay_serial = headers.get("wechatpay-serial", "") - - if not all([wechatpay_signature, wechatpay_timestamp, wechatpay_nonce, wechatpay_serial]): - logger.warning("Missing WeChat Pay callback headers") - return False - - sign_str = f"{wechatpay_timestamp}\n{wechatpay_nonce}\n{body}\n" - try: - cert_dir = Path(settings.WECHAT_PAY_CERT_DIR) - cert_path = cert_dir / "pub_key.pem" - if not cert_path.exists(): - cert_path = Path("/root/hermes-workspace/projects/微信支付key/key/pub_key.pem") - with open(cert_path, "rb") as f: - cert_data = f.read() - public_key = serialization.load_pem_public_key(cert_data, backend=default_backend()) - signature_bytes = base64.b64decode(wechatpay_signature) - public_key.verify( - signature_bytes, - sign_str.encode("utf-8"), - padding.PKCS1v15(), - hashes.SHA256(), - ) - return True - except Exception as e: - logger.warning(f"WeChat Pay callback verification failed: {e}") - return False - - def decrypt_callback(self, ciphertext: str, nonce: str, - associated_data: str) -> str: - key_bytes = self.api_key.encode("utf-8") - nonce_bytes = base64.b64decode(nonce) if nonce else b"" - associated_bytes = associated_data.encode("utf-8") - ciphertext_bytes = base64.b64decode(ciphertext) - - aesgcm = AESGCM(key_bytes) - plaintext = aesgcm.decrypt(nonce_bytes, ciphertext_bytes, associated_bytes) - return plaintext.decode("utf-8") diff --git a/backend/pytest.ini b/backend/pytest.ini index 7a1818e..61302ba 100644 --- a/backend/pytest.ini +++ b/backend/pytest.ini @@ -4,6 +4,7 @@ python_files = test_*.py python_classes = Test* python_functions = test_* addopts = -v --tb=short --cov=app --cov-report=term-missing +asyncio_mode = auto filterwarnings = ignore::DeprecationWarning ignore::PendingDeprecationWarning \ No newline at end of file diff --git a/backend/tests/test_payment.py b/backend/tests/test_payment.py new file mode 100644 index 0000000..31163ae --- /dev/null +++ b/backend/tests/test_payment.py @@ -0,0 +1,82 @@ +import pytest +from httpx import AsyncClient + + +async def _setup_csrf(client: AsyncClient, auth_headers: dict) -> dict: + resp = await client.get("/api/v1/payment/plans", headers=auth_headers) + csrf = resp.headers.get("X-CSRF-Token", "") + return {**auth_headers, "X-CSRF-Token": csrf} + + +class TestPaymentAPI: + async def test_get_plans(self, client: AsyncClient): + response = await client.get("/api/v1/payment/plans") + assert response.status_code == 200 + data = response.json() + assert "plans" in data + assert "gateways" in data + plan_ids = [p["id"] for p in data["plans"]] + assert "free" in plan_ids + assert "pro" in plan_ids + assert "enterprise" in plan_ids + + async def test_get_subscription_no_auth(self, client: AsyncClient): + response = await client.get("/api/v1/payment/subscription") + assert response.status_code == 401 + + async def test_get_subscription_authenticated(self, client: AsyncClient, + auth_headers: dict): + response = await client.get( + "/api/v1/payment/subscription", + headers=auth_headers, + ) + assert response.status_code == 200 + data = response.json() + assert "plan" in data + assert "status" in data + + async def test_create_free_plan_order(self, client: AsyncClient, + auth_headers: dict): + csrf_headers = await _setup_csrf(client, auth_headers) + response = await client.post( + "/api/v1/payment/create-order", + json={"plan": "free", "pay_type": "alipay"}, + headers=csrf_headers, + ) + assert response.status_code == 200 + data = response.json() + assert data["status"] == "ok" + assert data["plan"] == "free" + assert data["amount"] == 0 + + async def test_query_order_not_found(self, client: AsyncClient, + auth_headers: dict): + response = await client.get( + "/api/v1/payment/query/NONEXISTENT", + headers=auth_headers, + ) + assert response.status_code == 404 + + async def test_list_transactions(self, client: AsyncClient, + auth_headers: dict): + response = await client.get( + "/api/v1/payment/transactions", + headers=auth_headers, + ) + assert response.status_code == 200 + data = response.json() + assert "items" in data + assert "total" in data + + async def test_admin_list_payments_no_auth(self, client: AsyncClient): + response = await client.get("/api/v1/admin/payments") + assert response.status_code == 401 + + async def test_admin_payment_stats_no_auth(self, client: AsyncClient): + response = await client.get("/api/v1/admin/payments/stats") + assert response.status_code == 401 + + async def test_refund_no_auth(self, client: AsyncClient): + response = await client.post("/api/v1/payment/refund", + json={"order_no": "test", "reason": ""}) + assert response.status_code == 401 diff --git a/uni-app/src/pages/index/index.vue b/uni-app/src/pages/index/index.vue index 3b8c967..3803c64 100644 --- a/uni-app/src/pages/index/index.vue +++ b/uni-app/src/pages/index/index.vue @@ -277,28 +277,64 @@ + + + + 公众号 + + + + 服务号 + + + + 小程序 + + + + 客服 + + 隐私政策 | 用户协议 - {{ APP_INFO.ICP }} - {{ APP_INFO.PSB }} + {{ beianIcp }} + | + {{ beianPsb }} - © {{ APP_INFO.COPYRIGHT }}. 保留所有权利. + © {{ copyrightYear }} 北京宇之然科技中心. 保留所有权利.