Stripe payments STRIPE-在charge.php上调用时,动态设置的amount返回null

Stripe payments STRIPE-在charge.php上调用时,动态设置的amount返回null,stripe-payments,Stripe Payments,我试图让用户通过Stripe动态设置他们捐赠的价值。我已经能够使用StripeAmount变量为'amount'赋值,但是当我尝试在charge.php文件中调用该变量时,该变量返回null。我一直在谷歌上搜索解决方案,但都没有成功。我是一个相对的新手 =表格代码= <form id="target_form" action="charge.php" method="POST"> <script src="https://checkout.st

我试图让用户通过Stripe动态设置他们捐赠的价值。我已经能够使用StripeAmount变量为'amount'赋值,但是当我尝试在charge.php文件中调用该变量时,该变量返回null。我一直在谷歌上搜索解决方案,但都没有成功。我是一个相对的新手

=表格代码=

        <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>

刷卡
var handler=StripeCheckout.configure({
键:“pk_测试_uxxxxxxxxxxxxxx”,
图片:“includes/images/stripe_logo.png”,
令牌:函数(令牌,参数){
变量形式=$(“#目标形式”);
form.append($('').val(token.id));
form.get(0.submit();
}
});
document.getElementById('myStripeButton')。addEventListener('click',函数(e){
var StripeAmount=$(“#捐赠金额”).val()*100;
handler.open({
名称:“公司名称”,
说明:“捐赠”,
面板标签:“给:”,
我:是的,
金额:StripeAmount,
真的,
发货地址:对,
billingAddress:对
});
e、 预防默认值();
});
$(窗口).on('popstate',function()){
handler.close();
});
=Charge.php代码=

<?php require_once('includes/stripe/init.php');
 $stripe = array(
  "secret_key"      => "sk_test_xxxxxxxxxxxxxxxxxxxxxxxx",
  "publishable_key" => "pk_test_xxxxxxxxxxxxxxxxxxxxxxxx"
 );
  \Stripe\Stripe::setApiKey($stripe['secret_key']);
  $token = $_POST['stripeToken'];
  $email = $_POST['stripeEmail'];
  try {
  $customer = \Stripe\Customer::create(array(
    'email' => $_POST['stripeEmail'],
    'source'  => $token));
 $charge = \Stripe\Charge::create(array(
  'amount' => $amount,
  'customer' => $customer->id,
  'currency' => "usd",
  'description' => $email));
  echo 'Thank you for your donation. We will send you a receipt by    email for your tax records within 48hours';

   var_dump($charge);
 }catch(\Stripe\Error\Card $e){

echo $e->getMessage();

 }

在服务器端代码中,
$amount
从未初始化

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

您需要这样做:

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

    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'];