条纹结帐 - 费用金额

时间:2015-05-12 12:18:30

标签: php checkout stripe-payments

我遵循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接收帖子并创建一个费用,但是指定&#39;金额的值(目前为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>';
?>

所以,我可以在这里想到两种方法

  1. 每个产品的PHP页面,包含硬编码量 - 不,谢谢
  2. 将密钥和金额作为隐藏变量传递,这些看起来并不像#34;对&#34;因为它可以很容易地改变,例如,以下

    <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 :(得分:0)

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