Saturday, 15 August 2015

javascript - Stripe.js error with Laravel -



javascript - Stripe.js error with Laravel -

i seem having problem stripe.js , using laravel framework cashier.

i'm using stripe.js don't pass , credit card info through server , don't store either. of current time, there seems issue browsers. allow me explain further, chrome works , firefox, net explorer doesn't.

on chrome: when submit field, form behaves expected. show card errors when press submit button. example, card number, expire month, etc (it validates it).

on firefox , ie: form not verify, instead says:

a network error has occurred, , have not been charged. please seek again.

and automatically submit form , not tell if card number accepted, etc. when submit form, goes straight laravel error page says:

missing required param: card

and think means stripe.js not beingness used, , maybe form isn't paying attending the custom js.

stripe.js

$(document).ready(function() { stripe.setpublishablekey('pk_test_hdolaxfuwl53vjchf01fmphs'); $('#subscription-form button').on('click', function() { var form = $('#subscription-form'); var submit = form.find('button'); var submitinitialtext = submit.text(); submit.attr('disabled', 'disabled').text('just 1 moment...'); stripe.card.createtoken(form, function(status, response) { var token; if(response.error) { form.find('.stripe-errors').text(response.error.message).show(); submit.removeattr('disabled'); submit.text(submitinitialtext); homecoming false; } else { token = response.id; form.append($('<input type="hidden" name="token">').val(token)); form.submit(); } }); }); });

you may go seek out app @ http://account.mcjoin.us , improve direct me possible issue. , always, help!

the solution issue quite obvious; net explorer , firefox have not depreciated e.preventdefault();

this may confusing, allow me explain. on chrome, e.preventdefault() not necessary, , prevent default form function. on net explorer or firefox, if not present, javascript not able "hijack" form , needs do. therefor, adding e.preventdefault() create form doesn't have default interaction.

let's farther code now, here stripe.js:

$(document).ready(function() { stripe.setpublishablekey('pk_live_ddmqoxgak0v4ys0yh7vnshqu'); $('#subscription-form button').on('click', function(e) { var form = $('#subscription-form'); var submit = form.find('button'); var submitinitialtext = submit.text(); submit.attr('disabled', 'disabled').text('just 1 moment...'); e.preventdefault(); stripe.card.createtoken(form, function(status, response) { var token; if(response.error) { form.find('.stripe-errors').text(response.error.message).show(); submit.removeattr('disabled'); submit.text(submitinitialtext); } else { token = response.id; form.append($('<input type="hidden" name="token">').val(token)); form.submit(); } }); }); });

that's it! it's simple!

javascript php forms laravel stripe-payments

No comments:

Post a Comment