From c87ef77e8a3637747ae1be6df93281f36c51dd7a Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 1 Aug 2026 22:38:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E6=9E=90=E9=98=BF=E9=87=8C?= =?UTF-8?q?=E4=BA=91=E6=9F=A5=E8=AF=A2=E7=BB=93=E6=9E=9C=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- src/AKSRT/Identity/Provider/AliyunProvider.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/AKSRT/Identity/Provider/AliyunProvider.php b/src/AKSRT/Identity/Provider/AliyunProvider.php index ef06068c..cf86db16 100644 --- a/src/AKSRT/Identity/Provider/AliyunProvider.php +++ b/src/AKSRT/Identity/Provider/AliyunProvider.php @@ -88,16 +88,18 @@ final class AliyunProvider implements ProviderInterface { if ($code !== '' && $code !== '200') { return ProviderResult::failed($code, sanitize_text_field((string) ($response['Message'] ?? ''))); } - $passed = $response['ResultObject']['Passed'] ?? $response['Passed'] ?? null; - $success = $response['ResultObject']['Success'] ?? $response['Success'] ?? null; - if ((string) ($response['Code'] ?? '') === '200' && ($success === true || $success === 'True') && $passed === 'T') { + $object = $this->normalize_result_object($response['ResultObject'] ?? []); + $passed = $object['Passed'] ?? $object['passed'] ?? $response['Passed'] ?? null; + $success = $object['Success'] ?? $object['success'] ?? $response['Success'] ?? null; + if ((string) ($response['Code'] ?? '') === '200' && ($success === true || $success === 'True' || $success === 'true') && $passed === 'T') { return ProviderResult::passed(['request_id' => (string) ($response['RequestId'] ?? ''), 'result_code' => 'passed']); } - $status = strtoupper((string) ($response['ResultObject']['SubCode'] ?? $response['ResultObject']['Status'] ?? '')); + $status = strtoupper((string) ($object['SubCode'] ?? $object['Status'] ?? $object['subCode'] ?? $object['status'] ?? '')); if ($status === '' || in_array($status, ['PROCESSING', 'INIT', 'PENDING'], true)) { - return ProviderResult::pending(['result_code' => $status ?: 'processing', 'message' => __('阿里云仍在处理认证结果', 'aksrt')]); + $message = $object['MaterialInfo'] ?? $object['Message'] ?? $object['message'] ?? __('阿里云仍在处理认证结果', 'aksrt'); + return ProviderResult::pending(['result_code' => $status ?: 'processing', 'message' => sanitize_text_field((string) $message)]); } - return ProviderResult::failed($status, sanitize_text_field((string) ($response['ResultObject']['MaterialInfo'] ?? __('实人认证未通过', 'aksrt')))); + return ProviderResult::failed($status, sanitize_text_field((string) ($object['MaterialInfo'] ?? $object['Message'] ?? $object['message'] ?? __('实人认证未通过', 'aksrt')))); } private function is_public_https_url(string $url): bool {