fix(ip-geo): real pconline + amap sig/errors; clearer admin test failures

This commit is contained in:
kate522 committed 2026-07-25 15:31:38 +08:00
1 parent 3bb7fb0ba6
commit 62478a02fd
2 files changed
+349 -73

No files matched your search

+30 -4
View File
@@ -311,26 +311,52 @@ class ExtensionController extends ControllerBase {
$ok = !empty($result['country']) || !empty($result['province']) || !empty($result['city']);
if (!$ok) {
$detail = trim((string) ($result['detail'] ?? ''));
switch ($reason) {
case 'private_ip':
$message = __('该地址为私有/保留 IP,无法查询归属地。请换公网 IP 测试。', 'aksrt');
$message = __('该地址为私有/保留 IP(如 127.0.0.1 / 内网),无法查询。请用公网 IP 测试,例如 114.114.114.114。', 'aksrt');
break;
case 'invalid_ip':
$message = __('IP 格式无效。', 'aksrt');
break;
case 'missing_key':
$message = __('当前服务商 AppKey 未填写,请在「扩展 → IP归属地」补全凭据。', 'aksrt');
break;
case 'provider_error':
// e.g. INVALID_USER_KEY from Amap
$message = $detail !== ''
? sprintf(
/* translators: %s: provider error code/message */
__('服务商拒绝请求:%s。请检查 Key 是否开通「IP定位」且平台类型匹配(Web服务)。', 'aksrt'),
$detail
)
: __('服务商返回错误,请检查 Key 权限与配额。', 'aksrt');
break;
case 'http_error':
$message = $detail !== ''
? sprintf(
/* translators: %s: transport error */
__('无法访问归属地接口:%s。请检查服务器出站网络/防火墙。', 'aksrt'),
$detail
)
: __('无法访问归属地接口,请检查服务器出站网络。', 'aksrt');
break;
case 'provider_empty':
if (!empty($status['missing_fields'])) {
$message = sprintf(
/* translators: %s: missing config field keys */
__('当前服务商凭据不完整(缺少:%s),请先在「扩展 → IP归属地」补全配置。', 'aksrt'),
__('当前服务商凭据不完整(缺少:%s)。', 'aksrt'),
implode(', ', (array) $status['missing_fields'])
);
} else {
$message = __('服务商未返回有效归属地,请检查凭据、网络出口或换一个 IP 重试。', 'aksrt');
$message = __('服务商未返回有效归属地,请换公网 IP 或检查 Key 权限。', 'aksrt');
}
break;
case 'disabled':
$message = __('IP 归属地功能未启用。', 'aksrt');
break;
default:
$message = __('未查询到归属地信息。', 'aksrt');
$message = $detail !== '' ? $detail : __('未查询到归属地信息。', 'aksrt');
}
}