为条带检出创建模态成功通知

时间:2014-05-19 20:16:25

标签: php jquery stripe-payments

我正在努力使条纹结帐的成功更好一点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!";

1 个答案:

答案 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()中添加成功或拒绝的消息。