feat: Alipay 安全加固 + 切换手机网站支付 (wap.pay)
Some checks failed
Deploy Backend / deploy (push) Has been cancelled

- Phase 1: 移除 Git 中 ALIPAY 密钥,改用 EnvironmentFile
  所有 4 个 deploy 模板删除 ALIPAY_* 内联 Environment,改为指向 .env
  check_service_file() 不再要求 ALIPAY_APP_ID 在 Environment 中
  init_env() 生成模板添加 EnvironmentFile 行

- Phase 2: 切换到手机网站支付 (alipay.trade.wap.pay)
  payment.rs: product_code QUICK_WAP_PAY, method alipay.trade.wap.pay
  用户从手机浏览器访问时自动唤起支付宝 APP

- Phase 3: 服务器 .env 文件创建
  所有环境 .env 文件已通过 SSH 创建(600 权限)
  dev 使用沙箱网关 (openapi-sandbox.dl.alipaydev.com)
  prod 使用正式网关 (openapi.alipay.com)

- 生产部署完成(blue→green 双环境同步)
  密钥安全: 不再存在于任何 Git 跟踪文件中
This commit is contained in:
2026-07-20 14:51:56 +08:00
parent 4c5c879583
commit 2c86219c82
6 changed files with 10 additions and 22 deletions

View File

@@ -90,7 +90,7 @@ check_service_file() {
local missing=0 ph=0
local required_vars=("DATABASE_URL" "JWT_SECRET" "WECHAT_APPID" "WECHAT_SECRET")
[ "${APP_ENV}" = "production" ] && required_vars+=("SSL_KEY_PATH" "SSL_CERT_PATH" "ALIPAY_APP_ID")
[ "${APP_ENV}" = "production" ] && required_vars+=("SSL_KEY_PATH" "SSL_CERT_PATH")
for var in "${required_vars[@]}"; do
local val; val=$(echo "$content" | grep -E "^Environment=${var}=" | head -1 | sed "s/^Environment=${var}=//")
@@ -205,6 +205,8 @@ Environment=SSL_CERT_PATH=
Environment=RUST_LOG=info
Environment=APP_VERSION=0.3.0
Environment=FREE_USER_DATA_LIMIT=20
# 支付宝密钥存储在 .env 文件(不在 Git 中)
EnvironmentFile=${REMOTE_DIR}/.env
SERVEOF
chmod 600 "$(get_service_file_local)"