微信公众号开发,“网页授权获取用户基本信息”问题

biaoshi48 2018-02-27 02:44:20
官方文档如下:

我的理解是,在funa()方法中重定向到微信,并带上redirect_uri,这时微信会返回到b()中,b()同时接一个code参数,使用code去请求微信得到一个openid,b()方法大致如下:


但是,假如我有100个b()方法,每个里面都有if (code != null) 的判断,显示太low,请问大佬有没有好的解决办法
...全文
798 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxh198841 2018-03-01
  • 打赏
  • 举报
回复
引用 10 楼 biaoshi48 的回复:
[quote=引用 9 楼 zxh198841 的回复:] [quote=引用 8 楼 biaoshi48 的回复:] [quote=引用 5 楼 zxh198841 的回复:] 可以加个方法把基础的判断处理下,然后在调用需要的方法,这样觉得怎样
这些多个if也只是为了拿一个openid,没有openid的话,我就没有必要去数据库中查数据了。但接口是在互联网中的,任何人都可以请求的,我想在业务代码里面做的是只处理业务,不判断是否有openid。[/quote] 那在调用方法以后在加一个通用类来统一处理,可以? [/quote] 既然业务类只想处理业务不想判断,听别人说可以使用springmvc的拦截器,我在了解中。[/quote] 拦截器那是可以的,直接获取调用的请求以后,可以在里面对数据进行一些判断,,都没往这个上面考虑
biaoshi48 2018-03-01
  • 打赏
  • 举报
回复
引用 16 楼 sitaiji4105 的回复:
封装一下就好了
就是想找一个思路,已处理好了,多谢回复
biaoshi48 2018-03-01
  • 打赏
  • 举报
回复
问题已解决,我已将自己的解决问题的过程记录成博客了。希望对后来者有用。博客地址:https://my.oschina.net/valuetodays/blog/1626061 分给谁都无所谓,主要是你们帮我解决了问题,十分感谢大家。此帖已结。
biaoshi48 2018-02-28
  • 打赏
  • 举报
回复
引用 7 楼 Bestprotect 的回复:
那你就用StringUtils.isBlank(code);
但是我想要的结果是,只在代码里做业务处理,不负责处理有没有openid,代码里只处理有openid的情况
biaoshi48 2018-02-28
  • 打赏
  • 举报
回复
引用 11 楼 aowei241 的回复:
可以试着用拦截器
你的思路是对的。
biaoshi48 2018-02-28
  • 打赏
  • 举报
回复
引用 12 楼 maradona1984 的回复:
做一个方法拿openid即可,需要拿openid的方法,就重定向到那个地址,进行oauth2认证,认证完再跳回去
多谢,已使用springmvc的拦截器处理好了。
maradona1984 2018-02-28
  • 打赏
  • 举报
回复
做一个方法拿openid即可,需要拿openid的方法,就重定向到那个地址,进行oauth2认证,认证完再跳回去
sitaiji4105 2018-02-28
  • 打赏
  • 举报
回复
封装一下就好了
卡卡2019 2018-02-27
  • 打赏
  • 举报
回复
可以试着用拦截器
biaoshi48 2018-02-27
  • 打赏
  • 举报
回复
引用 9 楼 zxh198841 的回复:
[quote=引用 8 楼 biaoshi48 的回复:] [quote=引用 5 楼 zxh198841 的回复:] 可以加个方法把基础的判断处理下,然后在调用需要的方法,这样觉得怎样
这些多个if也只是为了拿一个openid,没有openid的话,我就没有必要去数据库中查数据了。但接口是在互联网中的,任何人都可以请求的,我想在业务代码里面做的是只处理业务,不判断是否有openid。[/quote] 那在调用方法以后在加一个通用类来统一处理,可以? [/quote] 既然业务类只想处理业务不想判断,听别人说可以使用springmvc的拦截器,我在了解中。
zxh198841 2018-02-27
  • 打赏
  • 举报
回复
引用 8 楼 biaoshi48 的回复:
[quote=引用 5 楼 zxh198841 的回复:] 可以加个方法把基础的判断处理下,然后在调用需要的方法,这样觉得怎样
这些多个if也只是为了拿一个openid,没有openid的话,我就没有必要去数据库中查数据了。但接口是在互联网中的,任何人都可以请求的,我想在业务代码里面做的是只处理业务,不判断是否有openid。[/quote] 那在调用方法以后在加一个通用类来统一处理,可以?
biaoshi48 2018-02-27
  • 打赏
  • 举报
回复
引用 5 楼 zxh198841 的回复:
可以加个方法把基础的判断处理下,然后在调用需要的方法,这样觉得怎样
这些多个if也只是为了拿一个openid,没有openid的话,我就没有必要去数据库中查数据了。但接口是在互联网中的,任何人都可以请求的,我想在业务代码里面做的是只处理业务,不判断是否有openid。
Bestprotect 2018-02-27
  • 打赏
  • 举报
回复
那你就用StringUtils.isBlank(code);
oO临时工Oo 2018-02-27
  • 打赏
  • 举报
回复
引用 4 楼 biaoshi48 的回复:
[quote=引用 3 楼 trocp 的回复:] 我觉得得没什么不好的。简单明了,新手都能看得懂的代码就是好代码。 至于low不low其实与代码本身无关,与整个系统的业务逻辑或业务架构有关。
说的有道理。但是感觉我的这种写法太不好了,再者企业级代码写成这样,怎么也说不过去啊。[/quote] 听谁说的企业级代码,代码还分什么企业级。 只有企业级架构,企业级应用,没有企业级代码。 如果这个if(xxxx == null)变成了多行、几十上百行业务逻辑的代码,且业务逻辑可复用,那么才可以考虑抽象和封装。 一个简单的if(xxxx == null)的判断,就不要太纠结。
zxh198841 2018-02-27
  • 打赏
  • 举报
回复
可以加个方法把基础的判断处理下,然后在调用需要的方法,这样觉得怎样
biaoshi48 2018-02-27
  • 打赏
  • 举报
回复
引用 3 楼 trocp 的回复:
我觉得得没什么不好的。简单明了,新手都能看得懂的代码就是好代码。 至于low不low其实与代码本身无关,与整个系统的业务逻辑或业务架构有关。
说的有道理。但是感觉我的这种写法太不好了,再者企业级代码写成这样,怎么也说不过去啊。
biaoshi48 2018-02-27
  • 打赏
  • 举报
回复
引用 1 楼 u012925114 的回复:
怎么会有100个b()方法?
b()方法即是我的业务方法,可能有10个模块,每个模块各有10个方法。 我描述地不太清,见谅。
oO临时工Oo 2018-02-27
  • 打赏
  • 举报
回复
我觉得得没什么不好的。简单明了,新手都能看得懂的代码就是好代码。 至于low不low其实与代码本身无关,与整个系统的业务逻辑或业务架构有关。
不知生死 2018-02-27
  • 打赏
  • 举报
回复
怎么会有100个b()方法?

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧