invalid credential, access_token is invalid or not latest hint(微信 上传图片返回 error)

Posted 死生之外,皆是闲事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了invalid credential, access_token is invalid or not latest hint(微信 上传图片返回 error)相关的知识,希望对你有一定的参考价值。

{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [3G1y5a0106vr61!]"}

这种情况跟这个库没有直接关系。
请检查一下是否有别的地方同时请求了access token,导致微信服务器发放了新的access token给别人。尤其是dev环境

 

下载到本地的文件size很小,只有100来字节,(

eyJlcnJjb2RlIjo0MDAwMSwiZXJybXNnIjoiaW52YWxpZCBjcmVkZW50aWFsLCBhY2Nlc3NfdG9rZW4gaXMgaW52YWxpZCBvciBub3QgbGF0ZXN0IGhpbnQ6IFszRzF5NWEwMTA2dnI2MSFdIn0=

方法: 

var str = "eyJlcnJjb2RlIjo0MDAwMSwiZXJybXNnIjoiaW52YWxpZCBjcmVkZW50aWFsLCBhY2Nlc3NfdG9rZW4gaXMgaW52YWxpZCBvciBub3QgbGF0ZXN0IGhpbnQ6IFszRzF5NWEwMTA2dnI2MSFdIn0=";
byte[] imageBytes = Convert.FromBase64String(str);
string str1 = System.Text.Encoding.Default.GetString(imageBytes);

转换成字符串.

 

是JSON字符串:
  {"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [3G1y5a0106vr61!]"}
看了下错误code,是access_token过期。

原因: 


但是官网里说 token默认是7200秒过期,为啥那么快?结果后来百度到,如果有第二地方也请求同一个token的话,那么第一个token会在5分钟之内过期。这也就说明了,为什么在搭建好第二个环境的时候,老环境就出现了这种问题。因为这两个环境用的是同一个AppID和AppSecret来取得的
access_token,而这个access_token的取得并不是在服务器启动的时候,而且是在需要调用接口的画面初期化的时候去取得的。把取得的token放在s()全局缓存变量中,3600秒过期,方法是:

  $token = s("access_token");
  if($token){
  //重新取得token;
  }
  return $token;

所以就一直使用过期的token;一旦token过期,就无法调用js接口了。














以上是关于invalid credential, access_token is invalid or not latest hint(微信 上传图片返回 error)的主要内容,如果未能解决你的问题,请参考以下文章

PlayGames ERROR_INVALID_CREDENTIAL

使用 Steam OmniAuth gem 连接 Steam 的 OpenId 会出现“invalid_credentials”错误

“PayU”Android 集成中的 INVALID_USER_CREDENTIALS/JSON_EXCEPTION

登录后带有 Spring 'Invalid credentials' 的 Keycloak

jupyter 登陆的时候 Invalid credentials报错

invalid credential, access_token is invalid or not latest hint(微信 上传图片返回 error)