{"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有错,导致请求时出错,但我并不知道为什么有错。
有大神帮忙看一下不
1 个解决方案
#1
是自己在web.xml里有问题,那里的appid和appsecret不对导致的错误,搞到我还看了两天。。。
#1
是自己在web.xml里有问题,那里的appid和appsecret不对导致的错误,搞到我还看了两天。。。