代码之家  ›  专栏  ›  技术社区  ›  ip696

使用条纹付款时如何正确设置金额?

  •  1
  • ip696  · 技术社区  · 6 年前

    1. 我向用户显示一个表单,用于输入有关卡的数据。
        <form action="your-server-side-code" method="POST">
          <script
            src="https://checkout.stripe.com/checkout.js" class="stripe-button"
            data-key="pk_test_TYooMQauvdEDq54NiTphI7jx"
            data-amount="50000"
            data-name="Stripe.com"
            data-description="Example charge"
            data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
            data-locale="auto"
            data-zip-code="true">
          </script>
        </form>
    
    1. 在用户按下支付按钮后,我得到对象 Request 从中获取令牌。然后我填充参数,其中一个参数是 amount :
        String token = request.getParameter("stripeToken");
    
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("amount", 50000);
            params.put("currency", "usd");
            params.put("description", "Example charge");
            params.put("source", token);
            Charge charge = Charge.create(params);
    

    为什么我要寄两次?第一次在表格上第二次在代码里?

    为什么我不能从请求中获得金额?

    params.put("amount", request.getParameter("amount")); //always 0
    

    在所有尝试中,这样的方法总是向我返回0。

    它是如何工作的?第一步和第二步中的金额通常是如何关联的?如果我在第二步中指定另一个数量呢?也就是说,用户将看到50美元的形式,然后从代码我将随机安装60美元?

    只需发送一次金额并从请求中获取它,这是合乎逻辑的。

    1 回复  |  直到 6 年前
        1
  •  3
  •   karllekko    6 年前

    这就是为什么您应该根据订单/购物车中的商品来确定仅在后端收费的价格。

    data-amount