支付宝沙盒模式商家转账经常出现 响应异常: 解包错误
2025年5月9日16:27:08
php8.3 laravel11 octane swoole加速
测试时不时就出现 响应异常: 解包错误
错误信息:
Yansongda\Artful\Exception\InvalidResponseException: 响应异常: 解包错误 in /opt/www/vendor/yansongda/artful/src/Direction/CollectionDirection.php:31 Stack trace: #0 /opt/www/vendor/yansongda/artful/src/Plugin/ParserPlugin.php(39): Yansongda\Artful\Direction\CollectionDirection->guide() #1 /opt/www/vendor/yansongda/supports/src/Pipeline.php(93): Yansongda\Artful\Plugin\ParserPlugin->assembly() #2 /opt/www/vendor/yansongda/pay/src/Plugin/Alipay/V2/ResponsePlugin.php(25): Yansongda\Supports\Pipeline->Yansongda\Supports\{closure}() #3 /opt/www/vendor/yansongda/supports/src/Pipeline.php(93): Yansongda\Pay\Plugin\Alipay\V2\ResponsePlugin->assembly() #4 /opt/www/vendor/yansongda/pay/src/Plugin/Alipay/V2/VerifySignaturePlugin.php(35): Yansongda\Supports\Pipeline->Yansongda\Supports\{closure}() #5 /opt/www/vendor/yansongda/supports/src/Pipeline.php(93): Yansongda\Pay\Plugin\Alipay\V2\VerifySignaturePlugin->assembly() #6 /opt/www/vendor/yansongda/pay/src/Plugin/Alipay/V2/AddRadarPlugin.php(45): Yansongda\Supports\Pipeline->Yansongda\Supports\{closure}() #7 /opt/www/vendor/yansongda/supports/src/Pipeline.php(93): Yansongda\Pay\Plugin\Alipay\V2\AddRadarPlugin->assembly() #8 /opt/www/vendor/yansongda/pay/src/Plugin/Alipay/V2/AddPayloadSignaturePlugin.php(34): Yansongda\Supports\Pipeline->Yansongda\Supports\{closure}() #9 /opt/www/vendor/yansongda/supports/src/Pipeline.php(93): Yansongda\Pay\Plugin\Alipay\V2\AddPayloadSignaturePlugin->assembly() #10 /opt/www/vendor/yansongda/pay/src/Plugin/Alipay/V2/FormatPayloadBizContentPlugin.php(31): Yansongda\Supports\Pipeline->Yansongda\Supports\{closure}() #11 /opt/www/vendor/yansongda/supports/src/Pipeline.php(93): Yansongda\Pay\Plugin\Alipay\V2\FormatPayloadBizContentPlugin->assembly() #12 /opt/www/vendor/yansongda/pay/src/Plugin/Alipay/V2/Fund/Transfer/Fund/QueryPlugin.php(28): Yansongda\Supports\Pipeline->Yansongda\Supports\{closure}() #13 /opt/www/vendor/yansongda/supports/src/Pipeline.php(93): Yansongda\Pay\Plugin\Alipay\V2\Fund\Transfer\Fund\QueryPlugin->assembly() #14 /opt/www/vendor/yansongda/pay/src/Plugin/Alipay/V2/StartPlugin.php(37): Yansongda\Supports\Pipeline->Yansongda\Supports\{closure}() #15 /opt/www/vendor/yansongda/supports/src/Pipeline.php(93): Yansongda\Pay\Plugin\Alipay\V2\StartPlugin->assembly() #16 /opt/www/vendor/yansongda/supports/src/Pipeline.php(57): Yansongda\Supports\Pipeline->Yansongda\Supports\{closure}() #17 /opt/www/vendor/yansongda/artful/src/Artful.php(257): Yansongda\Supports\Pipeline->then() #18 /opt/www/vendor/yansongda/artful/src/Artful.php(236): Yansongda\Artful\Artful::artful() #19 /opt/www/vendor/yansongda/pay/src/Provider/Alipay.php(59): Yansongda\Artful\Artful::shortcut() #20 /opt/www/vendor/yansongda/pay/src/Provider/Alipay.php(80): Yansongda\Pay\Provider\Alipay->__call() #21 /opt/www/app/Bundles/Tools/Services/AlipayService.php(110): Yansongda\Pay\Provider\Alipay->query() #22 /opt/www/app/Bundles/Tools/Services/AlipayService.php(68): App\Bundles\Tools\Services\AlipayService->query() #23 /opt/www/app/Bundles/Driver/Services/DriverWithdrawBundleService.php(142): App\Bundles\Tools\Services\AlipayService->transfer() #24 /opt/www/app/Bundles/Driver/Services/DriverWithdrawBundleService.php(98): App\Bundles\Driver\Services\DriverWithdrawBundleService->sendWithdrawRequest() #25 /opt/www/app/API/V1/Controllers/DriverWithdrawController.php(168): App\Bundles\Driver\Services\DriverWithdrawBundleService->auditPass() #26 /opt/www/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\API\V1\Controllers\DriverWithdrawController->auditPass() #27 /opt/www/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(44): Illuminate\Routing\Controller->callAction() #28 /opt/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php(266): Illuminate\Routing\ControllerDispatcher->dispatch() #29 /opt/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\Routing\Route->runController() #30 /opt/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(808): Illuminate\Routing\Route->run() #31 /opt/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Routing\Router->Illuminate\Routing\{closure}() #32 /opt/www/app/Http/Middleware/AdminAuth/AdminAuthMiddleware.php(38): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #33 /opt/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): App\Http\Middleware\AdminAuth\AdminAuthMiddleware->handle() #34 /opt/www/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(51): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #35 /opt/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Routing\Middleware\SubstituteBindings->handle() #36 /opt/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #37 /opt/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\Pipeline\Pipeline->then() #38 /opt/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(786): Illuminate\Routing\Router->runRouteWithinStack() #39 /opt/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\Routing\Router->runRoute() #40 /opt/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php(739): Illuminate\Routing\Router->dispatchToRoute() #41 /opt/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(201): Illuminate\Routing\Router->dispatch() #42 /opt/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}() #43 /opt/www/vendor/xiehua/laravel-infra/foundation/src/Http/Middleware/Trace.php(29): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #44 /opt/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Flame\Foundation\Http\Middleware\Trace->handle() #45 /opt/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #46 /opt/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\Pipeline\Pipeline->then() #47 /opt/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter() #48 /opt/www/vendor/laravel/octane/src/ApplicationGateway.php(36): Illuminate\Foundation\Http\Kernel->handle() #49 /opt/www/vendor/laravel/octane/src/Worker.php(84): Laravel\Octane\ApplicationGateway->handle() #50 /opt/www/vendor/laravel/octane/bin/swoole-server(122): Laravel\Octane\Worker->handle() #51 [internal function]: {closure}() #52 /opt/www/vendor/laravel/octane/bin/swoole-server(172): Swoole\Server->start() #53 {main} [] []
更换了阿里云的官方包: https://github.com/alipay/alipay-sdk-php-all
也会出现问题
Failed to send log to Aliyun SLS: Required fields are missingValueErrorFirst element must contain a non-empty program nameat vendor/symfony/process/Process.php:361357▕ pcntl_sigprocmask(\SIG_BLOCK, $this->ignoredSignals, $oldMask);358▕ }359▕360▕ try {➜ 361▕ $process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options);362▕363▕ // Ensure array vs string commands behave the same364▕ if (!$process && \is_array($commandline)) {365▕ $process = @proc_open('exec '.$this->buildShellCommandline($commandline), $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options);+30 vendor frames31 artisan:13Illuminate\Foundation\Application::handleCommand()
这里问题是偶发的,刚开认为是我们代码写的不对,也可能是 octane 导致解析http协议偶发失败的问题,
后面等正式上线之后,发现正式环境没有这个问题,应该就是沙盒模式的偶发问题,所以不用担心