Я следую документации для Stripe Checkout с интеграцией с сервером: https://stripe.com/docs/payments/checkout/server
Код в примерах работает нормально, но проблема в том, что я не могу отследить пользователя или егозаказ, когда покупка завершена.
У меня есть настройка веб-крюка, которая Stripe пингует, когда платеж завершен.Но сеанс ответов от Stripe не содержит никакой информации о заказанном продукте, за исключением его названия, описания и изображения.Я мог бы использовать имя продукта для запроса к базе данных, но я бы предпочел идентификатор или слаг, своего рода.
$app->post("/stripe-pingback", function(Request $request, Response $response, array $args) {
\Stripe\Stripe::setApiKey("xxxxx");
// You can find your endpoint's secret in your webhook settings
$endpoint_secret = 'xxxxx';
$payload = $request->getBody();
$sig_header = isset($_SERVER['HTTP_STRIPE_SIGNATURE']) ? $_SERVER['HTTP_STRIPE_SIGNATURE'] : null;
$event = null;
try {
$event = \Stripe\Webhook::constructEvent($payload, $sig_header, $endpoint_secret);
} catch(\UnexpectedValueException $e) {
// Invalid payload
http_response_code(400); // PHP 5.4 or greater
exit();
} catch(\Stripe\Error\SignatureVerification $e) {
// Invalid signature
http_response_code(400); // PHP 5.4 or greater
exit();
}
// Handle the checkout.session.completed event
if ($event->type == 'checkout.session.completed') {
$session = $event->data->object;
var_dump($session);
// Possible to get custom data from session?
$customer = $session->customer;
$customerEmail = $session->customer_email;
// Fulfill the purchase...
$this->db->insertAudioPurchase();
}
http_response_code(200); // PHP 5.4 or greater
});
Можно ли передать идентификатор вместе с запросом извлечения, который может Stripeping, чтобы я смог найти заказ и сгенерировать ссылку для скачивания?