2020-12-25 16:33:01 +00:00
|
|
|
{% extends 'uncloud/base.html' %}
|
2021-02-13 17:50:28 +00:00
|
|
|
{% block bootstrap5_extra_head %}
|
2021-07-19 14:36:10 +00:00
|
|
|
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
|
2020-12-25 16:33:01 +00:00
|
|
|
<script src="https://js.stripe.com/v3/"></script>
|
|
|
|
{% endblock %}
|
2021-02-13 17:50:28 +00:00
|
|
|
{% block bootstrap5_content %}
|
|
|
|
<div class="container">
|
2021-07-19 14:36:10 +00:00
|
|
|
{% csrf_token %}
|
2021-02-13 17:50:28 +00:00
|
|
|
<div id="content">
|
|
|
|
<h1>Register Credit Card with Stripe</h1>
|
|
|
|
<p>
|
|
|
|
By submitting I authorise to send instructions to
|
|
|
|
the financial institution that issued my card to take
|
|
|
|
payments from my card account in accordance with the
|
2021-05-25 18:22:18 +00:00
|
|
|
terms of my agreement with you.
|
2021-02-13 17:50:28 +00:00
|
|
|
</p>
|
2020-12-25 16:33:01 +00:00
|
|
|
|
2021-02-13 17:50:28 +00:00
|
|
|
<span id="message"></span>
|
2021-05-25 18:22:18 +00:00
|
|
|
|
2021-07-19 14:36:10 +00:00
|
|
|
<input id="cardholder-name" type="text">
|
|
|
|
<!-- placeholder for Elements -->
|
|
|
|
<form id="setup-form" data-secret="{{ client_secret }}">
|
|
|
|
<div id="card-element"></div>
|
|
|
|
<div id="card-errors" role="alert"></div>
|
|
|
|
<button id="card-button">
|
|
|
|
Save Card
|
|
|
|
</button>
|
|
|
|
</form>
|
2021-02-13 17:50:28 +00:00
|
|
|
<div id="ungleichmessage">The card will be registered with stripe.</div>
|
2020-12-25 16:33:01 +00:00
|
|
|
|
2021-02-13 17:50:28 +00:00
|
|
|
<div id="goback" style="display: none;">
|
|
|
|
<a href="{% url 'uncloudindex' %}">Go back to main page</a>
|
|
|
|
</div>
|
2021-01-01 11:41:54 +00:00
|
|
|
</div>
|
2020-12-25 16:33:01 +00:00
|
|
|
|
2021-01-01 11:41:54 +00:00
|
|
|
|
2020-12-25 16:33:01 +00:00
|
|
|
<!-- Enable Stripe from UI elements - standard code -->
|
|
|
|
<script>
|
2021-07-19 14:36:10 +00:00
|
|
|
var cardholderName = document.getElementById('cardholder-name');
|
|
|
|
var setupForm = document.getElementById('setup-form');
|
|
|
|
var clientSecret = setupForm.dataset.secret;
|
2020-12-25 16:33:01 +00:00
|
|
|
var stripe = Stripe('{{ stripe_pk }}');
|
2021-07-19 14:36:10 +00:00
|
|
|
|
2020-12-25 16:33:01 +00:00
|
|
|
var cardButton = document.getElementById('card-button');
|
|
|
|
var messageContainer = document.getElementById('message');
|
2021-01-01 11:41:54 +00:00
|
|
|
var backmessage = document.getElementById('goback');
|
2020-12-25 16:33:01 +00:00
|
|
|
var clientSecret = '{{ client_secret }}';
|
|
|
|
|
2021-07-19 14:36:10 +00:00
|
|
|
var elements = stripe.elements();
|
|
|
|
var cardElement = elements.create('card');
|
|
|
|
cardElement.mount('#card-element');
|
2020-12-26 10:22:51 +00:00
|
|
|
|
2021-07-19 14:36:10 +00:00
|
|
|
setupForm.addEventListener('submit', function(ev) {
|
|
|
|
ev.preventDefault();
|
|
|
|
stripe.confirmCardSetup(
|
|
|
|
clientSecret,
|
|
|
|
{
|
|
|
|
payment_method: {
|
|
|
|
card: cardElement,
|
|
|
|
billing_details: {
|
|
|
|
name: cardholderName.value,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
).then(function(result) {
|
|
|
|
if (result.error) {
|
2020-12-25 16:33:01 +00:00
|
|
|
var message = document.createTextNode('Error:' + result.error.message);
|
|
|
|
messageContainer.appendChild(message);
|
|
|
|
} else {
|
2021-07-19 14:36:10 +00:00
|
|
|
document.getElementById("ungleichmessage").innerHTML
|
2020-12-29 00:43:33 +00:00
|
|
|
= "Registered credit card with Stripe."
|
2021-01-01 11:41:54 +00:00
|
|
|
backmessage.style.display = "block";
|
2021-07-19 14:36:10 +00:00
|
|
|
// Return to API on success.
|
2020-12-25 16:33:01 +00:00
|
|
|
}
|
2021-07-19 14:36:10 +00:00
|
|
|
});
|
2020-12-25 16:33:01 +00:00
|
|
|
});
|
|
|
|
</script>
|
|
|
|
{% endblock %}
|