条纹结帐。检查客户金额

时间:2014-11-20 13:34:24

标签: javascript php stripe-payments

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

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

<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>';
?>

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

1 个答案:

答案 0 :(得分:3)

我们执行此操作的方法是让服务器对其进行检查。

我们的流程是:

  1. 客户端对后端进行API调用,以获取应为产品收取的价格。
  2. 客户端调用stripe api获取令牌,并显示步骤1中的金额给客户端
  3. 一旦客户拥有令牌,请调用后端API以通过令牌和金额(我们称其为对帐金额)进行收费。
  4. 在后端,在调用数据条创建费用api之前,我们首先通过将步骤3中的客户端给出的金额与产品应达到的金额(从步骤1开始)进行比较来对金额进行调节。如果这些不匹配,我们将不继续,并向客户返回错误。