I'm using Stripe to accept Apple pay payments (not super important here). I'm using Django. The code works fine for processing the payments, but I'm having trouble passing in a variable to my separate .js file. (amount to charge) from my HTML file to the Javascript file that actually processes the payments.
home.html
{% load static %}
<!DOCTYPE html>
<html>
<head>
import more scripts here
<script src="https://js.stripe.com/v3/"></script>
<script src="{% static 'interface/utils.js' %}" defer></script>
<script src="{% static 'interface/apple-pay.js' %}" defer></script>
</head>
<body>
<header class="text-center">
<div id="rectangle"></div>
</header>
<section>
<div class="text-center">
<div class="container container--narrow">
<script>amount=parseInt("{{event.price}}")</script>
<div id="payment-request-button">
<!-- A Stripe Element will be inserted here if the browser supports this type of payment method. -->
</div>
</div>
</div>
</section>
</body>
</html>
The Javascript file that gets called to process the payment: apple-pay.js
document.addEventListener('DOMContentLoaded', async () => {
const stripe = Stripe('pk_test_testkey');
const paymentRequest = stripe.paymentRequest() ({
currency: 'usd',
country: 'US',
requestPayerName: true,
requestPayerEmail: true,
total: {
label: 'Test payment',
amount: amount, //trying to pass the variable in here
}
});
// Other functions that get called go here
});
The error I see in the console is that 'total' in the API call is no longer an object. Console.log(typeof amount) returns a number and console.log(amount) returns the number I expect. But how do I pass that to the Javascript file?