Javascript 更新条带数据量
我正在django网站上实现Stripe,除了一个部分外,其他一切都正常工作。在我的购物车中,用户可以更新更改总数的项目。除了在js脚本上设置数据量之外,其他一切都正常工作 当页面加载时,一切正常,但是如果客户更改了购物车,数据量不会更新。我有另一个显示总数的框,该金额可以更新Javascript 更新条带数据量,javascript,jquery,stripe-payments,Javascript,Jquery,Stripe Payments,我正在django网站上实现Stripe,除了一个部分外,其他一切都正常工作。在我的购物车中,用户可以更新更改总数的项目。除了在js脚本上设置数据量之外,其他一切都正常工作 当页面加载时,一切正常,但是如果客户更改了购物车,数据量不会更新。我有另一个显示总数的框,该金额可以更新 <!-- here is the script tag in HTML--> <script id="stripe-script" src="https://checkout.stripe.com/ch
<!-- here is the script tag in HTML-->
<script
id="stripe-script"
src="https://checkout.stripe.com/checkout.js"
class="stripe-button"
data-image="{% static 'img/marketplace.png' %}"
data-key="{{ STRIPE_PUBLIC_KEY }}"
data-name="Serendipity Artisan Blends"
data-description="Purchase Items"
data-amount="{{ cart_stripe_total }}">
</script>
事实证明,要获得条带支付的动态数据量,您必须使用而不是简单的签出。这段代码成功了
<button class="btn btn-primary btn-lg" id="stripe-button">
Checkout <span class="glyphicon glyphicon-shopping-cart"></span>
</button>
<script>
$('#stripe-button').click(function(){
var token = function(res){
var $id = $('<input type=hidden name=stripeToken />').val(res.id);
var $email = $('<input type=hidden name=stripeEmail />').val(res.email);
$('form').append($id).append($email).submit();
};
var amount = $("#stripeAmount").val();
StripeCheckout.open({
key: '{{ STRIPE_PUBLIC_KEY }}',
amount: amount,
name: 'Serendipity Artisan Blends',
image: '{% static "img/marketplace.png" %}',
description: 'Purchase Products',
panelLabel: 'Checkout',
token: token
});
return false;
});
</script>
结账
$(“#条带按钮”)。单击(函数(){
变量标记=函数(res){
var$id=$('').val(res.id);
var$email=$('').val(res.email);
$('form').append($id).append($email.submit();
};
var金额=$(“#stripeAmount”).val();
StripeCheckout.open({
密钥:“{STRIPE\u PUBLIC\u key}}”,
金额:金额,,
名称:'Serendipity Artisan Blends',
图像:“{%static”img/marketplace.png“%}”,
说明:'购买产品',
panelLabel:“签出”,
令牌:令牌
});
返回false;
});
正如@awwester所说,您可以使用Stripe的定制结账。尽管如此,我还是通过jQuery找到了一种更简单的方法来实现这一点,只要在每次脚本增加数量时使用更改的变量重新安装脚本即可:
$("#stripe-form").html(
'<input type="hidden" name="amount" value="' +
totalCost.replace(".", "") +
'" /><input type="hidden" name="currency" value="usd" /><script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_test_123123123123" data-amount="' +
totalCost.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>'
);
$(“#条带形式”).html(
''
);
或者您可以在单击条带按钮之前使用以下代码;-)
这根本不安全,您可以在客户端手动更改金额以支付0。
$("#stripe-form").html(
'<input type="hidden" name="amount" value="' +
totalCost.replace(".", "") +
'" /><input type="hidden" name="currency" value="usd" /><script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_test_123123123123" data-amount="' +
totalCost.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>'
);
StripeCheckout.__app.configurations.button0.amount = 1234;
$('#stripe-button').click();