jfinal weixin 怎么获取openid ?

JFinal action report -------- 2017-04-11 09:23:10 ------------------------------

Url         : POST /msg

Controller  : com.---------.weixin.controller.WeixinMsgController.(WeixinMsgController.java:1)

Method      : index

Interceptor : com.jfinal.weixin.sdk.jfinal.MsgInterceptor.(MsgInterceptor.java:1)

Parameter   : signature=a55652240e735f0093ab3277060c47b5f0a2db73  timestamp=1491873797  nonce=1126344499  openid=of3qYw5_exhhvXajDXVuxTeBmE38  




上面是 WeixniMsgController的访问信息,访问到index方法,我在WeixniMsgController上加拦截器,报错信息

[ERROR]-[Thread: http-apr-80-exec-6]-[com.jfinal.core.ActionHandler.handle()]: /msg?signature=4064c1752f5736f24f8d50f5958a66d965212c5c&timestamp=1491875000&nonce=1988320260&openid=of3qYw5_exhhvXajDXVuxTeBmE38

java.lang.IllegalStateException: 需要事先使用 ApiConfigKit.setThreadLocalApiConfig(apiConfig) 将 ApiConfig对象存入,才可以调用 ApiConfigKit.getApiConfig() 方法

at com.jfinal.weixin.sdk.api.ApiConfigKit.getApiConfig(ApiConfigKit.java:39)


现在就是想获取openid在其他自己定义的控制器里要用到这个值,怎么做。。


评论区

要输就输给追求

2017-04-11 09:57

微信服务器请求的是com.jfinal.weixin.sdk.jfinal.MsgController.index方法,调用其它方法就是在这个index方法里面判断调用的,所以应该给这个方法加拦截器。源码里面也说了,你可以覆盖这个index方法,但这个index方法现有的MsgInterceptor拦截器会失效!你看着改吧

JFinal

2017-04-11 10:12

inMsg.getFromUser() 就是 openId 了

Dreamlu

2017-04-11 10:15

方向错了,SDK里面非demo包的代码请不要动。获取openId,第一:xml 消息中得fromUserName就是用户的openid,另外有Oauth网页授权获取openId详见:SnsAccessTokenApi

红尘

2017-04-11 11:24

@JFinal 好的好的,搞定谢谢大牛

红尘

2017-04-11 11:24

@Dreamlu 好的好的,搞定啦,谢谢大牛

金色的鱼钩

2018-01-01 12:09

@红尘 怎么搞定的?发出来看看

songyifei

2018-12-18 15:42

{"errcode":40003,"errmsg":"invalid openid hint: [MRawMA06935658]"}

热门反馈

扫码入社