我想使用Stripe存储他们在Checkout中提供的电子邮件中的客户电子邮件地址.不幸的是,在我的charge.PHP文件中发布stripeEmail返回null.
如何从结帐中退回电子邮件,以便可以用来发送收据?
这是我的表单代码:
<script src="https://checkout.stripe.com/v2/checkout.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
<form action="charge.PHP" method="post">
<input type="hidden" id="amount" name="chargeAmount"/>
<button data-charge-amount="300000" data-charge-name="Name" data-charge-description="Description">Select Pledge Level</button>
<button data-charge-amount="123123" data-charge-name="Name2" data-charge-description="Description2">Donate</button>
</form>
<script>
$('button').click(function(){
var token = function(res){
var $thetoken = $('<input type=hidden name=stripetoken />').val(res.id);
$('form').append($thetoken).submit();
};
var amount = $(this).data("chargeAmount");
var name = $(this).data("chargeName");
var description = $(this).data("chargeDescription");
$('input#amount').val(amount);
StripeCheckout.open({
key: 'pk_test_xxxxxxxxxxxxxxxxxxxxxxxx',
address: true,
amount: amount,
currency: 'usd',
name: name,
description: description,
panelLabel: 'Pledge',
token: token,
});
return false;
});
</script>
<?PHP
require_once('./config.PHP');
$token = $_POST['stripetoken'];
$amount = $_POST['chargeAmount'];
$customer = \Stripe\Customer::create(array(
'email' => $email,
'card' => $token,
));
$charge = \Stripe\Charge::create(array(
'customer' => $customer->id,
'amount' => $amount,
'currency' => 'usd',
));
?>
<?PHP
require_once('./stripe-PHP-2.1.2/init.PHP');
$stripe = array(
"secret_key" => "sk_test_xxxxxxxxxxxxxxxxxxxxxxxx",
"publishable_key" => "pk_test_xxxxxxxxxxxxxxxxxxxxxxxx"
);
\Stripe\Stripe::setApiKey($stripe['secret_key']);
?>
任何帮助将非常感激.
谢谢!
解决方法:
这里的问题是您使用的是Custom Checkout,这意味着Checkout不会自动将数据发布到服务器,而是在令牌回调中提供数据.就您而言,您仅在此处检索令牌ID,这就是为什么您没有看到电子邮件的原因.
更新您的代码,以便令牌回调也可以检索电子邮件并将其通过stripeEmail参数发送:
var token = function(res){
var $thetoken = $('<input type="hidden" name="stripetoken" />').val(res.id);
var $theEmail = $('<input type="hidden" name="stripeEmail" />').val(res.email);
$('form').append($thetoken).append($theEmail).submit();
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。