Stripe与Firebase/Firestore Webhook配置报错:Google\ApiCore\Serializer类未找到
问题:Stripe Webhook连接Firestore时出现类缺失错误
报错信息:webhook.php - Uncaught Error: Class "Google\ApiCore\Serializer" not found in C:\Users\charl\Dropbox\Website backup\Empty-Legs-App\backend\vendor\google\cloud-core\src\GrpcRequestWrapper.php:93
Webhook文件核心代码片段
<?php // webhook.php require 'vendor/autoload.php'; use Google\Cloud\Firestore\FirestoreClient; use Stripe\StripeClient; use Stripe\Webhook; try { $firestore = new FirestoreClient([ 'projectId' => 'corpjet2', 'keyFilePath' => 'service-account-file.json' ]); } catch (Exception $e) { echo 'Error initializing FirestoreClient: ' . $e->getMessage(); exit(); }
已尝试但未解决问题的操作
- 删除vendor文件夹
- 更新项目
- 清除缓存
- 更新依赖
- 执行
npm install @grpc/grpc-js
可行解决方案
重新安装Composer依赖
执行以下命令,确保所有Google Cloud相关依赖包被完整拉取:composer clear-cache && composer install --no-dev --optimize-autoloader锁定兼容的依赖版本
在composer.json中指定google/cloud-firestore和google/api-core的兼容版本,避免版本冲突:{ "require": { "google/cloud-firestore": "^1.29", "google/api-core": "^1.34", "stripe/stripe-php": "^12.0" } }保存后执行
composer update更新依赖。强制Firestore使用REST传输模式
初始化FirestoreClient时添加transport参数,绕开gRPC相关依赖问题:$firestore = new FirestoreClient([ 'projectId' => 'corpjet2', 'keyFilePath' => 'service-account-file.json', 'transport' => 'rest' ]);验证密钥文件路径
确保service-account-file.json的路径是绝对路径,或者相对于webhook.php文件的正确相对路径,路径错误可能间接导致依赖加载异常。
内容的提问来源于stack exchange,提问作者Charles Hergott
相关产品推荐
相关产品推荐

