Skip to content

Cấu hình

1. Biến môi trường

Nguồn: EnvironmentKeys trong @nx/core/src/common/environments.ts + @nx/mq-pay/src/common/environments.ts.

Core runtime

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_PORTnumber3000Cổng HTTP listen
APP_ENV_HOSTstring0.0.0.0Địa chỉ bind
APP_ENV_BASE_PATHstring/v1/api/paymentTiền tố route
APP_ENV_NODE_IDnumberSnowflake worker ID — 4 (FULL) / 8 (API) / 91+ (WORKER)
APP_ENV_LOG_LEVELinfo|debug|warn|errorinfo
APP_ENV_NODE_ENVstringdevelopmentdotenv-flow loader
RUN_MODEmigrate|startupstartup kích hoạt setup MQ-Pay component; non-startup bỏ qua MQ-Pay (ví dụ trong migrations)

Triển khai theo Mode

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_MQ_PAY_MODEFULL|API|WORKERFULLĐiều khiển đăng ký controller + worker. Xem Kiến trúc §3

Database

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_DB_URLstringURL kết nối PostgreSQL
APP_ENV_DB_POOL_MAXnumber10

Redis (BullMQ + cache)

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_REDIS_HOSTstringBullMQ yêu cầu Redis (khi MQ-Pay được kích hoạt)
APP_ENV_REDIS_PORTnumber6379
APP_ENV_REDIS_PASSWORDstring
APP_ENV_REDIS_DBnumber0
APP_ENV_WEBSOCKET_REDIS_MODESINGLE|CLUSTERSINGLEMode Redis cho WS emitter

Mã hóa

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_APPLICATION_SECRETstringKhóa AES-256-GCM cho CryptoUtility; phải khớp giữa tất cả các pod

Xác thực

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_JWKS_URLurlEndpoint JWKS của identity service

2. Feature Flags

FlagLưu trữMặc địnhMô tả
Provider enableConfiguration.tValuetrueCờ enable theo từng nhà cung cấp (trong JSON config đã mã hóa)
Provider enableControllerConfiguration.tValuetrueCó đăng ký HTTP controller của nhà cung cấp hay không
Provider isProductionConfiguration.tValuefalseChuyển đổi giữa URL sandbox và prod của VN Pay

3. Dữ liệu Seed

3 migration process trong src/migrations/processes/. Chạy khi bootstrap.

FilePhạm viGhi chú
payment-0001-seed-vnpay-qr-mms-configuration.tsCấu hình nhà cung cấp VNPAY QR MMSMã hóa { enable, isDefault, enableController, appId: 'MERCHANT', masterMerchantCode: 'A000000775', isProduction: false } và lưu trong Configuration (code: VNPAY_QR_MMS, group: INTEGRATION, environment: DEVELOPMENT)
payment-0002-seed-vnpay-phone-pos-configuration.tsCấu hình nhà cung cấp VNPAY PhonePOSMã hóa { enable, isDefault: false, enableController, isProduction: false } và lưu tương tự
payment-0003-seed-permissions.tsToàn bộ PaymentPermissionsalwaysRun: true — chạy lại trên mỗi migration. Tổng hợp WebhookConfigPermissions (8 mã CRUD) + 5 bộ từ @nx/mq-pay (Transaction, TransactionItem, PaymentAttempt, PaymentResult, PaymentOperation)

Credential theo từng merchant KHÔNG được seed — chúng được merchant tạo khi onboarding qua Configuration API hoặc admin UI.

4. Cách payment dùng bảng Configuration

Loại ConfigurationCodeGroupMã hóaNguồn
Nhà cung cấp VNPAY QR MMSVNPAY_QR_MMSINTEGRATIONtValue (AES-256-GCM)seed payment-0001
Nhà cung cấp VNPAY PhonePOSVNPAY_PHONE_POSINTEGRATIONtValue (AES-256-GCM)seed payment-0002
Credential thanh toán theo merchantcode per-merchantINTEGRATION, principalType=MERCHANT, principalId=<merchantId>credential (AES-256-GCM)runtime qua getPaymentCredential

getPaymentCredential truy vấn bảng trực tiếp (bỏ qua CRUD repo) vì cột credential được ẩn khỏi các thao tác đọc CRUD chuẩn.

5. Thứ tự Boot

6. Trang liên quan

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.