feat: require compliance confirmation for paid features

Gate payment, redemption, subscription, and invitation reward flows behind an audited compliance acknowledgement.
This commit is contained in:
CaIon
2026-05-13 22:18:46 +08:00
parent aa56667b8f
commit 0526a22643
57 changed files with 1806 additions and 216 deletions
@@ -66,6 +66,11 @@ const defaultBillingSettings: BillingSettings = {
PayMethods: '',
'payment_setting.amount_options': '',
'payment_setting.amount_discount': '',
'payment_setting.compliance_confirmed': false,
'payment_setting.compliance_terms_version': '',
'payment_setting.compliance_confirmed_at': 0,
'payment_setting.compliance_confirmed_by': 0,
'payment_setting.compliance_confirmed_ip': '',
StripeApiSecret: '',
StripeWebhookSecret: '',
StripePriceId: '',
@@ -71,6 +71,10 @@ const BILLING_SECTIONS = [
settings['quota_setting.enable_free_model_pre_consume'],
},
}}
complianceConfirmed={
(settings['payment_setting.compliance_confirmed'] ?? false) &&
settings['payment_setting.compliance_terms_version'] === 'v1'
}
/>
),
},
@@ -187,6 +191,13 @@ const BILLING_SECTIONS = [
WaffoPancakeUnitPrice: settings.WaffoPancakeUnitPrice ?? 1,
WaffoPancakeMinTopUp: settings.WaffoPancakeMinTopUp ?? 1,
}}
complianceDefaults={{
confirmed: settings['payment_setting.compliance_confirmed'] ?? false,
termsVersion:
settings['payment_setting.compliance_terms_version'] ?? '',
confirmedAt: settings['payment_setting.compliance_confirmed_at'] ?? 0,
confirmedBy: settings['payment_setting.compliance_confirmed_by'] ?? 0,
}}
/>
),
},