Оформление заказа не принимает метаданные - PullRequest
2 голосов
/ 18 апреля 2019

У меня есть встроенная проверка Stripe (последняя версия), и мне нужно отправить дополнительные данные, чтобы я мог согласовать более поздний веб-крючок.

Stripe отклоняет метаданные со следующей ошибкой

Fatal error: Uncaught exception 'Stripe\Error\InvalidRequest' with message 'Received unknown parameter: metadata' 

Мой частично отредактированный код выглядит следующим образом

$object = \Stripe\Checkout\Session::create([
    'success_url' => 'www/payment_processor.php?action=success',
    'cancel_url' => 'www/payment_processor.php?action=cancel',
    'payment_method_types' => ['card'],
    'customer_email' => $email,
    'metadata' => ['user_id' => $user_id],
    'line_items' => [[
        'amount' => $amount,
        'currency' => $currency,
        'name' => 'Purchase',
        'description' => $description,
        'quantity' => 1,
    ]]
]);

Я ожидаю, что метаданные будут приняты и возвращены с помощью webhook, как описано в документации Stripe .

Ответы [ 3 ]

2 голосов
/ 18 апреля 2019

Первое предложение связанной документации гласит:

Обновляемые объекты Stripe - в том числе Учетная запись, Сбор, Клиент, PaymentIntent, Возврат, Подписка и Передача - имеют параметр метаданных.

Вы не создаете ни одного из них, вы создаете Сессию

0 голосов
/ 05 июля 2019

Другие ответы верны, что metadata не существует в объекте Session. client_reference_id - альтернатива, но она должна быть уникальной и должна быть строкой.

Если вы просто хотите, чтобы метаданные отображались при покупке на информационной панели Stripe, используйте атрибут payment_intent_data при создании сеанса. Вот как вы прикрепляете метаданные к покупке, сделанной во время сеанса. Соответствующая документация здесь .

0 голосов
/ 18 апреля 2019

Объект Stripe Session не принимает metadata в качестве параметра. Подробнее см. Здесь .

Ссылка , которую вы даете в своем вопросе, относится к полосе Заряд объект, который принимает метаданные.

...