# pay v2 — pangolin1 部署 env 模板(/etc/pay-v2/pay.env)。 # # ⚠️ 本文件全是占位符,禁止填真值后提交进 git!真值一律经 Bitwarden → rbw 在 # pangolin1 上手工写入 /etc/pay-v2/pay.env(权限建议 640, root:payv2)。 # 部署脚本 deploy.sh 不会创建/覆盖这个文件——首次部署需手工准备好它。 # # viper 的 env 覆盖规则是 "." → "_" 再转大写(见 config/config.go SetEnvKeyReplacer), # 下面每个变量名后注释了它覆盖的是 config.yaml 的哪个字段。 # ── 基础服务 ──────────────────────────────────────────────────────────────── SERVER_PORT=8090 # server.port(pangolin1 上 8090,旧 USDT watcher 已下线释放) SERVER_MODE=release # server.mode(release 关 gin 调试日志) DATABASE_DRIVER=sqlite # database.driver DATABASE_DSN=/var/lib/pay-v2/pay.db # database.dsn(sqlite 文件路径,ExecStart 前需目录存在且属主可写) # ── crypto 渠道(USDT-TRC20,watch-only,不持私钥)── Bitwarden 条目建议命名 # "pay-v2 pangolin1 crypto-1" ───────────────────────────────────────────── # 收款地址(TRC20,仅地址,不涉及私钥/助记词): PANGOLIN_CRYPTO_1_ADDRESS=<占位-TRC20收款地址-走Bitwarden> # TronGrid API key:优先用账户级 _TRONGRID_KEY,缺省回退全局 TRONGRID_API_KEY # (internal/provider/crypto/crypto.go::apiKey)。单账户场景填全局这个即可, # 多账户各自限流时再加 PANGOLIN_CRYPTO_1_TRONGRID_KEY 覆盖。 TRONGRID_API_KEY=<占位-TronGrid-APIKey-走Bitwarden> # PANGOLIN_CRYPTO_1_TRONGRID_KEY=<可选-账户专属TronGrid-Key-走Bitwarden> # ── 哪吒(nezha)渠道(CNY 结算)── Bitwarden 条目建议命名 "pay-v2 pangolin1 nezha-1" ── # provider 正在另一分支开发,以下三项是其将读取的凭证 env(命名按 # CredentialEnvPrefix=PANGOLIN_NEZHA_1 推导,若合并后实际 key 名不同,以那边为准再改)。 PANGOLIN_NEZHA_1_PID=<占位-哪吒商户号-走Bitwarden> # 商户 RSA 私钥(PEM)。若 env 单行存不了原始换行,推荐把 PEM 内的真实换行替换成 # 字面 "\n" 再存一行(需 provider 侧对应做 strings.ReplaceAll(v, `\n`, "\n") 解码; # nezha provider 合并后核对其实际解析方式,当前仅占位)。 PANGOLIN_NEZHA_1_PRIVATE_KEY=<占位-商户RSA私钥PEM-走Bitwarden> # 哪吒平台 RSA 公钥(PEM,验证哪吒回调签名用),同上单行转义方式。 PANGOLIN_NEZHA_1_PLATFORM_PUBLIC_KEY=<占位-平台RSA公钥PEM-走Bitwarden> # ── 业务对接(pangolin)── Bitwarden 条目建议命名 "pay-v2 BIZ_PANGOLIN_SECRET" ── # HMAC 共享密钥,须与 pangolin-server 那侧 PAY_BIZ_SECRET 同值(见 # server/internal/httpapi 对 /v1/webhook/pay 的验签)。 BIZ_PANGOLIN_SECRET=<占位-与pangolin-server-PAY_BIZ_SECRET同值-走Bitwarden> # ── 后台守护 ──────────────────────────────────────────────────────────────── RECONCILE_ENABLED=true # reconcile.enabled(过期清理/查单对账/退款自愈/crypto孤儿扫描) QUERY_SYNC_ENABLED=true # query_sync.enabled ⚠️ 注意是 QUERY_SYNC(带下划线), # 不是 QUERYSYNC——viper 的 "." → "_" 替换对 query_sync.enabled # 展开成 QUERY_SYNC_ENABLED(已用本地 viper 用例验证过)。 # ── MOCK 渠道:pangolin1 是真实收款环境,禁止开 ───────────────────────────── # 不要在这里设置 MOCK_CHANNEL_ENABLED(留空/不写即默认 false)。一旦误设为 true 会 # 注册 fake 渠道 + 挂载 /api/v2/dev/orders/:order_no/mark-paid 这类联调专用端点。 # MOCK_CHANNEL_ENABLED=true # ← 禁止在生产取消这行注释