我正在尝试使用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)
添加到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)
我需要做一些小的改动才能使我的代码工作.
如果您使用 Checkout,您将获得一个令牌,使用该令牌您可以通过 API 调用获取电子邮件地址: https: //stripe.com/docs/api#retrieve_token
不知道为什么电子邮件没有列在下面,但我确实有一个可用的电子邮件属性。您还可以在 Stripe 日志下查看电子邮件。