feat(payment): 后台「支付配置」支持微信支付与支付宝凭据管理
后端: - 新增 payment_configs 单行配置表;APIv3 密钥、应用私钥/公钥以 AES-256-GCM 密文入库(enc:v1 前缀,主密钥取 PAYMENT_SECRET_KEY,缺省回退 JWT_SECRET 派生) - 证书/私钥落 PAYMENT_CERT_DIR(默认 /data/payment-certs),目录 0700 / 文件 0600,不经任何静态路由暴露 - 接口:GET/PUT /api/admin/payment/config、POST /upload(PEM 校验 + 微信证书序列号自动回填)、POST /test(真打官方接口:微信 /v3/certificates 签名校验、支付宝 alipay.trade.query 签名校验)、POST /wechat/platform-certs(APIv3 密钥解密平台证书并落盘) - 未配置凭据时测试返回 skipped 而不是 500;敏感字段在返回体里一律脱敏 前端: - /payments 改为「通用设置 + 微信支付 / 支付宝 / Waffo 海外支付」页签(原 Waffo 页整页迁到 views/payments/Waffo.vue) - 微信:mchid、AppID、APIv3 密钥(密码框 + 掩码回显 + 更换/清除)、证书序列号、支付方式多选、三项证书上传、自动获取平台证书 - 支付宝:app_id、应用私钥(粘贴/上传)、支付宝公钥、网关、RSA2、回调地址 - 菜单归入「审计与设置 → 支付配置」
This commit is contained in:
1 parent
630f2819cb
commit
7d53c6ed3c
21 files changed
+3090
-6
No files matched your search
@@ -107,6 +107,22 @@ SUCCESS_URL=https://l123.91ai.io/api/v1/purchase/success
|
||||
# ============================================
|
||||
# Docker Compose
|
||||
# ============================================
|
||||
|
||||
# ============================================
|
||||
# 支付配置加密(后台「支付配置」页 · 微信支付 / 支付宝)
|
||||
# ============================================
|
||||
# 敏感字段(微信 APIv3 密钥、支付宝应用私钥/公钥)入库前用 AES-256-GCM 加密,
|
||||
# 主密钥只从环境变量读取,绝不写入数据库或仓库。生成方式二选一:
|
||||
# openssl rand -hex 32 # 64 位 hex
|
||||
# openssl rand -base64 32 # 32 字节 base64
|
||||
# 未设置时系统会退化为用 JWT_SECRET 派生主密钥(可开箱使用,但轮换 JWT_SECRET 会导致
|
||||
# 已保存的支付密钥无法解密,必须重新填写)——生产环境请显式设置本变量。
|
||||
# 注意:主密钥一旦更换,已保存的密文全部失效。
|
||||
# PAYMENT_SECRET_KEY=
|
||||
|
||||
# 支付证书/私钥落地目录(容器内数据卷,位于仓库之外);
|
||||
# 目录权限 0700、文件 0600,不通过任何静态路由对外暴露。默认 /data/payment-certs
|
||||
# PAYMENT_CERT_DIR=/data/payment-certs
|
||||
# 宿主机映射端口(容器内固定 9001)
|
||||
HOST_PORT=9001
|
||||
VERSION=latest
|
||||
|
||||
Reference in new issue
Block a user