条纹结帐自定义按钮不充电 [英] stripe checkout custom button not charging

查看:75
本文介绍了条纹结帐自定义按钮不充电的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图让Stripe的Checkout自定义按钮对信用卡收费,但是在我输入信用卡详细信息之后,它所做的只是最小化.我正在使用文档中的代码,但无法正常工作.简单的按钮易于使用,我认为这就像自定义一个按钮一样容易,但有很大的不同.

I am trying to get Stripe's Checkout Custom Button to charge a credit card but all it does is minimize after I enter the credit card details. I am using the code found in the documentation but I can't get it to work. The simple button is easy to use and I figured it would be as easy as just customizing that one but it's very different.

代码如下:

付款页面

<form action="charge.php" method="post">
            <script src="https://checkout.stripe.com/checkout.js"></script>
            <input type="submit" value="Pay with card" id="customButton"/>
            <?php require_once('./config.php'); ?>
                <script>
                var handler = StripeCheckout.configure({
                    key: '<?php echo $stripe['publishable_key']; ?>',
                    image: 'favicon.png',
                    token: function(token, args) {
                    // Use the token to create the charge with a server-side script.
                    // You can access the token ID with `token.id`
                    }
                });

                document.getElementById('customButton').addEventListener('click', function(e) {
                    // Open Checkout with further options
                    handler.open({
                    name: 'Imprintnation',      
                    description: 'Decals',
                    amount: <?php echo $stripeTotal; ?>

                });
                    e.preventDefault();
                });
                </script>
                </form>

收费页面(charge.php)

<?php
require_once(dirname(__FILE__) . '/config.php');

$token  = $_POST['stripeToken'];

$customer = Stripe_Customer::create(array(
  'email' => 'customer@example.com',
  'card'  => $token
));

$charge = Stripe_Charge::create(array(
  'customer' => $customer->id,
  'amount'   => 5000,
  'currency' => 'usd'
));

echo '<h1>Successfully charged $5!</h1>';
?>

配置页面(config.php)

<?php
require_once('./lib/Stripe.php');

$stripe = array(
secret_key      => 'sk_test_************************',
publishable_key => 'pk_test_************************'
);

Stripe::setApiKey($stripe['secret_key']);
?>

我在这里想念什么?我什至无法获取令牌.

What am I missing here? I can't even get it to retrieve a token.

如何获取令牌并为卡充值?

推荐答案

最后使它起作用.不得不改变一堆.这是代码:

Finally got it to work. Had to change a bunch of it. Here is the code:

付款页面

<form action="charge.php" method="post">
<script src="https://checkout.stripe.com/checkout.js"></script>
<script src="http://code.jquery.com/jquery-latest.min.js"></script> 

<button id="customButton">Pay with Card</button>
<style>
#customButton{
width:300px;
height:50px;
background-color:orange;
color:white;
border:2px solid green;
}
</style>
 <script>
 $('#customButton').click(function(){
 var token = function(res){
 var $input = $('<input type=hidden name=stripeToken />').val(res.id);
 $('form').append($input).submit();
 };

 StripeCheckout.open({
 key:         '<?php echo $stripe['publishable_key']; ?>',
 address:     false,
 amount:      '<?php echo $price; ?>',
 currency:    'usd',
 name:        'test',
 description: '<?php echo $desc; ?>',
 panelLabel:  'Checkout',
 token:       token
 });

 return false;
 });
 </script>
 <input type="hidden" name="desc" value="<?php echo $desc; ?>"/>
 <input type="hidden" name="totalPrice" value="<?php echo $price; ?>"/>
</form>

charge.php

<?php
require_once(dirname(__FILE__) . '/config.php');

$token  = $_POST['stripeToken'];
$amount = $_POST['totalPrice'];
$desc = $_POST['desc'];
$percent = "0.01";
$realAmount = $amount * $percent;
try {       
$charge = Stripe_Charge::create(array(
    'card' => $token,
    'amount'   => $amount,  
    'currency' => 'usd',
    'description' => $desc
    ));

    } catch(Stripe_CardError $e) {
// The card has been declined
}

echo "<h1>Successfully charged $$realAmount!</h1>";
?>

我希望Stripe的文档更加简单,但是此代码可以处理费用并将其记录在您的仪表板上.

I wish Stripe's documentation was more straightforward but this code handles the charge and it logs it on your dashboard.

这篇关于条纹结帐自定义按钮不充电的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆