Uncommitted/unverified code (committing for historical purposes)
This commit is contained in:
parent
c2e2e1828f
commit
b6fc169b86
1 changed files with 70 additions and 2 deletions
|
@ -178,8 +178,8 @@ $(document).ready(function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
var $form_new = $('#payment-form-new');
|
var $form_new = $('#payment-form-new');
|
||||||
$form_new.submit(payWithStripe_new);
|
$form_new.submit(payWithStripe);
|
||||||
function payWithStripe_new(e) {
|
function payWithStripe(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
function stripeTokenHandler(token) {
|
function stripeTokenHandler(token) {
|
||||||
|
@ -199,12 +199,80 @@ $(document).ready(function () {
|
||||||
if (typeof window.processing_text !== 'undefined') {
|
if (typeof window.processing_text !== 'undefined') {
|
||||||
process_text = window.processing_text
|
process_text = window.processing_text
|
||||||
}
|
}
|
||||||
|
lear
|
||||||
|
|
||||||
$form_new.find('[type=submit]').html(process_text + ' <i class="fa fa-spinner fa-pulse"></i>');
|
$form_new.find('[type=submit]').html(process_text + ' <i class="fa fa-spinner fa-pulse"></i>');
|
||||||
// Send the token to your server
|
// Send the token to your server
|
||||||
stripeTokenHandler(result.token);
|
stripeTokenHandler(result.token);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
stripe.createPaymentMethod({
|
||||||
|
type: 'card',
|
||||||
|
card: cardNumberElement
|
||||||
|
}).then(function(result) {
|
||||||
|
if (result.error) {
|
||||||
|
showError(result.error.message);
|
||||||
|
} else {
|
||||||
|
// Send paymentMethod.id to server
|
||||||
|
fetch('/ajax/confirm_payment', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
payment_method_id: result.paymentMethod.id
|
||||||
|
})
|
||||||
|
}).then(function(result) {
|
||||||
|
// Handle server response (see Step 3)
|
||||||
|
result.json().then(function(json) {
|
||||||
|
handleServerResponse(json);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function showError(msg) {
|
||||||
|
var errorElement = document.getElementById('card-errors');
|
||||||
|
errorElement.textContent = msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleServerResponse(response) {
|
||||||
|
if (response.error) {
|
||||||
|
// Show error from server on payment form
|
||||||
|
showError(response.error.message);
|
||||||
|
} else if (response.requires_action) {
|
||||||
|
// Use Stripe.js to handle required card action
|
||||||
|
handleAction(response);
|
||||||
|
} else {
|
||||||
|
// Show success message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleAction(response) {
|
||||||
|
stripe.handleCardAction(
|
||||||
|
response.payment_intent_client_secret
|
||||||
|
).then(function(result) {
|
||||||
|
if (result.error) {
|
||||||
|
// Show error in payment form
|
||||||
|
} else {
|
||||||
|
// The card action has been handled
|
||||||
|
// The PaymentIntent can be confirmed again on the server
|
||||||
|
fetch('/ajax/confirm_payment', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
payment_intent_id: result.paymentIntent.id
|
||||||
|
})
|
||||||
|
}).then(function(confirmResult) {
|
||||||
|
return confirmResult.json();
|
||||||
|
}).then(handleServerResponse);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Form validation */
|
/* Form validation */
|
||||||
|
|
Loading…
Reference in a new issue