【发布时间】:2021-01-01 20:07:39
【问题描述】:
我们正在尝试创建一个自定义 webhook 来使用 Laravel Cashier 处理 Stripe Checkout。问题是我们正在关注 Laravel Cashier 文档,但我们没有收到来自 Stripe 的有效负载。
我们正在尝试连接到checkout.session.completed。
namespace App\Http\Controllers;
use Laravel\Cashier\Http\Controllers\WebhookController as CashierController;
class StripeWebhookController extends CashierController
{
/**
* Handle Checkout Session Completed.
*
* @param array $payload
* @return \Symfony\Component\HttpFoundation\Response
*/
public function handleCheckoutSessionCompleted(array $payload) // Line 12
{
// Code...
}
// Error: ArgumentCountError: Too few arguments to function App\Http\Controllers\StripeWebhookController::handleCheckoutSessionCompleted(), 0 passed in /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Controller.php on line 54 and exactly 1 expected in file /var/www/html/app/Http/Controllers/StripeWebhookController.php on line 12
我们还在web.php中创建了路由
use App\Http\Controllers\StripeWebhookController;
Route::post('/stripe/webhook', [StripeWebhookController::class, 'handleCheckoutSessionCompleted']);
我们确实添加了 App\Http\Middleware\VerifyCsrfToken
protected $except = [
'stripe/*',
];
最后,我们还在 .env 文件中添加了我们的 webhook 密码。
【问题讨论】: