【问题标题】:How to handle quantity if it changed via Firebug?如果通过 Firebug 更改数量如何处理?
【发布时间】:2013-02-18 13:40:37
【问题描述】:

请给我建议或帮助我。

我正在我的网站上集成 2Checkout 网关,我面临着有趣的情况。我有一个名为“从 2CO 购买”的按钮,它是购买表单的一部分。

<form method="post" action="https://www.2checkout.com/checkout/purchase">
    <p>
        <input type="hidden" value="1952334" name="sid">
        <input type="hidden" value="1" name="quantity">
        <input type="hidden" value="Y" name="fixed">
        <input type="hidden" value="4" name="product_id">
        <input type="submit" value="Buy from 2CO" name="submit">
    </p>
</form>

表单具有隐藏的数量输入,但可以使用 Firebug 更改。并且可以提交表格。之后,您将被指向付款页面,如下所示:

http://img42.imageshack.us/img42/918/cce262e54eb645bb98aa7e3.png

在这里你可以看到“数量”是“1”。 如果我在我的购买表格中设置数量,例如,设置为“5”,它也会被提交,我会得到这张图片:

http://i.imgur.com/K5iQhXf.png

用户可以进入下一个部分并付款。

总的来说:用户可以为我的订阅支付两倍的价格,可以手动设置数量然后请求退款,给我和支付网关带来很多问题。

如何处理这种行为?

【问题讨论】:

  • 他们可以在没有表单的情况下向 2checkout 发布任意请求,您无能为力。如果他们想预付 5 个月的费用,那就让他们来吧。
  • @PavelAnossov,这是真的。但是,如果这笔款项会每月重复一次呢?我的意思是我的客户将被收取 75 美元,因为他第一次付款。真的不知道 2checkout 将如何处理每月重复项目的付款。

标签: python django firebug payment-gateway


【解决方案1】:

简短的回答是你不能任何客户端代码都可以使用 Firebug 或纯 JavaScript 进行操作和提交。

在将值提交到服务之前,您需要在服务器端保留或验证您的值,以确保它们是正确的。

【讨论】:

  • 这就是问题所在。如果有人将订阅数量(愚蠢)从 1 更改为 5 并付款,他的钱将通过支付网关收取,我只会收到“有人购买 5 个月订阅”的消息 O_o
  • 对不起,就是这样。我的建议是重构您的代码以保存您的购物车服务器端的值。我不明白问题出在哪里。
  • 如果有人通过向支付网关提交 POST 请求为每月订阅支付两次费用,我应该如何处理这笔付款?简单地接受它并计算用户支付 2 个月的费用吗?这将导致通过网关重复订阅的问题。
  • 您的代码,就目前而言,不会阻止您试图阻止的行为。你需要重构你的代码
  • 用户可以提交数量=5的手工制作的URL并付款。请仔细阅读问题。 2checkout.com/checkout/…
猜你喜欢
  • 1970-01-01
  • 2014-06-23
  • 2021-04-19
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
相关资源
最近更新 更多