jfinal-weixin如何获取微信用户授权接口的code?

G22 发布于 2015/09/23 19:06
阅读 4K+
收藏 1

@JFinal 波总您好,想跟你请教个问题:我在用jfinal-weixin开发的时候,想调用微信那边的用户授权接口,但是调用接口后,返回是没有带code,请问题是什么原因呢?我看了一下jfinal-weixin的源码,里面只有根据CODE去获取assess_token的,没有获取code的,请问要获取code的话要怎么做呢?

加载中
1
JFinal
JFinal

     jfinal 提供了一个 SnsAccessTokenApi 是用来在微信公众平台 oauth 授权成功以后,利用其返回的 code 值,再获取 sns_access_token 值的,有了这个值才可以进一步调用获取用户信息这样的api:SnsApi.getUserInfo(...)。

   关键在于使用 SnsAccessTokenApi 之前还有一个步骤,就是获取 code 值的步骤。这个 code 的获取需要向构造样一个 url 并让用户的微信端app发起请求:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect,正确填写好appId、redirect_uri、response_type、scope、state、#wechat_redirect这几个参数。

      另外更重要的一点:微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的开发者中心页配置授权回调域名。具体细节见这里:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

0
G22
G22
@JFinal   波总您好,这些配置,我都配置好了,我给你看看调用的情况:
JFinal action report -------- 2015-09-24 09:32:01 ------------------------------
Controller  : com.kington.zhfwpt.weixin.controller.WeiXinBindController.(WeiXinBindController.java:1)
Method      : index
Interceptor : com.kington.zhfwpt.shiro.ShiroInterceptor.(ShiroInterceptor.java:1)
              com.kington.zhfwpt.weixin.sdk.jfinal.BindInterceptor.(BindInterceptor.java:1)
--------------------------------------------------------------------------------
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxed7fb748788ed879&scope=snsapi_base&response_type=code&redirect_uri=http%3A%2F%2Fwx.kington.com.cn%2FwxBind&state=success#wechat_redirect
code=null
Sql: SELECT ID,NAME FROM SYSTEM_DICT WHERE STATUS_ID=1 AND VERSION=? AND TYPE_CODE=?
Sql: SELECT ID,NAME FROM SYSTEM_DICT WHERE STATUS_ID=1 AND VERSION=? AND TYPE_CODE=?


JFinal action report -------- 2015-09-24 09:32:01 ------------------------------
Controller  : com.kington.zhfwpt.weixin.controller.WeixinMsgController.(WeixinMsgController.java:1)
Method      : index
Interceptor : com.kington.zhfwpt.shiro.ShiroInterceptor.(ShiroInterceptor.java:1)
              com.jfinal.weixin.sdk.jfinal.MsgInterceptor.(MsgInterceptor.java:1)
Parameter   : signature=d39c3c2dcdeccf1623fc33e672f28180e4543098  timestamp=1443058317  nonce=1539379727  
--------------------------------------------------------------------------------
接收消息:
<xml><ToUserName><![CDATA[gh_496948af3ea2]]></ToUserName>
<FromUserName><![CDATA[oi5pRs3dO-5r2uP5H8udGeSe0mRA]]></FromUserName>
<CreateTime>1443058317</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[VIEW]]></Event>
<EventKey><![CDATA[http://wx.kington.com.cn/wxBind]]></EventKey>
</xml>


发送消息:
<xml>
<ToUserName><![CDATA[oi5pRs3dO-5r2uP5H8udGeSe0mRA]]></ToUserName>
<FromUserName><![CDATA[gh_496948af3ea2]]></FromUserName>
<CreateTime>1443058321</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[processInMenuEvent() 方法测试成功]]></Content>
</xml>
--------------------------------------------------------------------------------




JFinal action report -------- 2015-09-24 09:32:02 ------------------------------
Controller  : com.kington.zhfwpt.weixin.controller.WeixinMsgController.(WeixinMsgController.java:1)
Method      : index
Interceptor : com.kington.zhfwpt.shiro.ShiroInterceptor.(ShiroInterceptor.java:1)
              com.jfinal.weixin.sdk.jfinal.MsgInterceptor.(MsgInterceptor.java:1)
Parameter   : signature=d39c3c2dcdeccf1623fc33e672f28180e4543098  timestamp=1443058317  nonce=1539379727  
--------------------------------------------------------------------------------
接收消息:
<xml><ToUserName><![CDATA[gh_496948af3ea2]]></ToUserName>
<FromUserName><![CDATA[oi5pRs3dO-5r2uP5H8udGeSe0mRA]]></FromUserName>
<CreateTime>1443058317</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[VIEW]]></Event>
<EventKey><![CDATA[http://wx.kington.com.cn/wxBind]]></EventKey>
</xml>


发送消息:
<xml>
<ToUserName><![CDATA[oi5pRs3dO-5r2uP5H8udGeSe0mRA]]></ToUserName>
<FromUserName><![CDATA[gh_496948af3ea2]]></FromUserName>
<CreateTime>1443058322</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[processInMenuEvent() 方法测试成功]]></Content>
</xml>
--------------------------------------------------------------------------------

这是我在微信测试号上面的测试。http://wx.kington.com.cn/wxBind这个就是我要访问的地址,这个controller有个拦截器,里面会根据参数code判断,如果有这个参数就放行,如果没有就调用微信的接口
0
G22
G22
我在controller里面输出获取code参数的时候,还是为null
JFinal
JFinal
微信平台回调你的url 时,code 值总是null,可能是配置不对,也可能是测试号无法获取 code,再多试试
JFinal
JFinal
公众平台官网中的开发者中心页配置授权回调域名,这个配置了没?
0
G22
G22
@JFinal  波总,CODE可以获取到了,原来发送方式有问题。现在我还有一个问题,如果我想用户点击菜单的时候,判断用户有没有身份验证,如果没有验证,我想发一条消息到微信上,请问如何处理?我看JFINAL-WEIXIN里的WeixinMsgController里面都根据用户的输入来响应的
狮子座lq
你好,我 想问下你如何获取code的
返回顶部
顶部