Stripe获取客户电子邮件地址

sar*_*585 6 stripe-payments

我正在尝试使用Stripe checkout.js订阅订阅,然后使用PHP订阅客户.我的问题是获取他们的电子邮件地址 在文档中找不到任何有用的东西.

文档:https://stripe.com/docs/guides/subscriptions#step-2-subscribe-customers

是)我有的:

<script src="https://checkout.stripe.com/checkout.js"></script>

<button id="customButton">Purchase</button>

<script>
var handler = StripeCheckout.configure({
key: 'pk_test_keyhere',
image: '/square-image.png',
token: function(token) {
  // Use the token to create the charge with a server-side script.
  // You can access the token ID with `token.id`
}
});

document.getElementById('customButton').addEventListener('click', function(e) {
// Open Checkout with further options
handler.open({
  name: 'test2',
  description: 'Test Des',
  amount: 0001,
  currency:'GBP'
});
e.preventDefault();
});
</script>

<?php
// Set your API key
 Stripe::setApiKey("sk_test_keyhere");


 $token = $_POST['stripeToken'];

 $customer = Stripe_Customer::create(array(
 "card" => $token,
 "plan" => "test2",
 "email" => $email
 )
);
?>
Run Code Online (Sandbox Code Playgroud)

use*_*139 8

添加到David的答案,您可以通过PHP检索电子邮件地址,如下所示:

$stripeinfo =Stripe_Token::retrieve($_POST["token"]);
echo '<pre>',print_r($stripeinfo),'</pre>'; //show stripeObject info
$email = $stripeinfo->email;
Run Code Online (Sandbox Code Playgroud)

为现在遇到此问题的人添加此答案的小更新.

 $token  = $_POST['stripeToken'];

 $stripeinfo = \Stripe\Token::retrieve($token);
 $email = $stripeinfo->email;

 $customer = \Stripe\Customer::create(array(
   'email' => $email,
   'source'  => $token,
   'description' => 'New Customer'
 ));
Run Code Online (Sandbox Code Playgroud)

我需要做一些小的改动才能使我的代码工作.


Dav*_*yen 4

如果您使用 Checkout,您将获得一个令牌,使用该令牌您可以通过 API 调用获取电子邮件地址: https: //stripe.com/docs/api#retrieve_token

不知道为什么电子邮件没有列在下面,但我确实有一个可用的电子邮件属性。您还可以在 Stripe 日志下查看电子邮件。