【发布时间】:2015-07-23 07:34:36
【问题描述】:
我正在按照https://stripe.com/docs/checkout/guides/php 的基本示例进行操作,但在了解如何确定金额并将其用于创建费用时遇到问题。
我曾想过/希望使用我创建的令牌能够检索与其关联的金额并将此金额传递给 \Stripe\Charge::create()?
例如,我有一些 PHP/模板代码可以为一系列产品生成表单
# index.php
<?php require_once('./config.php'); ?>
<form action="charge.php" method="post">
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<?php echo $stripe['publishable_key']; ?>"
data-amount="{$MY_AMOUNT}" data-description="One year's subscription"></script>
</form>
$MY_AMOUNT 将根据正在展示的产品而变化
现在charge.php 接收帖子并创建费用,但指定数组“金额”索引的值(当前为 5000)的正确方法是什么?
<?php
require_once('./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 $50.00!</h1>';
?>
所以,我可以在这里想到两种方法
- 每个产品都有一个带有硬编码金额的 PHP 页面 - 不用了,谢谢
-
将密钥和数量作为隐藏变量传递,这些看起来并不“正确”,因为它很容易更改,例如下面
<form action="charge.php" method="POST"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="{$key}" data-amount="{$amount}" data-currency="GBP" data-address="true" data-name="{$name}" data-description="{$description}" data-image="logo.png"> </script> <input name="myHiddenKey" type="hidden" value="{$amount}" /> <input name="myHiddenName" type="hidden" value="{$name}" /> </form>
【问题讨论】:
标签: php checkout stripe-payments