This commit is contained in:
@@ -13,12 +13,18 @@ version: '3.8'
|
||||
#
|
||||
# 必填配置(缺失时服务无法启动):
|
||||
# - JUNHONG_DATABASE_HOST
|
||||
# - JUNHONG_DATABASE_PORT
|
||||
# - JUNHONG_DATABASE_PORT
|
||||
# - JUNHONG_DATABASE_USER
|
||||
# - JUNHONG_DATABASE_PASSWORD
|
||||
# - 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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -162,14 +162,67 @@ 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
|
||||
|
||||
# ========================================
|
||||
# 可选:对象存储配置
|
||||
# ========================================
|
||||
print_header "对象存储配置(可选)"
|
||||
|
||||
|
||||
echo -n "是否配置对象存储?[y/N]: "
|
||||
read configure_storage
|
||||
|
||||
|
||||
if [ "$configure_storage" = "y" ] || [ "$configure_storage" = "Y" ]; then
|
||||
read_input "S3 端点" "" STORAGE_S3_ENDPOINT
|
||||
read_input "S3 区域" "" STORAGE_S3_REGION
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user