Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用条纹付款时如何正确设置金额?_Java_Stripe Payments - Fatal编程技术网

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

Java 使用条纹付款时如何正确设置金额?,java,stripe-payments,Java,Stripe Payments,我不完全理解Stripe中的付款流程。例如,用户必须支付50美元。我(我的应用程序)正在做什么: 我向用户显示一个表单,用于输入有关卡的数据 用户按下支付按钮后,我获取对象请求,并从中获取令牌。然后我填充参数,其中一个参数是amount: String-token=request.getParameter(“stripeToken”); Map params=新的HashMap(); 参数卖出价(“金额”,50000); 参数卖出价(“货币”、“美元”); 参数put(“说明”、“示例费用”

我不完全理解Stripe中的付款流程。例如,用户必须支付50美元。我(我的应用程序)正在做什么:

  • 我向用户显示一个表单,用于输入有关卡的数据
  • 
    
  • 用户按下支付按钮后,我获取对象
    请求
    ,并从中获取令牌。然后我填充参数,其中一个参数是
    amount
  • String-token=request.getParameter(“stripeToken”);
    Map params=新的HashMap();
    参数卖出价(“金额”,50000);
    参数卖出价(“货币”、“美元”);
    参数put(“说明”、“示例费用”);
    参数put(“源”,令牌);
    费用=费用。创建(参数);
    
    为什么我要发送两次金额?第一次在表格上第二次在代码上

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

    params.put(“金额”,request.getParameter(“金额”)//总是0
    
    在所有尝试中,这样的方法总是向我返回0

    它是如何工作的?第一步和第二步中的金额通常如何关联?如果我在第二步中指定另一个金额怎么办?也就是说,用户将在表单上看到$50,然后从代码中随机安装$60


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

    从前端设置金额是一种安全和欺诈风险。例如,客户可以轻松地使用浏览器扩展或其他工具更改请求中发送的金额。如果您的后端盲目信任此金额,则攻击者有可能在您的系统上创建订单,但例如将价格更改为$0.01

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


    数据金额
    仅用于向用户显示,而您传递给创建费用API的金额是他们将要收取的实际金额。

    我在形成代币时是否在表单上向用户显示了金额?也就是说,如果我向他显示一个金额,然后从代码中发送另一个金额,那么令牌不可能是无效的吗?不,令牌与金额没有任何连接,它只是表示一个支付源。因此,您当然可以显示一个并对另一个收费,API不会拒绝,但自然您不应该通过设计来真正做到这一点。