Время ответа нашивки - PullRequest
       37

Время ответа нашивки

0 голосов
/ 16 февраля 2020

Когда клиент платит, в базу данных сохраняется следующая запись:

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 payment_intent.succeeded я хочу получить идентификатор платежного намерения из веб-крючка и найти запись в моей базе данных:

$paymentInstance = DB::table('subscriptions')->where('stripe_id',$paymentIntent->id)->first();

Переменная $paymentIntent инициализируется непосредственно в веб-крюке:

$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 (echo $ paymentInstance). Когда я нажимаю «Переслать» на панели инструментов Stripe, я получаю желаемый результат. Как это возможно? Хранение исходной записи должно быть быстрее, чем веб-крючок, впервые достигающий сервера - или я ошибаюсь?

...