feat(payment): finish Zibll key contract and wire checkout gateways

Drop dual-read payment runtime fallbacks, align PHP schema to Vue keys,
read gateway credentials only from aksrt_settings with enable toggles,
expose configured adapters at checkout, fix credits pay signatures, and
apply order expiry settings. Wire orphan order/card-pass/withdrawal
schema pages; delete unused Payment* wrappers.
This commit is contained in:
2026-07-11 17:42:35 +08:00
parent 12c31ad82b
commit c93b303453
16 changed files with 298 additions and 228 deletions
@@ -49,6 +49,17 @@ export const paymentSection = {
canonicalDomain: 'payment',
section: 'vip',
}),
schemaPage({
key: 'payment-order',
name: 'PaymentOrder',
label: '订单设置',
route: '/payment/order',
status: 'available',
title: '订单设置',
desc: '订单前缀、有效期、展示字段和状态文案。',
canonicalDomain: 'payment',
section: 'order',
}),
customPage({
key: 'payment-revenue',
name: 'PaymentRevenue',
@@ -84,6 +95,28 @@ export const paymentSection = {
canonicalDomain: 'payment',
section: 'charge-card',
}),
schemaPage({
key: 'payment-card-pass',
name: 'PaymentCardPass',
label: '卡密设置',
route: '/payment/card-pass',
status: 'available',
title: '卡密设置',
desc: '充值卡类型、卡号规则与兑换文案。',
canonicalDomain: 'payment',
section: 'card-pass',
}),
schemaPage({
key: 'payment-withdrawal',
name: 'PaymentWithdrawal',
label: '提现策略',
route: '/payment/withdrawal',
status: 'available',
title: '提现策略',
desc: '最低提现、手续费与说明文案(提现工单在商城提现管理)。',
canonicalDomain: 'payment',
section: 'withdrawal',
}),
customPage({
key: 'payment-rebate',
name: 'PaymentRebate',
@@ -1,16 +0,0 @@
<template>
<PaymentSectionPage
section="affiliate"
title="推广返佣"
desc="配置返佣比例、归因窗口和返佣说明。"
note="返佣逻辑复用用户邀请体系作为链路入口,订单归因和结算自动衔接当前策略字段。"
:links="[
{ label: '用户签到/邀请', path: '/users/signin' },
{ label: '创作分成', path: '/payment/revenue' },
]"
/>
</template>
<script setup>
import PaymentSectionPage from '@/pages/payment/PaymentSectionPage.vue'
</script>
@@ -1,16 +0,0 @@
<template>
<PaymentSectionPage
section="recharge"
title="余额充值"
desc="配置充值模式、套餐结构和帮助文案。"
note="当前支持人工确认与测试联调;接入真实网关时复用同一组字段。"
:links="[
{ label: '下载/付费内容中心', path: '/payment/paid' },
{ label: '收款接口', path: '/payment/gateway' },
]"
/>
</template>
<script setup>
import PaymentSectionPage from '@/pages/payment/PaymentSectionPage.vue'
</script>
@@ -1,16 +0,0 @@
<template>
<PaymentSectionPage
section="vip"
title="VIP会员"
desc=”配置会员名称、展示徽标和套餐结构。”
note=”角色免扣下载的运行逻辑在”下载/付费内容中心”中生效;此处管理会员套餐和权益说明。”
:links="[
{ label: '下载/付费内容中心', path: '/payment/paid' },
{ label: '创作分成', path: '/payment/revenue' },
]"
/>
</template>
<script setup>
import PaymentSectionPage from '@/pages/payment/PaymentSectionPage.vue'
</script>
@@ -21,7 +21,6 @@ export const affiliateSchema = {
pay_rebate_text_details_title: '',
pay_rebate_text_details: '',
pay_rebate_text_discount: '',
payment_affiliate_note: '返佣链路复用邀请体系,订单归因和结算自动衔接当前策略字段。',
},
groups: [
{
@@ -20,6 +20,7 @@ export const paymentSchemas = {
affiliate: affiliateSchema,
gateway: gatewaySchema,
order: orderSchema,
'card-pass': cardPassSchema,
cardPass: cardPassSchema,
withdrawal: withdrawalSchema,
}
@@ -2,7 +2,7 @@ export const rechargeSchema = {
key: 'payment.recharge',
title: '余额充值',
icon: 'fas fa-charging-station',
description: '配置测试充值、手动确认和充值套餐结构。',
description: '配置余额充值套餐、转账与积分兑换。',
defaults: {
pay_balance_s: true,
pay_balance_desc: '',
@@ -31,7 +31,6 @@ export const rechargeSchema = {
icon: 'fas fa-wallet',
fields: [
{ key: 'pay_balance_s', label: '启用余额功能', type: 'switch', default: true },
{ key: 'payment_recharge_mode', label: '充值模式', type: 'radio', default: 'manual_review', options: [{ label: '人工确认', value: 'manual_review' }, { label: '测试网关', value: 'test_gateway' }], dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'pay_balance_desc', label: '充值说明', type: 'textarea', default: '', dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'pay_auto_to_balance', label: '自动到账到余额', type: 'switch', default: true, dependsOn: { key: 'pay_balance_s', value: true } },
],
@@ -42,7 +41,6 @@ export const rechargeSchema = {
icon: 'fas fa-box-open',
fields: [
{ key: 'pay_balance_product', label: '套餐列表', type: 'textarea', default: '30|30|入门包\n98|108|推荐包', help: '每行一个套餐:支付金额|到账金额|标题', dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'payment_recharge_help', label: '帮助文案', type: 'textarea', default: '当前支持人工确认与测试联调;接入真实网关时复用同一组字段。', dependsOn: { key: 'pay_balance_s', value: true } },
],
},
{