w7corp / easywechat

📦 一个 PHP 微信 SDK
https://easywechat.com
MIT License
10.28k stars 2.4k forks source link

使用`$utils->buildJsSdkConfig`时报错 Undefined constant "CURL_SSLVERSION_TLSv1_2" #2814

Closed zwping closed 4 months ago

zwping commented 4 months ago

我用的环境

问题及现象

Undefined constant "CURL_SSLVERSION_TLSv1_2" {"userId":1,"exception":"[object] (Error(code: 0): Undefined constant \"CURL_SSLVERSION_TLSv1_2\" at /mnt/xxx/vendor/symfony/http-client/CurlHttpClient.php:134)

[stacktrace]
#0 vendor/w7corp/easywechat/src/OfficialAccount/AccessToken.php(154): Symfony/Component/HttpClient/CurlHttpClient->request()
#1 vendor/w7corp/easywechat/src/OfficialAccount/AccessToken.php(107): EasyWeChat/OfficialAccount/AccessToken->getAccessToken()
#2 vendor/w7corp/easywechat/src/OfficialAccount/AccessToken.php(76): EasyWeChat/OfficialAccount/AccessToken->refresh()
#3 vendor/w7corp/easywechat/src/OfficialAccount/AccessToken.php(93): EasyWeChat/OfficialAccount/AccessToken->getToken()
#4 vendor/w7corp/easywechat/src/Kernel/HttpClient/AccessTokenAwareClient.php(58): EasyWeChat/OfficialAccount/AccessToken->toQuery()
#5 vendor/w7corp/easywechat/src/OfficialAccount/JsApiTicket.php(38): EasyWeChat/Kernel/HttpClient/AccessTokenAwareClient->request()
#6 vendor/w7corp/easywechat/src/OfficialAccount/JsApiTicket.php(33): EasyWeChat/OfficialAccount/JsApiTicket->refreshTicket()
#7 vendor/w7corp/easywechat/src/OfficialAccount/JsApiTicket.php(77): EasyWeChat/OfficialAccount/JsApiTicket->getTicket()
#8 vendor/w7corp/easywechat/src/OfficialAccount/Utils.php(43): EasyWeChat/OfficialAccount/JsApiTicket->configSignature()
#9 app/Http/Controllers/Wechat/WechatController.php(27): EasyWeChat/OfficialAccount/Utils->buildJsSdkConfig()
#10 vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App/Http/Controllers/Wechat/WechatController->jssdksign()
#11 vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate/Routing/Controller->callAction()
#12 vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate/Routing/ControllerDispatcher->dispatch()
#13 vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate/Routing/Route->runController()
#14 vendor/laravel/framework/src/Illuminate/Routing/Router.php(799): Illuminate/Routing/Route->run()
#15 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate/Routing/Router->Illuminate/Routing/{closure}()
#16 app/Http/Middleware/AcceptHeader.php(21): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#17 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App/Http/Middleware/AcceptHeader->handle()
#18 vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#19 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate/Routing/Middleware/SubstituteBindings->handle()
#20 vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(159): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#21 vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(125): Illuminate/Routing/Middleware/ThrottleRequests->handleRequest()
#22 vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(87): Illuminate/Routing/Middleware/ThrottleRequests->handleRequestUsingNamedLimiter()
#23 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate/Routing/Middleware/ThrottleRequests->handle()
#24 vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(57): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#25 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate/Auth/Middleware/Authenticate->handle()
#26 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#27 vendor/laravel/framework/src/Illuminate/Routing/Router.php(798): Illuminate/Pipeline/Pipeline->then()
#28 vendor/laravel/framework/src/Illuminate/Routing/Router.php(777): Illuminate/Routing/Router->runRouteWithinStack()
#29 vendor/laravel/framework/src/Illuminate/Routing/Router.php(741): Illuminate/Routing/Router->runRoute()
#30 vendor/laravel/framework/src/Illuminate/Routing/Router.php(730): Illuminate/Routing/Router->dispatchToRoute()
#31 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate/Routing/Router->dispatch()
#32 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate/Foundation/Http/Kernel->Illuminate/Foundation/Http/{closure}()
#33 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#34 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate/Foundation/Http/Middleware/TransformsRequest->handle()
#35 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull->handle()
#36 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#37 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate/Foundation/Http/Middleware/TransformsRequest->handle()
#38 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate/Foundation/Http/Middleware/TrimStrings->handle()
#39 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#40 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate/Foundation/Http/Middleware/ValidatePostSize->handle()
#41 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(99): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#42 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance->handle()
#43 vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(62): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#44 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate/Http/Middleware/HandleCors->handle()
#45 vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#46 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate/Http/Middleware/TrustProxies->handle()
#47 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate/Pipeline/Pipeline->Illuminate/Pipeline/{closure}()
#48 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate/Pipeline/Pipeline->then()
#49 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate/Foundation/Http/Kernel->sendRequestThroughRouter()
#50 public/index.php(51): Illuminate/Foundation/Http/Kernel->handle()
#51 {main}
"}
overtrue commented 4 months ago

要不要先 Google 一下(´・_・`)

TheNorthMemory commented 4 months ago

看错了, 这个CURL_SSLVERSION_TLSv1_2定义如下:

https://github.com/symfony/symfony/blob/85db734e06e8cb32365810958326d48084bf48ba/src/Symfony/Component/HttpClient/CurlHttpClient.php#L134

看样子是你的PHP运行时curl扩展版本并没有这个常量定义,可以看一下你runtime的真实curl版本,可能你看到的8.2.1并没有被加载成功

zwping commented 4 months ago

@TheNorthMemory 感谢,将curl升级至8.2.1还未解决才上来提问,目前phpinfo()中openssl版本为1.0.2k,现准备升级一下他看下能否解决

zwping commented 4 months ago

OpenSSL 1.1.1c

一顿升级,已正常请求