Я реализую Stripe на django-сайте, и все работает, за исключением одной части. В моей корзине пользователи могут обновлять элементы, которые изменяют общее количество. Все работает правильно, за исключением установки количества данных на Stripe Checkout js script.
Когда страница загружается, все работает отлично, однако, если клиент меняет свою корзину, сумма данных не обновляется. У меня есть еще одна коробка, которая показывает общее количество, и эта сумма прекрасно обновляется.
<!-- 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>
И тогда мой javascript, который пытается обновить, выглядит так:
function updateTotal(amount) {
/* update the total in the cart in both the table cell and
in the stripe button data-amount */
var totalStr = shoppingTotalCell.text().replace('$', ''),
originalTotal = parseFloat(totalStr),
newTotal = originalTotal + amount,
newTotalStripe = newTotal * 100,
newTotalStr = newTotal.toFixed(2),
script = $('#stripe-script');
shoppingTotalCell.text('$' + newTotalStr);
console.log(script.data("amount"));
// this returns the correct original amount
script.data("amount", newTotalStripe);
console.log(script.data("amount"));
/* this returns the updated amount, however the HTML data-amount
attribute does not update. */
}