# 微信小程序配置(真实微信登录) # 复制本文件为 server/.env 并填入真实值;或直接在部署环境设置环境变量。 # 获取方式:微信公众平台 mp.weixin.qq.com → 开发 → 开发管理 → 开发设置 → AppID / AppSecret WX_APPID=你的小程序AppID WX_SECRET=你的小程序AppSecret # ── 微信支付 V3(算力充值,app/pay 子应用)──────────────────────────── # 商户平台 pay.weixin.qq.com 获取;凭据只放部署环境 .env,勿提交 PINEAGENTS_WECHATPAY_MCHID= PINEAGENTS_WECHATPAY_CERT_SERIAL_NO= PINEAGENTS_WECHATPAY_APIV3_KEY= # 商户 API 证书私钥路径(默认 serverdata/keys/wechatpay/apiclient_key.pem) PINEAGENTS_WECHATPAY_PRIVATE_KEY_PATH= # 平台公钥(可选,公钥模式时配置);否则平台证书自动更新落盘 PINEAGENTS_WECHATPAY_PUBLIC_KEY_PATH= # 支付回调地址:须为微信可达的公网 HTTPS PINEAGENTS_WECHATPAY_NOTIFY_URL=https://opc.pinesound.cn/opc/pay/notify # Native 扫码用 appid(公众号/开放平台,须绑定到该商户号);空回退开放平台/小程序 appid PINEAGENTS_WECHATPAY_NATIVE_APPID= # 小程序 JSAPI 用 appid;空回退 PINEAGENTS_WECHAT_APPID PINEAGENTS_WECHATPAY_JSAPI_APPID= # 充值套餐兜底 JSON([{id,amount(元),bonus(赠送元),label}]);DB system_configs 的 recharge_packages 优先 PINEAGENTS_WECHATPAY_PACKAGES=[{"id":"p10","amount":10,"bonus":0,"label":"10 元"},{"id":"p50","amount":50,"bonus":5,"label":"50 元"},{"id":"p100","amount":100,"bonus":15,"label":"100 元"}] # 自由金额范围(元)与订单有效期(分钟) PINEAGENTS_RECHARGE_MIN_YUAN=1 PINEAGENTS_RECHARGE_MAX_YUAN=5000 PINEAGENTS_RECHARGE_EXPIRE_MINUTES=15 # ── 微信支付【服务商】分账 / 资金托管配置(OPC 收款认证)───────────────── # ⚠️ 与上方直连商户配置并存:收单走直连商户号,分账/进件用服务商商户号; # 分账功能以本段为开关(SP_MCHID + 服务商证书/APIv3 + 回调地址齐备才启用 profitsharing_enabled())。 # ⚠️ 开通前提:平台主体需有营业执照,在微信支付商户平台完成「服务商入驻」+ # 「服务商分账」产品开通 + 绑定服务商 AppID + 配置分账回调(无需 ICP/EDI)。 # ⚠️ 关键:服务商商户号通常 ≠ 直连商户号,是两个独立商户号,**必须为服务商单独配置 # API 证书/序列号/APIv3 密钥**(下方 SP_* 证书项),否则分账/进件签名失败(SIGN_ERROR)。 # # PINEAGENTS_WX_SP_MCHID —— 服务商商户号(10 位数字,sp_mchid,发起分账/进件的请求主体) # 在哪里获取:微信支付商户平台 pay.weixin.qq.com → 登录服务商账户 → 「商户信息」→ 服务商商户号 PINEAGENTS_WX_SP_MCHID= # PINEAGENTS_WX_SP_APPID —— 服务商 AppID(PERSONAL_OPENID 个人分账接收方的 openid 归属该 AppID; # 分账接口的 appid 参数也用它) # 在哪里获取:微信公众平台 mp.weixin.qq.com → 小程序/公众号 → 「开发」→「开发管理」→ AppID; # 注意:该 AppID 需在服务商后台「AppID 授权」中完成与服务商商户号的绑定 PINEAGENTS_WX_SP_APPID= # PINEAGENTS_WX_SP_CERT_SERIAL_NO —— 服务商 API 证书序列号(APIv3 请求签名头 Wechatpay-Serial) # 在哪里获取:微信支付服务商商户平台 pay.weixin.qq.com/partner → 「账户中心>API安全>API证书」 # → 查看证书序列号(形如 15DF0640...) PINEAGENTS_WX_SP_CERT_SERIAL_NO= # PINEAGENTS_WX_SP_PRIVATE_KEY_PATH —— 服务商 API 私钥 apiclient_key.pem 落盘路径 # 在哪里获取:服务商商户平台「API安全>API证书」→ 下载证书,解压得 apiclient_key.pem, # 上传到服务器(如 serverdata/keys/wechat_certs/sp_certs/apiclient_key.pem) PINEAGENTS_WX_SP_PRIVATE_KEY_PATH=serverdata/keys/wechat_certs/sp_certs/apiclient_key.pem # PINEAGENTS_WX_SP_APIV3_KEY —— 服务商 APIv3 密钥(32 位;回调报文解密用,勿与直连商户相同) # 在哪里获取:服务商商户平台「账户中心>API安全>APIv3密钥」→ 设置/重置后保存 PINEAGENTS_WX_SP_APIV3_KEY= # PINEAGENTS_WX_SP_CERT_DIR —— 服务商平台证书/公钥自动更新落盘目录(运行时数据) # 在哪里获取:自行指定目录(如 serverdata/keys/wechat_certs/sp_certs),首次请求自动下载 PINEAGENTS_WX_SP_CERT_DIR=serverdata/keys/wechat_certs/sp_certs # PINEAGENTS_WX_SP_PUBLIC_KEY_PATH / _ID —— 服务商公钥模式(可选,二选一) # 新服务商商户启用「微信支付公钥」模式时配置 pub_key.pem 与 PUB_KEY_ID(在 API安全>公钥 获取); # 未配置则走平台证书自动更新(推荐,无需人工维护) PINEAGENTS_WX_SP_PUBLIC_KEY_PATH= PINEAGENTS_WX_SP_PUBLIC_KEY_ID= # PINEAGENTS_WX_SPLIT_NOTIFY_URL —— 分账结果回调通知地址(必须是微信可达的公网 HTTPS) # 在哪里获取:平台自己的回调 URL(本项目为 https://opc.pinesound.cn/opc/pay/profitsharing/notify), # 并到微信商户平台 → 服务商分账 → 「回调设置」配置相同的地址,接收分账结果通知 PINEAGENTS_WX_SPLIT_NOTIFY_URL=https://opc.pinesound.cn/opc/pay/profitsharing/notify # PINEAGENTS_WX_SPLIT_COMMISSION_RATE —— 平台佣金比例(分账给服务商商户号的部分,默认 0.05=5%) # 在哪里获取:平台自身运营策略,需与 settlement_service 的 COMMISSION_RATE 保持一致 PINEAGENTS_WX_SPLIT_COMMISSION_RATE=0.05 # ---- 数据库(SQLite→MySQL 切换;未配置默认 serverdata/data/app.db)---- # 示例:mysql+asyncmy://user:pass@192.168.1.3:8091/opc?charset=utf8mb4 # 首次迁移:uv run python scripts/migrate_sqlite_to_mysql.py(建表+搬数据+行数校验) PINEAGENTS_DEMO_DATABASE_URL= # ---- 桌面端版本管理(/desktop-updates/*)---- # 桌面端更新源对外地址前缀(如 https://opc.pinesound.cn),用于生成 manifest 里的绝对下载 URL; # 留空则回退请求 Host。 PUBLIC_BASE_URL= # minisign 签名公钥(与桌面端 tauri.conf.json plugins.updater.pubkey 一致)。 # 配置后,admin 上传 .sig 时校验签名 key id 是否匹配,防止混入非本机私钥签名的产物。 DESKTOP_UPDATER_PUBKEY=