From 70fc95ebe1e96e926be064beb75aae7b14ac56d6 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 1 Aug 2026 22:03:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=98=8E=E7=A1=AE=E9=98=BF=E9=87=8C?= =?UTF-8?q?=E4=BA=91=E7=BC=BA=E5=B0=91=E6=A0=B8=E8=BA=AB=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= 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 | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/AKSRT/Identity/Provider/AliyunProvider.php b/src/AKSRT/Identity/Provider/AliyunProvider.php index d4568453..b8b17ec9 100644 --- a/src/AKSRT/Identity/Provider/AliyunProvider.php +++ b/src/AKSRT/Identity/Provider/AliyunProvider.php @@ -178,17 +178,28 @@ final class AliyunProvider implements ProviderInterface { ['Data', 'Url'], ['Data', 'url'], ])); - if ($certify_id === '' || $url === '') { + if ($certify_id === '') { $debug = $this->response_debug_summary($response, $object, [ - 'has_certify_id' => $certify_id !== '', + 'has_certify_id' => false, 'has_certify_url' => $url !== '', ]); - $this->log_debug('InitFaceVerify invalid response', $debug); + $this->log_debug('InitFaceVerify missing CertifyId', $debug); return ProviderResult::failed('aliyun_invalid_response', sprintf( __('阿里云未返回有效认证会话:%s', 'aksrt'), $debug )); } + if ($url === '') { + $debug = $this->response_debug_summary($response, $object, [ + 'has_certify_id' => true, + 'has_certify_url' => false, + ]); + $this->log_debug('InitFaceVerify returned CertifyId without URL', $debug); + return ProviderResult::failed('aliyun_missing_certify_url', sprintf( + __('阿里云只返回了 CertifyId,未返回可打开的核身链接。请确认 SceneId/ProductCode 对应的是支持 H5 链接的实人认证方案;调试信息:%s', 'aksrt'), + $debug + )); + } return ProviderResult::pending([ 'provider_session_id' => $certify_id, 'request_id' => sanitize_text_field((string) ($response['RequestId'] ?? '')),