javascript - Stripe 结帐。查询客户金额

标签 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>

我正在将 token 从客户端 strip 回调发送到服务器:

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

client端数明显低于server端数额,stripe按server端数收费。

最佳答案

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

我们的流程是:

  1. 客户端向后端发出 API 调用以获取它应该为产品收取的价格。
  2. 客户端调用stripe api获取token,并将步骤1的金额显示给客户端
  3. 客户获得 token 后,调用后端 API 以通过 token 和金额(我们称之为对帐金额)进行收费。
  4. 在后端,在调用 stripe create charge api 之前,我们首先通过比较客户在第 3 步中提供的金额与产品应有的金额(来自第 1 步)来核对金额。如果这些不匹配,我们不会继续并向客户端返回错误。

关于javascript - Stripe 结帐。查询客户金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27040942/

相关文章:

javascript - 在 python 中执行 Javascript 的语法

css - 如何在集成了 AngularJS 的情况下设置 Stripe 信用卡字段的样式?

javascript - 获取浏览器中当前所有打开的选项卡的 URL

javascript - 清除后 Highstock 图表不显示

javascript - 如何给npm项目添加本地依赖

PHP:数组到可变函数参数值

php - SQL 查询 INSERT 无法将值插入我的数据库

PHP 权限被拒绝错误

html - 我如何将值从 Angular 形式转移到服务器nodejs

c# - 使用 Stripe 结帐 session 时获取新创建的客户 ID