JFinal weixin拦截器交易跳转不生效

 用了拦截器获取到了SnsAccessTokenApi.getAuthorizeURL,后面需要获取code,再获取openID(也就是getOpenId交易),但是用了好几种跳转方式,断点之后都不跳转,而是直接进入到invoke后的action,这个是什么情况啊?

项目中需要访问SnsAccessTokenApi.getAuthorizeURL生成的URL,然后获取code,有什么办法吗?

无标题.png


评论区

要输就输给追求

2019-08-10 13:07

你这个就是属于没认真看官方文档。JFinalController里面的render和redirect这些并不是立马执行了,而是方法体执行完了再执行的。以最后一个render为准。所以你的代码只需要把inv.invoke();这句放到eles里面就可以了

猴子的花果山

2019-08-10 14:10

@要输就输给追求
if(openId==null||"".equals(openId)){
String calbackUrl=PropKit.get("domain")+"/web/getOpenId";
String url=SnsAccessTokenApi.getAuthorizeURL(PropKit.get("appId"), calbackUrl, "111",false);
inv.getController().render(url);
// inv.getController().redirect(url);
//inv.getController().redirect(PropKit.get("domain")+"/web/getOpenId");
//inv.invoke();
}else{
inv.invoke();
}

改成这样了,貌似效果还是一样的

猴子的花果山

2019-08-10 15:11

@要输就输给追求 再次看了render系列方法的说明,程序不会立即返回,这个具体是什么意思,有点没搞明白,还麻烦指导一下

热门反馈

扫码入社