【问题标题】:static amount not variable静态金额不可变
【发布时间】:2021-11-23 23:49:05
【问题描述】:

我如何在我的订单项上发送可变金额,因为它只接受整数请休息一切正常,但这个可变金额不起作用尝试 $params->金额不起作用

<?php

require_once('vendor/autoload.php');
\Stripe\Stripe::setApiKey('sk_test_key');

$session = \Stripe\Checkout\Session::create([
    'payment_method_types' => ['card'],
    'line_items' => [[
      'price_data' => [
        'currency' => 'usd',
        'product_data' => [
          'name' => 'T-shirt',
        ],
        'unit_amount' => 2000,
      ],
      'quantity' => 1,
    ]],
    'mode' => 'payment',
    'success_url' => 'https://example.com/success',
    'cancel_url' => 'https://example.com/cancel',
  ]);

?>

<html>
  <head>
    <title>Buy cool new product</title>
    <script src="https://js.stripe.com/v3/"></script>
  </head>
  <body>
      <div class="field">

      <label for="amount">Amount to pay</label>
      <input type="number" id="amount" step="0.01" value="5.00">
      </div>
      <button id="checkout-button">Checkout</button>
      <script>
          var stripe = Stripe('pk_test_51JWkHLK7X12cK8Ptf5y5DQn6Ugf6miu3AqSuhH9wdLsyTB9ouf0TY31vDQxq19xIt6YH76uMTEX1kU9HMyrcEb6w00MTxHnGxc');
          var amount = document.getElementById('amount');
          const btn = document.getElementById("checkout-button")
          btn.addEventListener('click', function(e) {
              e.preventDefault();
              stripe.redirectToCheckout({
                sessionId: "<?php echo $session->id; ?>"            
          });
          })
          
      </script>
  </body>
</html>

我如何在我的订单项上发送可变金额,因为它只接受整数请休息一切正常,但这个可变金额不起作用尝试 $params->金额不起作用

【问题讨论】:

标签: javascript stripe-payments node-modules


【解决方案1】:

使用您的密钥创建支付意图的代码需要在服务器端运行 - 您不得在客户端代码中使用您的密钥。

您应该按照指南here 了解如何生成支付意图并在服务器呈现的模板中提供密钥,或者您可以从 SPA 向您的服务器发出异步请求以获取支付意图客户端秘密。该指南介绍了这两个选项。

【讨论】:

  • 我没有任何服务器,所以我假设我可以在没有服务器的情况下使用第二张图
  • 如所写,您的 confirmCardPayment 调用使用占位符客户端密码,而不是从您创建的支付意图中替换真实的密码,其他问题除外。如果没有后端服务器,您将无法构建自定义支付流程集成。如果您没有服务器,则应考虑使用支付链接,或查看各种插件选项。
  • 我认为这不是一个好主意,不。但是现在您要问的是关于如何托管应用程序的不同问题,这涉及到许多其他资源。
  • 您可以使用 Stripe,而不是 custom 支付流程。查看上面的支付链接文档,支付链接可以在没有服务器的情况下为您完成这项工作。
猜你喜欢
  • 2015-04-23
  • 2017-07-10
  • 1970-01-01
  • 2020-05-12
  • 2011-09-28
  • 2010-09-28
  • 2011-12-04
  • 2014-03-08
  • 1970-01-01
相关资源
最近更新 更多