symposion_app/pinaxcon/templates/registrasion/stripe/credit_card_payment.html
Christopher Neugebauer a3474fd9cd Adds registration to the website (#69)
* Updates settings and requirements

* First pass at attendee profile

* Imports the registration templates; defines attendee profile models etc.

* First pass at themeing the registration form.

* First page of the registration form: done!

* Makes form validation nicer

* Adds populate_inventory

* Improves the additional items page

* Allows for rendering of formsets.

* Adds support for formset extending.

* Removes formset delete buttons

* Review page is LCA-ified

* Fixes some formset behaviour

* Fixes urls.py

* LCA-ifies product_category.html

* Invoices

* Credit card payments

* s/register/tickets/

* Show registration features only whilst products are available (think about this better, later)

* Updates the attendee profile form page

* Form tidy-up

* Makes it so that address info is copied from attendee profile to the address details are autofilled in Stripe.

* Adds feature to offer Australians a dropdown list of states rather than free text.

* Allow toggling of void invoices.

* Adds backgrounds to the headers in the registration process

* Improves the review page

* Adds “Linux Australia” to invoice details.

* Do not show balance due on void/refunded invoices.

* More thumbing

* Adds a link back to reports on each report.

* Tokenisation language.

* Another bug in credit card processing.

* Adds stripe refunds to options

* Removes spurious dashboard button.

* Tidies up the presentation of discounts.

* Tidies up presentation of voucher form.

* Fixes sponsor logo appearance with adblock.

* Front page tweaks

* Lets us specify alternative URLs in homepage panels

* more

* Updates discount amounts.

* More website fixes

* Changes language on pay invoice button

* Adds contact details to the invoice template.

* Updates the currency message in the invoice template.

* Explicitly includes e-mail address, because theme_contact_email doesn’t propagate

* Changes payment text.

* s/registration/selections/

* Removes final face palm

* Fixes lack of speaker dinner tickets for actual presenters.

* Adjusts wording in invoice e-mails

* Invoice wording.

* (FIX)

* Fixes margins on lists and tables

* Improvements arising from those CSS fixes.

* Changes description tags.
2016-09-30 20:46:05 +10:00

104 lines
3.1 KiB
HTML

{% extends "registrasion/base.html" %}
{% load bootstrap %}
{% load registrasion_tags %}
{% load lca2017_tags %}
{% block scripts %}
{{ block.super }}
{{ form.media }}
<script type="text/javascript">
$(function() {
var $form = $('#payment-form');
$form.submit(function(event) {
if ($form.find("input[name='stripe_token']").length) {
// If we've added the stripe token, then we're good to go.
return true;
}
// Disable the submit button to prevent repeated clicks:
$form.find('input[type=submit]').prop('disabled', true);
console.log($form.number);
// Request a token from Stripe:
Stripe.card.createToken($form, stripeResponseHandler);
// Prevent the form from being submitted:
return false;
});
});
function stripeResponseHandler(status, response) {
// Grab the form:
var $form = $('#payment-form');
var $submit = $form.find('input[type=submit]')
if (response.error) { // Problem!
console.log(response.error.message);
// Show the errors on the form:
$form.find('#payment-errors').text(response.error.message);
$form.find('#payment-errors-outer').show();
$submit.prop('disabled', false); // Re-enable submission
} else { // Token was created!
console.log(response);
// Get the token ID:
var token = response.id;
// Insert the token ID into the form so it gets submitted to the server:
$form = $form.append($('<input type="hidden" name="stripe_token" />').val(token));
// Submit the form:
$submit.prop('disabled', false);
$submit.click();
$submit.prop('disabled', true);
$form.append($('<p>').text("Processing your payment. Please do not refresh."));
}
};
</script>
{% endblock %}
{% block header_title %}Credit card payment for invoice #{{ invoice.id}}{% endblock %}
{% block header_inset_image %}{% illustration "casino.svg" %}{% endblock %}
{% block header_paragraph %}
Pay for your linux.conf.au attendance with your Visa, Mastercard, or American Express credit or debit card. Card payments are processed by <a href="https://stripe.com">Stripe</a>.
{% endblock %}
{% block content %}
<p>
No data on this form is retained by {% conference_name %}, rather it is
sent to Stripe. In particular, credit card details are not sent
to linux.conf.au. You must allow JavaScript from <code>js.stripe.com</code> to complete payment.
</p>
<p>You have ${{ invoice.balance_due }} remaining to pay on this invoice.</p>
<p></p>
<h3>Card details</h3>
<form id="payment-form" method="post">
<fieldset>
<div class="has-errors" id="payment-errors-outer" style="display: none;">
<span class="errorlist" id="payment-errors"></span>
</div>
{% csrf_token %}
{% include "_form_snippet.html" with form=form %}
<br />
<div class="btn-group">
<input id="submit" class="btn btn-primary" type="submit" value="Pay ${{ invoice.balance_due }}" />
</div>
</fieldset>
</form>
{% endblock %}