我正在尝试让用户通过Stripe动态设置捐款的价值。我已经能够使用StripeAmount变量为'amount'赋值,但是当我尝试在charge.php文件上调用此变量时,该变量返回null。我无休止地搜索谷歌的解决方案但没有工作。我是一个相对的新手。
=表格代码=
dpDialog.getDatePicker().setMaxDate(System.currentTimeMillis());
= Charge.php Code =
<form id="target_form" action="charge.php" method="POST">
<script src="https://checkout.stripe.com/checkout.js"></script>
<button class="stripe_button_style" id="myStripeButton">Give By Card</button>
<script>
var handler = StripeCheckout.configure({
key: "pk_test_xxxxxxxxxxxxxxxx",
image: "includes/images/stripe_logo.png",
token: function(token, args){
var form = $('#target_form');
form.append($('<input type="hidden" name="stripeToken" />').val(token.id));
form.get(0).submit();
}
});
document.getElementById('myStripeButton').addEventListener('click', function(e) {
var StripeAmount = $("#donation_amount").val() *100;
handler.open({
name: "company name",
description: "donation",
panelLabel: "Give:",
allowRememberMe: true,
amount: StripeAmount,
zipCode: true,
shippingAddress: true,
billingAddress: true
});
e.preventDefault();
});
$(window).on('popstate', function() {
handler.close();
});
</script>
</form>
答案 0 :(得分:0)
在服务器端代码中,永远不会初始化$amount
。
另请注意,传递给Checkout的金额和货币用于显示目的。 Checkout不会将金额和货币发送到服务器。
你需要做这样的事情:
更新客户端代码以将金额发送到服务器:
token: function(token, args) {
var form = $('#target_form');
form.append($('<input type="hidden" name="amount" />').val($("#donation_amount").val() * 100;));
form.append($('<input type="hidden" name="stripeToken" />').val(token.id));
form.get(0).submit();
}
检索服务器端代码中的金额:
$amount = $_POST['amount'];