更新
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
/**
|
||||
* 清除微信AccessToken缓存脚本
|
||||
* 用于解决 AccessToken 失效问题
|
||||
*/
|
||||
|
||||
require __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
// 初始化应用
|
||||
$app = new think\App();
|
||||
$app->initialize();
|
||||
|
||||
echo "=== 清除微信AccessToken缓存 ===\n\n";
|
||||
|
||||
// 获取小程序配置
|
||||
$appId = \app\common\service\ConfigService::get('mnp_setting', 'app_id', '');
|
||||
|
||||
if (empty($appId)) {
|
||||
echo "✗ 错误: 未配置小程序AppID\n";
|
||||
echo "请先在后台配置小程序信息\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
echo "小程序AppID: {$appId}\n";
|
||||
|
||||
// 清除缓存
|
||||
$cacheKey = 'wx_access_token_' . $appId;
|
||||
$oldToken = cache($cacheKey);
|
||||
|
||||
if ($oldToken) {
|
||||
echo "旧Token: {$oldToken}\n";
|
||||
cache($cacheKey, null);
|
||||
echo "✓ 已清除缓存的AccessToken\n";
|
||||
} else {
|
||||
echo "✓ 缓存中没有AccessToken\n";
|
||||
}
|
||||
|
||||
// 尝试重新获取
|
||||
echo "\n=== 尝试重新获取AccessToken ===\n\n";
|
||||
|
||||
$appSecret = \app\common\service\ConfigService::get('mnp_setting', 'app_secret', '');
|
||||
|
||||
if (empty($appSecret)) {
|
||||
echo "✗ 错误: 未配置小程序AppSecret\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}";
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
||||
$response = curl_exec($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
echo "HTTP状态码: {$httpCode}\n";
|
||||
echo "响应内容: {$response}\n\n";
|
||||
|
||||
$result = json_decode($response, true);
|
||||
|
||||
if (isset($result['access_token'])) {
|
||||
echo "✓ AccessToken获取成功!\n";
|
||||
echo "Token: {$result['access_token']}\n";
|
||||
echo "有效期: {$result['expires_in']}秒\n";
|
||||
|
||||
// 缓存新Token
|
||||
cache($cacheKey, $result['access_token'], 7000);
|
||||
echo "\n✓ 已缓存新的AccessToken\n";
|
||||
|
||||
echo "\n=== 操作完成 ===\n";
|
||||
echo "现在可以重新尝试生成小程序码了\n";
|
||||
} else {
|
||||
echo "✗ AccessToken获取失败!\n";
|
||||
if (isset($result['errcode'])) {
|
||||
echo "错误码: {$result['errcode']}\n";
|
||||
echo "错误信息: {$result['errmsg']}\n\n";
|
||||
|
||||
// 常见错误提示
|
||||
switch ($result['errcode']) {
|
||||
case 40013:
|
||||
echo "提示: AppID无效,请检查配置\n";
|
||||
break;
|
||||
case 40125:
|
||||
echo "提示: AppSecret无效,请检查配置或重置AppSecret\n";
|
||||
break;
|
||||
case 40164:
|
||||
echo "提示: IP不在白名单中,请在微信公众平台添加服务器IP\n";
|
||||
break;
|
||||
default:
|
||||
echo "请参考微信官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/usability/PublicErrno.html\n";
|
||||
}
|
||||
}
|
||||
exit(1);
|
||||
}
|
||||
Reference in New Issue
Block a user