Stripe 在 PHP 后未充电
Stripe not charging in PHP
我创建了一个非常简单的网站,它具有提交到收费页面的默认条带结帐。我已经按照 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 (.00)"
data-image="/128x128.png"
data-bitcoin="true">
</script>
</form>
</div>
结帐时的所有输入,如电子邮件、令牌和公钥,都完美地传输到 charge.php 页面。在 charge.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>
打印出表单提交中的所有变量。但是,由于某种原因,实际收费不起作用并且 header(即您已被收费)未打印出来。令牌是正确的,所以我真的不确定它怎么可能不收费。为什么我错了,我该如何调试才能找出答案?
Config.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';
?>
看来问题出在data-bitcoin="true"。摆脱它意味着付款已经完成。
我创建了一个非常简单的网站,它具有提交到收费页面的默认条带结帐。我已经按照 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 (.00)"
data-image="/128x128.png"
data-bitcoin="true">
</script>
</form>
</div>
结帐时的所有输入,如电子邮件、令牌和公钥,都完美地传输到 charge.php 页面。在 charge.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>
打印出表单提交中的所有变量。但是,由于某种原因,实际收费不起作用并且 header(即您已被收费)未打印出来。令牌是正确的,所以我真的不确定它怎么可能不收费。为什么我错了,我该如何调试才能找出答案?
Config.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';
?>
看来问题出在data-bitcoin="true"。摆脱它意味着付款已经完成。