关于openid和access_token的问题

qq_22675299 2017-01-30 09:34:45
测试号能收到我发的消息,并且能被动回复文本消息,就是说FromUserName即openID没有错,但获取用户头像的时候(UnionID机制)返回结果
{"errcode":40003,"errmsg":"invalid openid hint: [LIS9Xa0127vr19]"}是怎么回事,
先上代码

//获取用户基本信息的地址(UnionID机制) GET
public final static String userinfo_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";
/**
* 获取用户基本信息(UnionID机制)
*/
public static JSONObject getUserinfo(String access_token,String openid){
String url = userinfo_url.replace("ACCESS_TOKEN", access_token).replace("OPENID", openid);
JSONObject jsonObject = httpsRequest(url, "GET", null);
return jsonObject;
}
就是通过这个请求得到的结果是openID无效
我的accessToken通过以下线程获取:



线程调用到的方法:
//获取AccessToken的地址 GET
public final static String access_token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
/**
* 获取全局借口调用凭证access_token
* @param appid
* @param appsecret
* @return
*/
public static AccessToken getAccessToken(String appid, String appsecret){
String url = access_token_url.replace("APPID", appid).replace("APPSECRET", appsecret);
JSONObject jsonObject = httpsRequest(url, "GET", null);

AccessToken accessToken = new AccessToken();
accessToken.setAccess_token(jsonObject.getString("access_token"));
accessToken.setExpires_in(jsonObject.getInt("expires_in"));

return accessToken;
}

这里我通过线程获取accessToken,FromUserName之前说过能被动回复消息,也是没错的,然后执行第一个给的代码getUserinfo就报 openID 无效

通过第三方的方法获取:

然后我通过网页来获取用户信息
//网页授权获取用户基本信息的地址
public final static String user_info_oauth_url = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";
/**
* 网页授权获取用户基本信息
* @return
*/
public static JSONObject getUserInfoByOAuth(String access_token,String openid){
String url = user_info_oauth_url.replace("ACCESS_TOKEN", access_token).replace("OPENID", openid);
JSONObject jsonObject = httpsRequest(url, "GET", null);
return jsonObject;

}


对应代码

没提示openID不对,说accessToken没找到,而我通过输出code,然后自己把appid和appsecret和code替换请求地址,是有 正确的Json返回信息,至于说没找到accessToken的原因是我的JsonObject为空,这里也是不明白,手动有返回,代码提交请求没得到东西

总结:
openID是不可能错的,可在测试号看到关注者的openID,是一样的,应该是线程获取的accessToken有错,导致请求时出错,但我并不知道为什么有错。

有大神帮忙看一下不
...全文
871 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_22675299 2017-01-31
  • 打赏
  • 举报
回复
是自己在web.xml里有问题,那里的appid和appsecret不对导致的错误,搞到我还看了两天。。。

3,156

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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