С помощью Stripe API: как получить session_id сеанса оформления заказа, в котором был создан объект pay_intent, из веб-пPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 С помощью Stripe API: как получить session_id сеанса оформления заказа, в котором был создан объект pay_intent, из веб-п

Сообщение Anonymous »

Я работаю над разработкой и тестированием интеграции Stripe, написанной на PHP, и она прекрасно работает. Я могу создавать сеансы, перенаправляться на форму оформления заказа, и когда платежи завершаются, он отправляет событие в мой скрипт веб-перехватчика, который успешно обрабатывает информацию о проходящем платеже.
Когда я создаю сессию, данные о заполненной форме храню у себя на сайте, в базе данных, а когда проходит оплата, сохраняю информацию в другой таблице, и это здорово.
Проблема, с которой я столкнулся, заключается в том, что я не знаю, как связать информацию об успешном платеже с сеансом, который его сгенерировал.
Связывание этих данных необходимо для я, потому что я хочу отслеживать, какие сеансы на самом деле приводят к успешным платежам, чтобы я мог анализировать работу пользовательского интерфейса, отслеживать коэффициенты конверсии и анализировать факторы, которые приводят к прекращению сеанса оформления заказа.
В некоторых случаях эти вещи легко связать. Например, если сгенерирован только один сеанс и один успешный платеж, связанный с данным электронным письмом в определенный период времени, я могу просто связать их. Проблема в том, что я хочу иметь возможность справиться с (вероятно распространенным) сценарием, когда человек создает несколько сеансов и прекращает их. В этом сценарии я не могу связать платеж с самым последним сеансом, связанным с электронным письмом, поскольку возможно, что один клиент создаст два сеанса, но завершит платеж в первом, созданном ранее сеансе.
Я не могу понять, как получить доступ к session_id из объекта Payment_intent, который возвращается в мой вебхук. Некоторые мысли, которые у меня были о том, как это возможно сделать, включают в себя:
  • Прослушивание какого-либо другого события в моем сценарии веб-перехватчика, которое может произойти, что, возможно, позволило бы мне свяжите две записи.
  • Передача метаданных в сеанс, например уникально сгенерированного идентификатора, а затем доступ к этим же метаданным из объекта Payment_intent. Однако, прочитав документацию Stripe, я не могу понять, как работают метаданные, и даже передаются ли метаданные из сеанса в объект pay_intent (в документации это явно не указано и не объяснено, а тот факт, что session_id не передается, заставляет меня интересно, будут ли метаданные переданы вообще). Я бы предпочел не использовать это решение, поскольку оно потребовало бы дополнительного шага по созданию уникального идентификатора перед созданием сеанса, что потребовало бы дополнительной работы с моей стороны, а также сделало бы мой код более сложным и потребовало бы больше усилий. вызовы базы данных и другие потенциальные шаги, которые могут пойти не так (сейчас я генерирую сеанс, а затем сохраняю информацию в ответ на успешное создание сеанса), но я мог бы с этим мириться, если действительно нет лучших вариантов.
Я хотел бы следовать здесь «лучшим практикам», но мне неясно, как Stripe хочет, чтобы люди связывались или получали доступ к данным, или, возможно, это надзор с их стороны.
Если вы дадите мне пример кода, я бы предпочел увидеть его на PHP, если это возможно, но вам вообще не нужно показывать мне какой-либо код; просто дать мне абстрактное или общее представление о том, как это сделать, было бы достаточно, и я мог бы придумать детали кодирования самостоятельно.

Подробнее здесь: https://stackoverflow.com/questions/699 ... d-a-paymen
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»