我正在努力使条纹结帐的成功更好一点div
,表示“感谢您的提交”。我正在寻找一个会有这个感谢信息的模态。但我是PHP的新手,我不断打破条纹令牌。我不知道该怎么办。我已经看到了使用AJAX的自定义提交按钮,但不确定是否需要。提前谢谢!
这是我的HTML:
<?php if (isset($_POST['cart_errors'])) : ?>
<div class="thank-you"><?=$_POST['cart_errors']?></div>
<?php endif // errors ?>
这是JS
var stripeResponseHandler = function(status, response) {
var $form = $('#cart-payment-form');
console.log(response);
if (response.error) {
// Show the errors on the form
$form.find('.payment-errors').text(response.error.message);
$form.find('button').prop('disabled', false);
} else {
// token contains id, last4, and card type
var token = response.id;
// Insert the token into the form so it gets submitted to the server
$form.append($('<input type="hidden" name="stripeToken" />').val(token));
// and submit
$form.get(0).submit();
}
};
$('#cart-payment-form').submit(function(event) {
var $form = $(this);
// Disable the submit button to prevent repeated clicks
$form.find('button').prop('disabled', true);
Stripe.card.createToken($form, stripeResponseHandler);
// Prevent the form from submitting with the default action
return false;
});
$('#thank-you').dialog({
height: 140,
modal: true
});
这是我的PHP:
$cart_stripe_secret_key = get_option("cart_stripe_secret_key");
Stripe::setApiKey($cart_stripe_secret_key);
$token = $_POST['stripeToken'];
try
{
$charge = Stripe_Charge::create(array(
"amount" => $totalCharge*100, // amount in cents, again
"currency" => "usd",
"card" => $token,
"description" => $_POST['surgecart_email']
));
}
catch(Stripe_CardError $e)
{
$_POST['cart_errors'] = "Whoops! There was a problem with your card. Try again?";
return FALSE;
}
$_POST['cart_errors'] = "Thank you for your order!";
答案 0 :(得分:1)
我强烈建议使用Stripe Checkout,它使用模态和ajax地址查找。为了成功返回,您可以使用引导模式http://getbootstrap.com/javascript/。
在成功交易后重定向到的任何页面中,包含模态代码,但保持自动弹出在php中如果在正确的情况下回显'激活模态'js。像这样:
<?php
if($stripe_response()){
echo "<script type='text/javascript'>
$(window).load(function(){
$('#myModal').modal({
show: true});
});
</script>";
}
?>
此外,您可以在if()中添加成功或拒绝的消息。