前言
最近进行微信授权登录,报错
❌ 信息如下
{"errcode":40125,"errmsg":"invalid appsecret, rid: 62735cd3-36d42de3-6f09796c"}
而且一开始是可以的,没有修改过代码,
1.代码中设置的微信APPsecret和微信开放平台不一致,需要您自己对照微信开放平台和代码中的appsecret, 检查修正。这个没有修改过,所以一会去微信平台去查看这个问题
这个回答不知道怎么验证:2.由于秘钥无效导致的,秘钥如果长时间不登录,会自动重置。
通过测试OK了
public static AccessTokenDTO getAccessToken(String code, String platform) {
String loginAccessTokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?";
if(platform.equals("app")) {
loginAccessTokenUrl+="appid="+appid+"&secret="+appSecret;
}else if(platform.equals("pc")) {
loginAccessTokenUrl+="appid="+web_appid+"&secret="+web_appSecret;
}
loginAccessTokenUrl+="&code="+code+"&grant_type=authorization_code";
try {
URL url = new URL(loginAccessTokenUrl);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true); // 设置该连接是可以输出的
httpURLConnection.setRequestMethod("GET"); // 设置请求方式
httpURLConnection.setRequestProperty("charset", "utf-8");
PrintWriter pw = new PrintWriter(new BufferedOutputStream(httpURLConnection.getOutputStream()));
pw.write("");// 向连接中写数据(相当于发送数据给服务器)
pw.flush();
pw.close();
BufferedReader br = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(), "utf-8"));
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) { // 读取数据
sb.append(line + "\n");
}
br.close();
AccessTokenDTO accessToken = new AccessTokenDTO();
JSONObject object = new JSONObject(sb.toString());
accessToken.setAccessToken(object.getString("access_token"));
accessToken.setRefreshToken(object.getString("refresh_token"));
accessToken.setOpenid(object.getString("openid"));
accessToken.setUnionid(object.getString("unionid"));
return accessToken;
} catch (IOException | JSONException e) {
e.printStackTrace();
}
return null;
}