Test PaymentIntent for payment of generic onetime products

This commit is contained in:
PCoder 2020-12-24 20:03:46 +05:30
parent ec1da8fbdf
commit e9c596de66
2 changed files with 33 additions and 13 deletions

View file

@ -291,22 +291,21 @@ class PaymentOrderView(FormView):
payment_intent_response = stripe_utils.get_payment_intent(
int(product.get_actual_price() * 100)
)
if not payment_intent_response.get('response_object'):
payment_intent = payment_intent_response.get('response_object')
if not payment_intent:
logger.error("Could not create payment_intent %s" %
str(payment_intent_response))
else:
logger.debug("*******")
logger.debug(
"payment_intent_obj = %s" %
str(payment_intent_response.get('response_object')))
logger.debug("*******")
logger.debug("payment_intent_obj = %s" %
str(payment_intent))
context.update({'generic_payment_form': ProductPaymentForm(
prefix='generic_payment_form',
initial={'product_name': product.product_name,
initial={
'product_name': product.product_name,
'amount': float(product.get_actual_price()),
'recurring': product.product_is_subscription,
'description': product.product_description,
'payment_intent_secret': 'secret_here'
'payment_intent_secret': payment_intent.client_secret
},
product_id=product.id
), })

View file

@ -178,7 +178,28 @@ $(document).ready(function () {
}
var $form_new = $('#payment-form-new');
$form_new.submit(payWithStripe_new);
$form_new.submit(payWithPaymentIntent);
function payWithPaymentIntent(e) {
e.preventDefault();
stripe.confirmCardPayment(
window.paymentIntentSecret,
{
payment_method: {card: cardNumberElement}
}
).then(function(result) {
if (result.error) {
// Display error.message in your UI.
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
} else {
// The payment has succeeded
// Display a success message
alert("Thanks for the order. Your product will be provisioned " +
"as soon as we receive the payment. Thank you.");
}
});
}
function payWithStripe_new(e) {
e.preventDefault();