STRIPE - 在charge.php上调用时,动态设置的数量返回null

时间:2016-06-16 09:19:03

标签: stripe-payments

我正在尝试让用户通过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>

1 个答案:

答案 0 :(得分:0)

在服务器端代码中,永远不会初始化$amount

另请注意,传递给Checkout的金额和货币用于显示目的。 Checkout不会将金额和货币发送到服务器。

你需要做这样的事情:

  1. 更新客户端代码以将金额发送到服务器:

    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();
    }
    
  2. 检索服务器端代码中的金额:

    $amount = $_POST['amount'];