Stripe Checkout webhook не передает клиенту электронную почту? - PullRequest
1 голос
/ 03 мая 2020

Я использую 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
}
...