条纹结账.检查客户金额

Stripe checkout. Checking client amount

本文关键字:客户 金额 检查      更新时间:2023-09-26

是否可以检查客户端看到的数量和服务器看到的数量是否相同?

在这里,我在客户端设置金额:

<script src="https://checkout.stripe.com/checkout.js"></script>
<button id="customButton">Purchase</button>
<script>
  var handler = StripeCheckout.configure({
    key: 'pk_test_1002UFB11gJ1sXBHcdDM8HPi',
    image: '/square-image.png',
    token: function(token) {
      // Use the token to create the charge with a server-side script.
      // You can access the token ID with `token.id`
    }
  });
  document.getElementById('customButton').addEventListener('click', function(e) {
    // Open Checkout with further options
    handler.open({
      name: 'Demo Site',
      description: '2 widgets ($20.00)',
      amount: 2000
    });
    e.preventDefault();
  });
  // Close Checkout on page navigation
  window.addEventListener('popstate', function() {
    handler.close();
  });
</script>

我正在将令牌从客户端条带回调发送到服务器:

<?php
require_once(dirname(__FILE__) . '/config.php');
$token  = $_POST['stripeToken'];
$charge = Stripe_Charge::create(array(
  'customer' => $customer->id,
  'amount'   => 1000000000000,
  'currency' => 'usd'
  'email' => 'customer@example.com',
  'card'  => $token
));
echo '<h1>Successfully charged $2!</h1>';
?>

客户端数量明显低于服务器端的数量,stripe 对服务器端数量收费。

我们这样做的方法是让服务器检查它。

我们拥有的流程是:

  1. 客户端对后端进行 API 调用,以获取它应该为产品收取的价格。
  2. 客户端调用条带 API 获取令牌,并向客户端显示步骤 1 中的金额
  3. 客户端获得令牌后,调用后端 API 以通过令牌和金额进行收费(我们称之为对帐金额)。
  4. 在后端,在调用条带创建费用 API 之前,我们首先通过将步骤 3 中客户端提供的金额与产品应为的金额(从步骤 1 开始)进行比较来协调金额。如果这些不匹配,我们将不继续并向客户端返回错误。