Я использую Stripe's Checkout в тестовом режиме. Я пытаюсь получить идентификатор клиента в Stripe, а также адрес электронной почты, который они указали при оформлении заказа, чтобы обновить мою базу данных.
Я установил webhook для checkout.session.completed. Если я отправляю тестовый веб-крючок, идентификатор заполняется, а customer_email - нет.
Я подумал, что, возможно, тестовый веб-крючок не передаст эту информацию, поэтому я заполнил форму проверки. Я получаю идентификатор просто отлично, но customer_email имеет значение null.
Полагаю, я просто не понимаю, как правильно взаимодействовать со Stripe.
// straight from Stripe's documentation
try {
$event = \Stripe\Webhook::constructEvent(
$payload, $sig_header, $endpoint_secret
);
} catch(\UnexpectedValueException $e) {
// Invalid payload
http_response_code(400);
exit();
} catch(\Stripe\Exception\SignatureVerificationException $e) {
// Invalid signature
http_response_code(400);
exit();
}
// Handle the checkout.session.completed event
if ($event->type == 'checkout.session.completed') {
$session = $event->data->object;
// Fulfill the purchase...
handle_checkout_session($session);
}
http_response_code(200);
// my simple function
function handle_checkout_session($session){
$stripeID=$session['id'];
$userEmail=$session['customer_email'];
print 'Email: ' . $userEmail . '\n'; // works
print 'Stripe ID: ' . $stripeID . '\n'; // empty
}