当客户付款时,以下条目将存储到数据库中:
DB::table('subscriptions')->insert([
'user_id' => $user->id,
'quantity' => 1,
'stripe_id' => $request->paymentIntent,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
]);
记录已成功保存。收听Stripe Webhook payment_intent.succeeded
时,我想从Webhook中获取paymentIntent ID,并在数据库中找到记录:
$paymentInstance = DB::table('subscriptions')->where('stripe_id',$paymentIntent->id)->first();
变量$paymentIntent
直接在Webhook中初始化:
$event = \Stripe\Webhook::constructEvent(
$payload, $sig_header, $endpoint_secret
);
...
switch ($event->type) {
case 'payment_intent.succeeded':
$paymentIntent = $event->data->object;
// Usage of $paymentIntent->id....
第一个呼叫以null
响应(回显$ paymentInstance)。当我在Stripe仪表板中单击“重新发送”时,将获得所需的结果。 这怎么可能?初始记录的存储必须比第一次Webhook到达服务器要快-还是我弄错了?