feat(channel): 微信 iLink 账号状态三态(诚实口径)

state ∈ 有效 / **被拒(需重扫)** / 未知;🔴 -14 是**被拒不是过期**,且**未知原因绝不
写成「过期」**(面板文案与错误码都如实)。三态判定为纯函数 + 三态各有用例。

⚠️ 未做(如实登记): 三态(每账号逐条三态)本片未做。
This commit is contained in:
AskaEth committed 2026-10-06 09:03:44 +08:00
1 parent f75e7a9c9b
commit 7505c46b70
8 files changed
+808 -17

No files matched your search

+5
View File
@@ -147,6 +147,9 @@ func (a *Adapter) sendNative(ctx context.Context, peer, ctxToken string, items [
return fmt.Errorf("weixin_ilink: encode sendmessage: %w", err)
}
var out sendResult
// 与读循环同一口径:先拍下本次调用所用的凭据快照,成功时才能把「已证实」记到
// 对的那份凭据上(session_status.go)。
token := a.botToken()
if err := a.doJSON(ctx, http.MethodPost, a.apiURL("/ilink/bot/sendmessage"),
bytes.NewReader(body), &out); err != nil {
return fmt.Errorf("weixin_ilink: sendmessage: %w", err)
@@ -160,6 +163,8 @@ func (a *Adapter) sendNative(ctx context.Context, peer, ctxToken string, items [
if out.Ret != 0 {
return fmt.Errorf("weixin_ilink: sendmessage ret=%d", out.Ret)
}
// 一次成功的 sendmessage 同样是「iLink 接受了这份凭据」的证据。
a.markVerified(token)
return nil
}