【问题标题】:Stripe not charging in PHPStripe 在 PHP 中不收费
【发布时间】:2015-11-08 16:42:10
【问题描述】:

我创建了一个非常简单的网站,该网站具有提交到收费页面的默认条带结帐。我已经按照 Stripe 网站上的 PHP 说明进行操作,但我完全不知道为什么它不起作用。结帐页面运行良好:

<div class="container">
            <form action="charge.php" method="POST">
                <h6> amount </h6>
                <input type="text" name="amount" />
                <h6> test-info </h6>
                <br /> <input type="text" name="pubkey" />
                <script
                    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
                    data-key="pk_test_NC2CbWJLgm82SMzbxRX4JBLo"
                    data-amount="2000"
                    data-name="Demo Site"
                    data-description="2 widgets ($20.00)"
                    data-image="/128x128.png"
                    data-bitcoin="true">
                </script>
            </form>
        </div>

结账时的所有输入,如电子邮件、令牌和公钥都完美地传输到charge.php页面。负责.php:

<?php
    require_once('config.php');

    $token = $_POST ['stripeToken'];
    $email = $_POST['stripeEmail'];
    $pubkey = $_POST['pubkey'];
    $amount = $_POST['amount'];
    ?>
    <h3> Public key: <?php echo $pubkey; ?> </h3> 
    <h3> Token: <?php echo $token; ?> </h3> 
    <h3> Amount: <?php echo $amount; ?> </h3> 
    <h3> Email: <?php echo $email; ?> </h3>

    <?php
        try {
            $charge = \Stripe\Charge::create(array(
                "amount" => 1000, // amount in cents, again
                "currency" => "gbp",
                "source" => $token,
                "description" => "Example charge"
            ));
            } catch(\Stripe\Error\Card $e) {

            }


    ?>

    <h6> You've been charged </h6>

表单提交的所有变量都被打印出来。但是,由于某种原因,实际收费不起作用,并且标题(即您已被收费)没有打印出来。令牌是正确的,所以我真的不确定它怎么可能不收费。为什么我错了,我该如何调试才能找出答案?

配置.php

<?php 
    require_once('vendor/autoload.php');
    $stripe = array(
        "secret_key" => "sk_test_**********************",
        "publishable_key" => "pk_test_NC2CbWJLgm82SMzbxRX4JBLo"
    );
    \Stripe\Stripe::setApiKey($stripe['secret_key']);
    echo 'this is from config.php';

?>

【问题讨论】:

  • 您意识到表单中的数据与 PHP try/catch 中的数据不同。这种差异可能是 Stripe 没有完成交易的原因。
  • 另外你的错误$e异常输出是什么?它会告诉你为什么 try/catch 失败了。
  • 表格中的数据只是为了展示,据我所知,它实际上并不重要(现在似乎可以使用它们不同)。
  • 请滚动你的私钥,你不应该公开分享它

标签: php web stripe-payments


【解决方案1】:

看来问题出在 data-bitcoin="true" 上。摆脱它意味着付款已经完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 2019-01-12
    • 1970-01-01
    相关资源
    最近更新 更多