制作条纹"数据量"使用带变量的动态

时间:2015-11-04 12:02:37

标签: jquery stripe-payments

我需要让我的脚本结帐使用我的var $priceCheckout = $('#priceCheckout');作为结帐价格值。

我试图替换data-amount =" 2000"与data-amount= $priceCheckout;没有任何运气。所以要清楚!

需要花费我的$ priceCheckout并将其置于数据量的位置,以便$ priceCheckout的价值为结账价格!

<form action="" method="POST">
  <script
    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="Personal key"
    data-amount= ???
    data-name="Elo Calculator"
    data-description="Checkout price"
    data-image="/128x128.png"
    data-locale="auto">
  </script>
</form>

这是我的脚本。

$(function () {
            // Store references to frequently used elements - for speed.
            var $divFrom = $('#division-from');
            var $divTo = $('#division-to');
            var $tierFrom = $('#tier-from');
            var $tierTo = $('#tier-to');

            var $price = $('#price');
            var $priceCheckout = $('#priceCheckout');

            // Select price calculation callback
            $(document).on('change', '.price-modifier', function () {
                var divFrom = $divFrom.val();
                var divTo = $divTo.val();
                var tierFrom = $tierFrom.val();
                var tierTo = $tierTo.val();

                // Error handling
                var errors = validatePriceModifiers(divFrom, tierFrom, divTo, tierTo);
                if (errors.length === 0) {
                    // No errors
                    var price = getPrice(divFrom, tierFrom, divTo, tierTo);
                    $price.html(price + ' €' + '<br /> <br />' + '<button type="submit" data-toggle="modal" data-target="#myModal" class="btn btn-info">Buy</button>');
                    $priceCheckout.html(price);
                } else {
                    // Display errors
                    $price.empty();
                    for (var i = 0; i < errors.length; i++) {
                        $price.append($('<p>').html(errors[i].message));
                    }
                }
            });
        });

3 个答案:

答案 0 :(得分:5)

您需要使用Checkout custom integration

这是一个简单的小提示,展示如何使用用户指定金额的Checkout:https://jsfiddle.net/ywain/g2ufa8xr/

您可以使用相同的逻辑插入自己的值作为amount调用中的handler.open()参数。

答案 1 :(得分:0)

这里的关键是data-amount是HTML脚本标记的属性。 是一个JavaScript变量,您可以直接在HTML标记中为其分配一个(如<element attribute=variable-name>)。

但是,您可以使用以下JavaScript为其指定值:

$('.stripe-button').attr('data-amount', $priceCheckout);

该代码会将具有类data-amount的任何HTMl元素的属性stripe-button更改为代码运行时变量$priceCheckout所具有的值。

那么你什么时候想跑呢?您需要在$priceCheckout设置为变量后运行它(如果价格发生变化,您需要再次运行它以进行更新)。但是你需要在使用该值运行的任何代码之前运行它。

答案 2 :(得分:0)

您可以使用Stripe的自定义结帐。虽然,我发现通过jQuery更简单的方法,只需每次增加数量时使用更改的变量重新编写脚本:

var $priceCheckout = $('#priceCheckout');

$("#stripe-form").html(
  '<script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_test_123123123123" data-amount="' +
    $priceCheckout.replace(".", "") +
    '" data-zip-code="true" data-currency="usd" data-billing-address="true" data-shipping-address="true" data-name="Company Name" data-description="Product Name" data-image="https://image" data-locale="auto"></script>'
);