条纹结帐。检查客户金额

问题描述 投票:8回答:1

是否可以检查客户端看到的金额以及服务器看到的金额是否相同?

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

<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' => '[email protected]',
  'card'  => $token
));

echo '<h1>Successfully charged $2!</h1>';
?>

客户端编号明显低于服务器端的数量,条带收取服务器端编号。

javascript php stripe-payments
1个回答
3
投票

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

我们的流程是:

  1. 客户端对后端进行API调用以获取应为产品收取的价格。
  2. 客户端调用条带api以获取令牌,并将步骤1中的金额显示给客户端
  3. 一旦客户端有令牌,请调用后端API以通过令牌和金额收取费用(我们称之为对帐金额)。
  4. 在后端,在调用条带创建费用api之前,我们首先通过将步骤3中从客户端给出的金额与产品应该的金额(来自步骤1)进行比较来核对金额。如果这些不匹配,我们不会继续并向客户端返回错误。
© www.soinside.com 2019 - 2024. All rights reserved.