Stripe checkout: передать метаданные при создании объекта Session и получить их в событии checkout.session.completed - PullRequest
1 голос
/ 11 октября 2019

Я внедряю проверку Stripe на веб-сайте и хочу передать некоторые конкретные данные на checkout.session.complete. Вот что я попробовал:

'mode' => 'payment',
'payment_intent_data' => [
    'metadata' => [
        'eventId' => $eventId,
    ],
 ],

Но я не получаю эти данные в свой веб-крючок. Что я делаю не так?

1 Ответ

3 голосов
/ 11 октября 2019

payment_intent_data добавляется к полученному объекту PaymentIntent, а не к объекту Checkout\Session. Он не будет присутствовать в отправляемых вами данных checkout.session.complete.

(Идентификатор PaymentIntent будет, поэтому, если вы захотите, вы можете запросить данные этого объекта как часть вашегоОбработка webhook. Вы также можете собрать тип payment_intent.created webhook, но вам придется соотносить его после факта с сеансом.)

Более простой подход здесь, вероятно, заключается в установке client_reference_id на Checkoutсессия. Этот идентификатор передается обратно через webhook и может быть любой произвольной строкой, которая вам нравится - это может быть ключ сеанса или кеша, который позволяет вам искать метаданные, которые вы ищете.

...