feat: 俱乐部配置页展示 APIv2 mch_key 与 APIv3 api_v3_key 及配置警告

与后端 club-manage 对齐,区分小程序收款密钥与提现转账密钥。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-10 21:34:32 +08:00
parent f1ba100d56
commit fa6b456630

View File

@@ -50,24 +50,47 @@
<el-input v-model="form.wx_secret" type="password" show-password placeholder="小程序 Secret" />
</el-form-item>
<el-divider content-position="left">微信支付</el-divider>
<el-divider content-position="left">微信支付同一商户号V2 收款 / V3 提现 密钥分开配</el-divider>
<el-form-item label="商户号 mch_id">
<el-input v-model="form.mch_id" />
</el-form-item>
<el-form-item label="pay_app_id">
<el-input v-model="form.pay_app_id" />
<el-input v-model="form.pay_app_id" placeholder="可与 wx_appid 相同,或留空" />
</el-form-item>
<el-form-item label="api_v3_key">
<el-input v-model="form.api_v3_key" type="password" show-password />
<el-form-item label="APIv2 密钥 mch_key">
<el-input
v-model="form.mch_key"
type="password"
show-password
placeholder="小程序 JSAPI 收款(会员/点单/押金等)"
/>
<div class="field-help">微信商户平台 API安全 设置APIv2密钥与下方 APIv3 不是同一个</div>
</el-form-item>
<el-form-item label="APIv3 密钥 api_v3_key">
<el-input
v-model="form.api_v3_key"
type="password"
show-password
placeholder="自动提现 / 转账到零钱 / 回调解密"
/>
<div class="field-help">微信商户平台 API安全 设置APIv3密钥仅用于提现不用于小程序收款</div>
</el-form-item>
<el-alert
v-if="payWarnings.length"
type="warning"
:closable="false"
show-icon
class="pay-warn"
:title="payWarnings.join('')"
/>
<el-form-item label="cert_serial_no">
<el-input v-model="form.cert_serial_no" />
<el-input v-model="form.cert_serial_no" placeholder="APIv3 商户证书序列号(提现签名用)" />
</el-form-item>
<el-form-item label="private_key_path">
<el-input v-model="form.private_key_path" placeholder="服务器上私钥文件路径" />
<el-input v-model="form.private_key_path" placeholder="服务器上 apiclient_key.pem 路径(提现签名用)" />
</el-form-item>
<el-form-item label="platform_cert_dir">
<el-input v-model="form.platform_cert_dir" placeholder="平台证书目录" />
<el-input v-model="form.platform_cert_dir" placeholder="微信平台证书目录(提现回调验签用)" />
</el-form-item>
<el-divider content-position="left">服务号</el-divider>
@@ -126,12 +149,14 @@ const createForm = reactive({
wx_appid: '',
from_club: 'xq',
})
const payWarnings = ref([])
const form = reactive({
name: '',
wx_appid: '',
wx_secret: '',
mch_id: '',
pay_app_id: '',
mch_key: '',
api_v3_key: '',
cert_serial_no: '',
private_key_path: '',
@@ -173,6 +198,7 @@ const loadClub = async () => {
})
if (res.code === 0 && res.data) {
Object.assign(form, res.data)
payWarnings.value = (res.data.pay_config && res.data.pay_config.warnings) || []
} else {
ElMessage.error(res.msg || '加载失败')
}
@@ -266,4 +292,13 @@ onMounted(async () => {
.config-form {
max-width: 720px;
}
.field-help {
font-size: 12px;
color: #909399;
line-height: 1.5;
margin-top: 4px;
}
.pay-warn {
margin-bottom: 16px;
}
</style>