feat: add WeChat Pay, Redis logging, storage tiers and personal albums

Replace virtual payments with WeChat Pay API v3 and verify callbacks and order polling. Cache WeChat access tokens in Redis and write structured Zap logs. Support configurable capacity plans across the API, admin and mini program, with purchase snapshots and quota enforcement. Allow personal albums before binding and share them with the current partner. Update deployment configuration and domain routing.
This commit is contained in:
2026-11-02 23:40:49 +08:00
parent 4934a69581
commit 4c9708b562
69 changed files with 2692 additions and 1153 deletions
+9 -8
View File
@@ -9,27 +9,27 @@
<view class="storage-card">
<view class="storage-card-head">
<view class="storage-title">已用空间</view>
<view class="storage-vip" wx:if="{{isVip}}">👑 无限空间</view>
<view class="storage-vip" wx:if="{{isVip}}">👑 {{quotaText}}</view>
</view>
<view class="storage-used">
<text class="storage-num">{{usedText}}</text>
<text class="storage-of" wx:if="{{!isVip}}"> / {{freeText}} 免费</text>
<text class="storage-of" wx:if="{{!isUnlimited}}"> / {{quotaText}}</text>
</view>
<view class="storage-bar" wx:if="{{!isVip}}">
<view class="storage-bar" wx:if="{{!isUnlimited}}">
<view class="storage-bar-fill" style="width: {{percent}}%;"></view>
</view>
<view class="storage-hint" wx:if="{{isVip}}">{{vipExpireText}}</view>
<view class="storage-hint over" wx:elif="{{overQuota}}">已超出免费空间,升级后即可继续上传</view>
<view class="storage-hint" wx:else>已使用 {{percent}}% 免费空间</view>
<view class="storage-hint" wx:else>已使用 {{percent}}% 存储空间</view>
</view>
<!-- 套餐 -->
<view class="section-heading">升级无限空间</view>
<view class="section-heading">选择容量套餐</view>
<view class="plan-list">
<view class="plan-card" wx:for="{{plans}}" wx:key="key" bindtap="buyPlan" data-key="{{item.key}}">
<view class="plan-info">
<view class="plan-name">{{item.name}}</view>
<view class="plan-desc">无限存储空间,照片视频想存就存</view>
<view class="plan-desc">{{item.description}}</view>
</view>
<view class="plan-price">
<text class="plan-amount">¥{{item.priceText}}</text>
@@ -38,12 +38,13 @@
</view>
</view>
<view class="storage-hint" wx:if="{{!loading && !plans.length}}">暂无上架套餐</view>
<!-- 说明 -->
<view class="storage-note">
<view class="note-title">📌 说明</view>
<view class="note-item">• 默认提供 {{freeMb}}MB 免费空间</view>
<view class="note-item">• 开通会员后,照片、视频等不再限制存储空间</view>
<view class="note-item">• 会员到期后,已上传内容仍可正常查看</view>
<view class="note-item">• 套餐容量为总可用容量,不与免费额度叠加;情侣共享当前有效的最大容量</view>
<view class="note-item">• 套餐到期后已上传内容仍可查看,超出可用容量将暂停新增上传</view>
</view>
<page-state wx:if="{{error}}" kind="error" title="加载失败" action="重试" bind:action="loadInfo" />