feat: 登录注入 MQTT 凭证、官方智能体平台化、会话ID扩容、微信支付分账/认证迁移

This commit is contained in:
Pine
2026-09-03 12:40:05 +08:00
parent 6bac6b5c80
commit 3fe6bf6dbc
32 changed files with 2637 additions and 144 deletions
+43
View File
@@ -26,6 +26,49 @@ 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 —— 服务商 AppIDPERSONAL_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(建表+搬数据+行数校验)