解决冲突
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m7s

This commit is contained in:
2026-01-30 18:09:31 +08:00
parent 109ae688d2
commit e461791a0e
4 changed files with 173 additions and 6 deletions

View File

@@ -19,6 +19,12 @@ version: '3.8'
# - JUNHONG_DATABASE_DBNAME
# - JUNHONG_REDIS_ADDRESS
# - JUNHONG_JWT_SECRET_KEY
#
# 可选配置(根据需要启用):
# - Gateway 服务配置JUNHONG_GATEWAY_*
# - 微信公众号配置JUNHONG_WECHAT_OFFICIAL_ACCOUNT_*
# - 微信支付配置JUNHONG_WECHAT_PAYMENT_*
# - 对象存储配置JUNHONG_STORAGE_*
services:
api:
@@ -54,9 +60,33 @@ services:
- JUNHONG_STORAGE_S3_SECRET_ACCESS_KEY=8393425DCB2F48F1914FF39DCBC6C7B17325
- JUNHONG_STORAGE_S3_USE_SSL=false
- JUNHONG_STORAGE_S3_PATH_STYLE=true
# Gateway 配置(可选)
# - JUNHONG_GATEWAY_BASE_URL=https://lplan.whjhft.com/openapi
# - JUNHONG_GATEWAY_APP_ID=your_app_id
# - JUNHONG_GATEWAY_APP_SECRET=your_app_secret
# - JUNHONG_GATEWAY_TIMEOUT=30
# 微信公众号配置(可选)
# - JUNHONG_WECHAT_OFFICIAL_ACCOUNT_APP_ID=your_app_id
# - JUNHONG_WECHAT_OFFICIAL_ACCOUNT_APP_SECRET=your_app_secret
# - JUNHONG_WECHAT_OFFICIAL_ACCOUNT_TOKEN=your_token
# - JUNHONG_WECHAT_OFFICIAL_ACCOUNT_AES_KEY=your_aes_key
# - JUNHONG_WECHAT_OFFICIAL_ACCOUNT_OAUTH_REDIRECT_URL=https://your-domain.com/callback
# 微信支付配置(可选)
# - JUNHONG_WECHAT_PAYMENT_APP_ID=your_app_id
# - JUNHONG_WECHAT_PAYMENT_MCH_ID=your_mch_id
# - JUNHONG_WECHAT_PAYMENT_API_V3_KEY=your_32_char_api_v3_key
# - JUNHONG_WECHAT_PAYMENT_API_V2_KEY=your_api_v2_key
# - JUNHONG_WECHAT_PAYMENT_CERT_PATH=/app/certs/apiclient_cert.pem
# - JUNHONG_WECHAT_PAYMENT_KEY_PATH=/app/certs/apiclient_key.pem
# - JUNHONG_WECHAT_PAYMENT_SERIAL_NO=your_serial_no
# - JUNHONG_WECHAT_PAYMENT_NOTIFY_URL=https://your-domain.com/api/callback/wechat-pay
# - JUNHONG_WECHAT_PAYMENT_HTTP_DEBUG=false
# - JUNHONG_WECHAT_PAYMENT_TIMEOUT=30s
volumes:
# 仅挂载日志目录(配置已嵌入二进制文件)
- ./logs:/app/logs
# 微信支付证书目录(如果使用微信支付,需要挂载证书)
# - ./certs:/app/certs:ro
networks:
- junhong-network
healthcheck:
@@ -102,8 +132,32 @@ services:
- JUNHONG_STORAGE_S3_SECRET_ACCESS_KEY=8393425DCB2F48F1914FF39DCBC6C7B17325
- JUNHONG_STORAGE_S3_USE_SSL=false
- JUNHONG_STORAGE_S3_PATH_STYLE=true
# Gateway 配置(可选)
# - JUNHONG_GATEWAY_BASE_URL=https://lplan.whjhft.com/openapi
# - JUNHONG_GATEWAY_APP_ID=your_app_id
# - JUNHONG_GATEWAY_APP_SECRET=your_app_secret
# - JUNHONG_GATEWAY_TIMEOUT=30
# 微信公众号配置(可选)
# - JUNHONG_WECHAT_OFFICIAL_ACCOUNT_APP_ID=your_app_id
# - JUNHONG_WECHAT_OFFICIAL_ACCOUNT_APP_SECRET=your_app_secret
# - JUNHONG_WECHAT_OFFICIAL_ACCOUNT_TOKEN=your_token
# - JUNHONG_WECHAT_OFFICIAL_ACCOUNT_AES_KEY=your_aes_key
# - JUNHONG_WECHAT_OFFICIAL_ACCOUNT_OAUTH_REDIRECT_URL=https://your-domain.com/callback
# 微信支付配置(可选)
# - JUNHONG_WECHAT_PAYMENT_APP_ID=your_app_id
# - JUNHONG_WECHAT_PAYMENT_MCH_ID=your_mch_id
# - JUNHONG_WECHAT_PAYMENT_API_V3_KEY=your_32_char_api_v3_key
# - JUNHONG_WECHAT_PAYMENT_API_V2_KEY=your_api_v2_key
# - JUNHONG_WECHAT_PAYMENT_CERT_PATH=/app/certs/apiclient_cert.pem
# - JUNHONG_WECHAT_PAYMENT_KEY_PATH=/app/certs/apiclient_key.pem
# - JUNHONG_WECHAT_PAYMENT_SERIAL_NO=your_serial_no
# - JUNHONG_WECHAT_PAYMENT_NOTIFY_URL=https://your-domain.com/api/callback/wechat-pay
# - JUNHONG_WECHAT_PAYMENT_HTTP_DEBUG=false
# - JUNHONG_WECHAT_PAYMENT_TIMEOUT=30s
volumes:
- ./logs:/app/logs
# 微信支付证书目录(如果使用微信支付,需要挂载证书)
# - ./certs:/app/certs:ro
networks:
- junhong-network
depends_on:

View File

@@ -105,14 +105,13 @@ default_admin:
password: ""
phone: ""
<<<<<<< HEAD
# Gateway 服务配置
gateway:
base_url: "https://lplan.whjhft.com/openapi"
app_id: "60bgt1X8i7AvXqkd"
app_secret: "BZeQttaZQt0i73moF"
timeout: 30
=======
# 微信配置(必填项需通过环境变量设置)
wechat:
official_account:
@@ -132,4 +131,3 @@ wechat:
notify_url: "" # 必填JUNHONG_WECHAT_PAYMENT_NOTIFY_URL
http_debug: false
timeout: "30s"
>>>>>>> emdash/wechat-official-account-payment-integration-30g

View File

@@ -113,6 +113,25 @@ func bindEnvVariables(v *viper.Viper) {
"default_admin.username",
"default_admin.password",
"default_admin.phone",
"gateway.base_url",
"gateway.app_id",
"gateway.app_secret",
"gateway.timeout",
"wechat.official_account.app_id",
"wechat.official_account.app_secret",
"wechat.official_account.token",
"wechat.official_account.aes_key",
"wechat.official_account.oauth_redirect_url",
"wechat.payment.app_id",
"wechat.payment.mch_id",
"wechat.payment.api_v3_key",
"wechat.payment.api_v2_key",
"wechat.payment.cert_path",
"wechat.payment.key_path",
"wechat.payment.serial_no",
"wechat.payment.notify_url",
"wechat.payment.http_debug",
"wechat.payment.timeout",
}
for _, key := range bindings {

View File

@@ -162,6 +162,59 @@ main() {
read_input "服务监听地址" ":3000" SERVER_ADDRESS
read_input "日志级别 (debug/info/warn/error)" "debug" LOGGING_LEVEL
# ========================================
# Gateway 配置
# ========================================
print_header "Gateway 配置(可选)"
echo -n "是否配置 Gateway 服务?[y/N]: "
read configure_gateway
if [ "$configure_gateway" = "y" ] || [ "$configure_gateway" = "Y" ]; then
read_input "Gateway API 基础 URL" "https://lplan.whjhft.com/openapi" GATEWAY_BASE_URL
read_input "Gateway 应用 ID" "" GATEWAY_APP_ID
read_input "Gateway 应用密钥" "" GATEWAY_APP_SECRET "true"
read_input "Gateway 请求超时时间(秒)" "30" GATEWAY_TIMEOUT
GATEWAY_CONFIGURED="true"
else
GATEWAY_CONFIGURED="false"
fi
# ========================================
# 微信配置
# ========================================
print_header "微信配置(可选)"
echo -n "是否配置微信公众号和支付?[y/N]: "
read configure_wechat
if [ "$configure_wechat" = "y" ] || [ "$configure_wechat" = "Y" ]; then
echo ""
print_info ">>> 微信公众号配置"
read_input "公众号 AppID" "" WECHAT_OFFICIAL_ACCOUNT_APP_ID
read_input "公众号 AppSecret" "" WECHAT_OFFICIAL_ACCOUNT_APP_SECRET "true"
read_input "服务器配置 Token可选" "" WECHAT_OFFICIAL_ACCOUNT_TOKEN
read_input "消息加解密 Key可选" "" WECHAT_OFFICIAL_ACCOUNT_AES_KEY "true"
read_input "OAuth 回调 URL可选" "" WECHAT_OFFICIAL_ACCOUNT_OAUTH_REDIRECT_URL
echo ""
print_info ">>> 微信支付配置"
read_input "支付 AppID通常与公众号相同" "$WECHAT_OFFICIAL_ACCOUNT_APP_ID" WECHAT_PAYMENT_APP_ID
read_input "商户号" "" WECHAT_PAYMENT_MCH_ID
read_input "APIv3 密钥32位" "" WECHAT_PAYMENT_API_V3_KEY "true"
read_input "APIv2 密钥(可选)" "" WECHAT_PAYMENT_API_V2_KEY "true"
read_input "商户证书路径" "/app/certs/apiclient_cert.pem" WECHAT_PAYMENT_CERT_PATH
read_input "商户私钥路径" "/app/certs/apiclient_key.pem" WECHAT_PAYMENT_KEY_PATH
read_input "证书序列号" "" WECHAT_PAYMENT_SERIAL_NO
read_input "支付回调 URL" "" WECHAT_PAYMENT_NOTIFY_URL
read_input "是否启用 HTTP 调试true/false" "false" WECHAT_PAYMENT_HTTP_DEBUG
read_input "HTTP 请求超时时间" "30s" WECHAT_PAYMENT_TIMEOUT
WECHAT_CONFIGURED="true"
else
WECHAT_CONFIGURED="false"
fi
# ========================================
# 可选:对象存储配置
# ========================================
@@ -235,6 +288,49 @@ export JUNHONG_LOGGING_ACCESS_LOG_FILENAME="logs/access.log"
EOF
# 添加 Gateway 配置(如果配置了)
if [ "$GATEWAY_CONFIGURED" = "true" ]; then
cat >> "$ENV_FILE" << EOF
# ----------------------------------------------------------------------------
# Gateway 服务配置
# ----------------------------------------------------------------------------
export JUNHONG_GATEWAY_BASE_URL="$GATEWAY_BASE_URL"
export JUNHONG_GATEWAY_APP_ID="$GATEWAY_APP_ID"
export JUNHONG_GATEWAY_APP_SECRET="$GATEWAY_APP_SECRET"
export JUNHONG_GATEWAY_TIMEOUT="$GATEWAY_TIMEOUT"
EOF
fi
# 添加微信配置(如果配置了)
if [ "$WECHAT_CONFIGURED" = "true" ]; then
cat >> "$ENV_FILE" << EOF
# ----------------------------------------------------------------------------
# 微信公众号配置
# ----------------------------------------------------------------------------
export JUNHONG_WECHAT_OFFICIAL_ACCOUNT_APP_ID="$WECHAT_OFFICIAL_ACCOUNT_APP_ID"
export JUNHONG_WECHAT_OFFICIAL_ACCOUNT_APP_SECRET="$WECHAT_OFFICIAL_ACCOUNT_APP_SECRET"
export JUNHONG_WECHAT_OFFICIAL_ACCOUNT_TOKEN="$WECHAT_OFFICIAL_ACCOUNT_TOKEN"
export JUNHONG_WECHAT_OFFICIAL_ACCOUNT_AES_KEY="$WECHAT_OFFICIAL_ACCOUNT_AES_KEY"
export JUNHONG_WECHAT_OFFICIAL_ACCOUNT_OAUTH_REDIRECT_URL="$WECHAT_OFFICIAL_ACCOUNT_OAUTH_REDIRECT_URL"
# ----------------------------------------------------------------------------
# 微信支付配置
# ----------------------------------------------------------------------------
export JUNHONG_WECHAT_PAYMENT_APP_ID="$WECHAT_PAYMENT_APP_ID"
export JUNHONG_WECHAT_PAYMENT_MCH_ID="$WECHAT_PAYMENT_MCH_ID"
export JUNHONG_WECHAT_PAYMENT_API_V3_KEY="$WECHAT_PAYMENT_API_V3_KEY"
export JUNHONG_WECHAT_PAYMENT_API_V2_KEY="$WECHAT_PAYMENT_API_V2_KEY"
export JUNHONG_WECHAT_PAYMENT_CERT_PATH="$WECHAT_PAYMENT_CERT_PATH"
export JUNHONG_WECHAT_PAYMENT_KEY_PATH="$WECHAT_PAYMENT_KEY_PATH"
export JUNHONG_WECHAT_PAYMENT_SERIAL_NO="$WECHAT_PAYMENT_SERIAL_NO"
export JUNHONG_WECHAT_PAYMENT_NOTIFY_URL="$WECHAT_PAYMENT_NOTIFY_URL"
export JUNHONG_WECHAT_PAYMENT_HTTP_DEBUG="$WECHAT_PAYMENT_HTTP_DEBUG"
export JUNHONG_WECHAT_PAYMENT_TIMEOUT="$WECHAT_PAYMENT_TIMEOUT"
EOF
fi
# 添加对象存储配置(如果配置了)
if [ "$STORAGE_CONFIGURED" = "true" ]; then
cat >> "$ENV_FILE" << EOF