第三方微信登陆返回40001错误,component_access_token是刚刚获取的。
{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest, rid: 641d17c5-0e624650-16b92885"}
是否是因为该APPID 没有授权? 我添加了开发小程序了,但这个小程序没有授权。是否是这个原因造成?
代码如下
/**
* 代替小程序实现微信用户登陆,获取session_key openid
* @param code
* @param appId
* @return
*/
public static JSONObject getSessionKeyOrOpenId(String code,String appId) {
String componentAccessToken = WechatComponentCache.getAccessToken();
String requestUrl = "https://api.weixin.qq.com/sns/component/jscode2session?component_access_token=" + componentAccessToken;
Map<String, String> requestUrlParam = new HashMap<>();
//小程序appId
requestUrlParam.put("appid", appId);
//小程序secret
requestUrlParam.put("component_appid", THIRD_PARTY_APP_ID);
//小程序端返回的code
requestUrlParam.put("js_code", code);
//默认参数
requestUrlParam.put("grant_type", "authorization_code");
//发送post请求读取调用微信接口获取openid用户唯一标识
JSONObject jsonObject = JSON.parseObject(HttpClientUtil.doGet(requestUrl, requestUrlParam));
checkErrCode(jsonObject);
return jsonObject;
}
先检查下参数,然后看下权限