首页 文章

条纹结帐 - 收费金额

提问于
浏览
3

我正在关注https://stripe.com/docs/checkout/guides/php中的基本示例,并且在查看 amount 如何确定并用于创建费用时遇到问题 .

我本以为/希望使用我创建的令牌,我能够检索与之关联的金额,并将此金额传递给\ 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接收帖子并创建一个费用,但是指定数组'amount'索引的值(当前为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>

1 回答

  • 0

    没有令牌只是允许您收费的预先检查,在Javascript中传递给Stripe的金额仅供Stripe用于显示目的 . Stripe_Charge::create 是您实际通过金额的地方 .

相关问题