jfianl weixin 怎么获取xml

用户从公众号发信息,会触发微信服务器给我的服务器发送xml,我要根据这个xml的tousername来判断是哪个公众号发送的。直接调用getInMsgXml()会报错,提示没有绑定apiconfig

波总请看,当我在公众号内发信息,第62行报错,因为我没绑定apiconfig,但我知道,微信是有发xml过来的。我是为了支持多公众号。

V$LC7DK[PDKYT$NQI$12]F9.png

评论区

JFinal

2017-04-01 21:31

检查一下 Controller 是否继承了 MsgController,否则 getInMsgXml() 会报错

此外,如果不贴出异常来,无法回复你的问题

heijie730

2017-04-03 10:40

@JFinal 波总请看

heijie730

2017-04-03 10:41

@JFinal 这个无法url挂参数来判断是哪个公众号发的。

heijie730

2017-04-03 11:51

@JFinal 调用getInMsgXml()会要求我绑定apiconfig,但我绑定apiconfig需要从xml中判断啊。这该如何是好?

JFinal

2017-04-03 18:07

@heijie730 getApiConfig() 这个方法是让拦截器进行回调的,不要在这个方法中写过多的东西 getInMsgXml() 之所以会有异常,是因为这个 getApiConfig() 方法就是为了在 getInMsgXml() 之前进行准备工作的

让 getApiConfig() 保持干净,想办法在别的方法中调用 getInMsgXml()

heijie730

2017-04-03 21:25

@JFinal 这能有什么办法呢?jfinal weixin要求我在MsgInterceptor中绑定完apiconfig再使用getInMsgXml(),可当我再公众号内发信息时,在微信发到我服务器上的参数和xml中,只能通过xml中的信息来判断是哪个公众号发的,这时候才能再绑定相应公众号的配置信息。jfinal weixin是不是不支持?因为我这个需求要让getApiConfig()返回正确的公众号参数,只能通过xml啊。

heijie730

2017-04-03 21:46

@JFinal 还有MsgInterceptor中的
// 对开发测试更加友好
if (ApiConfigKit.isDevMode()) {
inv.invoke();
} else...
这区别对待,开发时能有什么好处呢?节省性能还是什么?

JFinal

2017-04-03 21:50

@heijie730 子类覆盖掉父类中的 getInMsgXml() 即可,将其中的获取 xml 的代码照搬过来,然后去掉下面这一行:
ApiConfigKit.getApiConfig().isEncryptMessage();

JFinal

2017-04-03 21:51

@heijie730 开发模式可以向控制台输出交互信息,开发者看着交互方便开发

热门反馈

扫码入社