"""会话存档 SDK 连通性探针 —— 上 worker 前,在【云服务器】单独验证整条链路是否打通。 在 /opt/shaguabijia-app-server 下跑: .venv/bin/python scripts/wx_finance_probe.py 依次验证:加载 .so → NewSdk/Init(corpid+存档Secret+可信IP)→ GetChatData(0)→ 试解第一条。 只读、不写任何比价信号。任一步报错都会明确指出卡在哪(便于逐项排:.so 缺依赖 / Init 失败 / 可信IP 没放行 / 私钥不匹配)。全绿了再把 WX_FINANCE_ENABLED 置 true 上 worker。 """ from __future__ import annotations from pathlib import Path from app.core.config import settings from app.integrations.wx_finance_sdk import WxFinanceSdk def main() -> None: print(f"[cfg] sdk_path = {settings.WX_FINANCE_SDK_PATH}") print(f"[cfg] corpid = {settings.WX_KF_CORP_ID}") print(f"[cfg] secret_set = {bool(settings.WX_FINANCE_SECRET)}") print(f"[cfg] privkey = {settings.WX_FINANCE_PRIVATE_KEY_PATH}") sdk = WxFinanceSdk( settings.WX_FINANCE_SDK_PATH, settings.WX_KF_CORP_ID, settings.WX_FINANCE_SECRET, Path(settings.WX_FINANCE_PRIVATE_KEY_PATH).read_bytes(), ) print("[1] 加载 .so + Init 成功") msgs = sdk.get_chat_data(0, limit=100) print(f"[2] GetChatData(0) 成功, 拉到 {len(msgs)} 条") if msgs: first = msgs[0] print(f" 第一条 seq={first.get('seq')} publickey_ver={first.get('publickey_ver')}") plain = sdk.decrypt(first["encrypt_random_key"], first["encrypt_chat_msg"]) print(f"[3] 解密成功, msgtype={plain.get('msgtype')} from={plain.get('from')}") else: print("[3] 暂无历史消息(先让用户加接收成员好友、发条消息, 再跑一次)") sdk.close() print("探针完成:链路全通 ✓") if __name__ == "__main__": main()