【问题标题】:Stripe Checkout - Charge AmountStripe Checkout - 收费金额
【发布时间】: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>';
?>

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

  1. 每个产品都有一个带有硬编码金额的 PHP 页面 - 不用了,谢谢
  2. 将密钥和数量作为隐藏变量传递,这些看起来并不“正确”,因为它很容易更改,例如下面

    <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


    【解决方案1】:

    不,令牌只是允许您进行收费的预检查,在 Javascript 中传递给 Stripe 的金额仅由 Stripe 用于显示目的。 Stripe_Charge::create 是您实际传递金额的地方。

    【讨论】:

    • 我了解数据属性和费用金额,但如果您通过他们的任何“结帐”示例工作,他们似乎总是在处理“费用”的脚本中硬编码金额值。如果您有一种产品但我有多种产品,这会很好。
    • 输入总数,不确定你得到了什么——它们只是样本。
    猜你喜欢
    • 2012-08-27
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2017-07-18
    • 1970-01-01
    • 2021-07-18
    • 2021-05-29
    相关资源
    最近更新 更多