条带检出错误值错误

时间:2016-04-25 22:08:27

标签: stripe-payments

我们的结账时遇到一个小问题,客户有时会出现错误的价格。

例如,如果总数应为150英镑,则显示为15,000英镑

我们很难调试,因为我们自己无法复制问题而且它似乎与浏览器无关。

我们正在以GBP£

取金额

以下是我们使用的代码:

 <form action="/user/dashboard/releases/card/{$release->releaseFrontID}/" method="POST" class="stripe-container"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="REMOVED" data-amount="{math equation='x * 100' x=$release->releaseGrandTotal}"

1 个答案:

答案 0 :(得分:0)

所以我认为你应该做两件事。首先,确保您正确设置货币而不是简单地覆盖标签。因为你的代码示例实际上并不完整,所以我很难说出了什么问题。我的猜测是你的小数学脚本会变得很糟糕。

我建议将数学分开并将其放入单独的部分进行计算,并使用自定义结账集成[1]而不是基本结账集成。

[1] https://stripe.com/docs/checkout#integration-custom

原件:

<form action="/user/dashboard/releases/card/{$release->releaseFrontID}/" method="POST" class="stripe-container"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="REMOVED" data-amount="{math equation='x * 100' x=$release->releaseGrandTotal}"

推荐:

<script src="https://checkout.stripe.com/checkout.js"></script>

<button id="customButton">Purchase</button>

<script>

  var amount = 100 * {$release->releaseGrandTotal};
  console.log('Amount >> ' + amount);

  var handler = StripeCheckout.configure({
    key: 'pk_test_xxx',
    locale: 'auto',
    currency: 'gbp',
    amount: amount,
    token: function(token) {
      $.post(
        "/user/dashboard/releases/card/{$release->releaseFrontID}/",
        {
          stripeToken: token.id,
          stripeAmount: amount,
          stripeEmail: token.email
        }, function (data, status) {
          // request succeeded, do something
        }
      );
    }
  });

  $('#customButton').on('click', function(e) {

    // Open Checkout with further options:
    handler.open({
      name: 'Company Name',
      description: 'Charge Description'
    });
    e.preventDefault();
  });

  // Close Checkout on page navigation:
  $(window).on('popstate', function() {
    handler.close();
  });
</script>

一旦你完成了这项工作,就应该明白问题出在哪里。这是Smarty模板吗?你是否考虑过将金额作为上下文的一部分,而不是用模板语言做某种数学方程?