You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
HTML
51 lines
1.5 KiB
HTML
{% load static %}
|
|
|
|
{% for plan in plans %}
|
|
{% if plan not in user_plans %}
|
|
<a href="/order/{{ plan.product_id}}">
|
|
{% endif %}
|
|
|
|
<div class="product">
|
|
<img src="{% static plan.image %}" alt="Data image"/>
|
|
<div class="description">
|
|
<h3>{{ plan.description }}</h3>
|
|
<h5>£{{ plan.cost }}</h5>
|
|
{% if plan in user_plans %}
|
|
<h5> (purchased) </h5>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% if plan not in user_plans %}
|
|
</a>
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
<script type="text/javascript">
|
|
// Create an instance of the Stripe object with your publishable API key
|
|
var stripe = Stripe("pk_test_51HbqYzAKLUD9ELc0KSyiQ9YohsfiUCeBpAfpflAIg2Uu2RFecx3sfWYXzM1xDtI5XlQihqHMnaPKd45JzDuqXdGP00pYWvRvRe");
|
|
var setupButton = document.getElementById('setup-button');
|
|
setupButton.addEventListener("click", function () {
|
|
fetch("/setup-bacs", {
|
|
method: "POST",
|
|
})
|
|
.then(function (response) {
|
|
return response.json();
|
|
})
|
|
.then(function (session) {
|
|
return stripe.redirectToCheckout({ sessionId: session.id });
|
|
})
|
|
.then(function (result) {
|
|
// If redirectToCheckout fails due to a browser or network
|
|
// error, you should display the localized error message to your
|
|
// customer using error.message.
|
|
if (result.error) {
|
|
alert(result.error.message);
|
|
}
|
|
})
|
|
.catch(function (error) {
|
|
console.error("Error:", error);
|
|
});
|
|
});
|
|
</script>
|