【发布时间】:2015-09-07 04:40:05
【问题描述】:
我有一个嵌入其中的表格和详细信息。表单由 AJAX 提交。表格的一部分是 Stripe 付款表格。当我单击但提交按钮时,我希望 Stripe 检查详细信息是否正确,但不提交费用,直到检查并提交了表单的其余部分。然后就可以提交 Stripe 付款了。
这是我的表单提交代码(我自己编写,经过大量简化):
JS:
$(".booking-form").submit(function(e) {
e.preventDefault();
// JavaScipt form validation stuff. If all correct, submit form via AJAX
var data = $(".form").serialize();
$.post(bookingDetails.ajaxurl, data, function(response) {
if (response['data'] == "success") {
// Show some stuff to the user that confirms the submission, etc
}
});
});
PHP:
function sendData() {
$name = $_POST['name'];
$email = $_POST['email'];
$to = "email@domain.com";
$subject = "New email";
$message = "New Email contents";
if ( (!empty($name)) && (!empty($email)) ) { // check that fields have data before submitting
$mail = mail($to, $subject, $message, $headers);
wp_send_json_success("success"); // yes, this site runs on WordPress
}
}
还有 Stripe 的东西(来自 wp-stripe 插件,但很乐意编辑它或其他)
JS:
function stripeResponseHandler(status, response) {
if (response.error) {
$(".payment-errors").show().html(response.error.message);
} else {
var form$ = $("#wp-stripe-payment-form");
var token = response['id'];
form$.append("<input type='hidden' name='stripeToken' value='" + token + "' />");
var newStripeForm = form$.serialize();
$.ajax({
type : "post",
dataType : "json",
url : ajaxurl,
data : newStripeForm,
success: function(response) {
$('.wp-stripe-details').prepend(response);
}
});
}
}
$("#wp-stripe-payment-form").submit(function(event) {
event.preventDefault();
$(".wp-stripe-notification").hide();
var amount = $('.total-vat').val() * 100; //amount you want to charge
Stripe.createToken({
name: $('.wp-stripe-name').val(),
number: $('.card-number').val(),
cvc: $('.card-cvc').val(),
exp_month: $('.card-expiry-month').val(),
exp_year: $('.card-expiry-year').val()
}, stripeResponseHandler);
if (paymentSuccessful) {
console.log("the payment was successful");
}
return false; // prevent the form from submitting with the default action
}
所以我的问题是,我如何整合 Stripe 的东西和我的自定义的东西?
【问题讨论】:
-
Tom 你知道怎么做这个伙伴吗?因为我遇到了同样的问题!
-
嗨@Birdy - 在下面用我的方法回答。希望有帮助!
标签: php jquery ajax forms stripe-payments