1. 11 Apr, 2026 17 commits
    • erio's avatar
      docs: show ZPay URL explicitly in parentheses · f3e8e5e0
      erio authored
      f3e8e5e0
    • erio's avatar
      docs: move ZPay recommendation to overview section · 3b0dc929
      erio authored
      3b0dc929
    • erio's avatar
      fix(docs): correct webhook paths and provider config in payment guide · 1a686239
      erio authored
      - Fix webhook URLs: /payment/webhook/<provider> not /payment/<provider>/notify
      - Remove notifyUrl/returnUrl from provider config tables (auto-generated by UI)
      - Adjust wxpay publicKeyId/certSerial to match frontend optional marking
      1a686239
    • erio's avatar
      docs: add built-in payment configuration guide and update README · c777fe54
      erio authored
      - Add docs/PAYMENT.md and docs/PAYMENT_CN.md with full payment setup guide
      - Mark Sub2ApiPay as deprecated in ecosystem tables (payment is now built-in)
      - Add built-in payment system to features list in all 3 READMEs
      c777fe54
    • Wesley Liddick's avatar
      Merge pull request #1572 from touwaeriol/feat/payment-system-v2 · 97f14b7a
      Wesley Liddick authored
      feat(payment): add complete payment system with multi-provider support
      97f14b7a
    • erio's avatar
    • erio's avatar
      Merge remote-tracking branch 'upstream/main' into feat/payment-system-v2 · fa833f76
      erio authored
      # Conflicts:
      #	frontend/src/api/admin/settings.ts
      #	frontend/src/stores/app.ts
      #	frontend/src/types/index.ts
      #	frontend/src/views/admin/SettingsView.vue
      fa833f76
    • erio's avatar
      chore: remove all sora dead code and fork-specific sora_client_enabled · d67ecf89
      erio authored
      Upstream removed sora feature (090_drop_sora.sql) but left i18n keys
      and wire.go references. Clean up:
      - Remove entire sora i18n block from en.ts and zh.ts (~190 lines)
      - Remove sora nav key and unused 'data' settings tab key
      - Remove sora_client_enabled from settings (fork-specific)
      - Remove SoraMediaCleanupService from wire.go
      d67ecf89
    • erio's avatar
      fix(payment): propagate reason/metadata in API error responses · faee59ee
      erio authored
      The API client's error interceptor was dropping the reason and metadata
      fields from backend error responses. This caused PaymentView to miss
      specific error codes (TOO_MANY_PENDING, CANCEL_RATE_LIMITED) and fall
      back to generic error messages.
      faee59ee
    • erio's avatar
      217b7ea6
    • erio's avatar
      fix(payment): pass expires_at for Stripe countdown timer · a020fc52
      erio authored
      Stripe payment path was setting expiresAt to empty string, causing
      PaymentStatusPanel to fall back to hardcoded 30-minute default when
      the popup redirect switches to the waiting view.
      a020fc52
    • Wesley Liddick's avatar
      Merge pull request #1538 from IanShaw027/fix/bug-cleanup-main · 1ef3782d
      Wesley Liddick authored
       fix: 修复多个 UI 和功能问题 - 表格排序搜索、导出逻辑、分页配置和状态筛选
      1ef3782d
    • erio's avatar
      feat(payment): add H5/mobile payment support · 75155903
      erio authored
      Backend:
      - Parse EasyPay `payurl2` field, prefer H5 link on mobile
      - Add `device=mobile` to EasyPay submit.php (popup) mode
      - Expand isMobile detection keywords (add ipad/ipod)
      
      Frontend:
      - Add `isMobileDevice()` utility (userAgentData + UA regex)
      - Mobile + pay_url: direct redirect instead of QR/popup
      - Popup blocked fallback: auto-redirect when window.open fails
      - Stripe WeChat Pay: dynamic client param (mobile_web vs web)
      75155903
    • erio's avatar
      refactor(payment): code standards fixes and regression repairs · e3a000e0
      erio authored
      Backend:
      - Split payment_order.go (546→314 lines) into payment_order_lifecycle.go
      - Replace magic strings with constants in factory, easypay, webhook handler
      - Add rate limit/validity unit constants in payment_order_lifecycle, payment_service
      - Fix critical regression: add PaymentEnabled to GetPublicSettings response
      - Add missing migration 099_fix_migrated_purchase_menu_label_icon.sql
      
      Frontend:
      - Fix StripePopupView.vue: replace `as any` with typed interface, use extractApiErrorMessage
      - Fix AdminOrderTable.vue: replace hardcoded column labels with i18n t() calls
      - Fix SubscriptionsView.vue: replace hardcoded Today/Tomorrow with i18n
      - Extract duplicate statusBadgeClass/canRefund/formatOrderDateTime to orderUtils.ts
      - Add missing i18n keys: common.today, common.tomorrow, payment.orders.orderType/actions
      - Remove dead PurchaseSubscriptionView.vue (replaced by PaymentView)
      e3a000e0
    • erio's avatar
      fix(payment): remove purchase_subscription fields replaced by payment system · 27cd2f8e
      erio authored
      The built-in payment system replaces the old external purchase subscription
      iframe approach. Remove purchase_subscription_enabled/url from admin settings
      interface and form defaults, as the Payment tab now handles this functionality.
      Kept in stores/app.ts fallback to match backend DTO response structure.
      27cd2f8e
    • erio's avatar
      fix(payment): resolve PR audit issues · e1547d78
      erio authored
      - Add payment navigation to AppSidebar (user orders + admin payment menu group with collapse)
      - Add 5 missing nav i18n keys (myOrders, orderManagement, paymentDashboard, paymentConfig, paymentPlans)
      - Renumber payment migrations 090-100 → 092-102 to avoid conflict with upstream 090/091
      - Remove non-payment sora_client_enabled change, restore upstream purchase_subscription fields
      - Remove extra 'data' from SettingsTab type union
      e1547d78
    • erio's avatar
      feat(payment): add complete payment system with multi-provider support · 63d1860d
      erio authored
      Add a full payment and subscription system supporting EasyPay (Alipay/WeChat),
      Stripe, and direct Alipay/WeChat Pay providers with multi-instance load balancing.
      63d1860d
  2. 10 Apr, 2026 5 commits
  3. 09 Apr, 2026 18 commits