Skip to content

会话存档解密的priKey和事件回调的aesKey冲突? #2678

Closed
@jinxiaoyi

Description

@jinxiaoyi

简要描述

我今天从版本4.2.0升级到4.3.0的时候.改造会话存档的时候. 发现一个问题.

模块版本情况

  • WxJava 模块名: weixin-java-cp
  • WxJava 版本号: 4.3.0

详细描述

我的系统是用agentId 来区分应用的. 我给会话存档自定义了一个agentId来使用.
比如 agentId=100000 自建应用
agentId=900000 会话存档
agentId=900001 微信客服
我看了下源码. 在 WxCpMsgAuditServiceImpl ::decryptChatData() 方法中
String priKey = this.cpService.getWxCpConfigStorage().getAesKey();
可以看出会话存档的prikey是存储在aesKey里面的.
但是根据https://developer.work.weixin.qq.com/document/path/94670 会话存档是可以配置回调设置的. (自建应用.微信客服都可以配置回调事件)
image
如果按照应用隔离的话. 是不是2个值都使用了aesKey字段呢. 是否考虑新增一个字段呢?

虽然我都可以使用100000来接收回调请求(这样只使用了自建应用100000的aeskey). 使用900000来处理逻辑变向解决这个问题. 但是这样所有的回调都配置到自建应用上面去了. 感觉不是很好, 我有考虑每个agent应用 都有自己对应的 WxCpMessageRouter类. 物理隔离下.

同时我还发现微信客服的回调信息. 有一个token字段. 在WxCpXmlMessage 没有对应字段的.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions