Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
Javascript jQuery是否是电子商务站点中处理产品变化计算的可接受方法?_Javascript_Jquery_Paypal_E Commerce - Fatal编程技术网

Javascript jQuery是否是电子商务站点中处理产品变化计算的可接受方法?

Javascript jQuery是否是电子商务站点中处理产品变化计算的可接受方法?,javascript,jquery,paypal,e-commerce,Javascript,Jquery,Paypal,E Commerce,我正在创建一个非常简单的商店,里面有一个产品,用户可以选择不同的选项,根据选择的选项,这将生成该商品的总成本。例如,如果用户选择红色变体,价格将上涨5%,如果用户选择蓝色变体,价格将上涨10% 目前,我正在使用jQuery进行计算,然后将它们传递到一个空字段,然后将该字段发布到支付网关。这种方法安全吗?理论上,用户可以打开Firebug或Chrome开发者工具,在将其发布到网关之前编辑该值(为零),但这不能应用于类似的产品变化计算方法吗?我正在试图弄清楚这是否是一个问题,但有没有更好的方法?在P

我正在创建一个非常简单的商店,里面有一个产品,用户可以选择不同的选项,根据选择的选项,这将生成该商品的总成本。例如,如果用户选择红色变体,价格将上涨5%,如果用户选择蓝色变体,价格将上涨10%


目前,我正在使用jQuery进行计算,然后将它们传递到一个空字段,然后将该字段发布到支付网关。这种方法安全吗?理论上,用户可以打开Firebug或Chrome开发者工具,在将其发布到网关之前编辑该值(为零),但这不能应用于类似的产品变化计算方法吗?我正在试图弄清楚这是否是一个问题,但有没有更好的方法?

在PayPal付款后,PayPal会将(即时付款通知)消息发送到您指定的url。您必须重新发送该消息以验证消息是否来自PayPal。之后,为了确保用户支付了正确的金额,您可以从IPN获得值(它可能带有用户Id、交易Id等…),并使用您的数据库进行检查

一些有用的链接:

电子商务网站的第一条规则:永远不要相信用户 因此,这是正确的过程:

在使用jQuery进行计算并将其传递到一个空字段(该字段随后发布到支付网关)后,将用户名/id、交易和金额存储在数据库中。创建用于验证存储值和paypal的IPN响应的方法


如果值匹配,则付款成功。否则,请将其标记为稍后手动验证(您应该存储id以便在paypal上更容易找到)。

在paypal付款后,paypal会将(即时付款通知)消息发送到您指定的url。您必须重新发送该消息以验证消息是否来自paypal。之后,为了确保用户支付了正确的金额,您可以从IPN获得值(它可能带有用户Id、交易Id等…),并使用您的数据库进行检查

一些有用的链接:

电子商务网站的第一条规则:永远不要相信用户 因此,这是正确的过程:

在使用jQuery进行计算并将其传递到一个空字段(该字段随后发布到支付网关)后,将用户名/id、交易和金额存储在数据库中。创建用于验证存储值和paypal的IPN响应的方法


如果值匹配,则付款成功。否则,请将其标记以备日后手动验证(您应该存储id以便在paypal上更容易找到)。

如果选择此方法,您可能需要将产品配置(如字符串represenetaion od JSON或逗号分隔字段等)存储在隐藏字段中,并计算价格(客户端或服务器端)并仅将价格作为信息显示给客户

当他提交配置时,验证它并在服务器上再次计算pice

这样,客户可以更改配置(通过Firebug等),但无法更改价格,因为价格是基于配置计算的


好吧,我就是这么做的。

如果您选择这种方法,您可能需要将产品配置(如字符串represenetaion od JSON或逗号分隔字段等)存储在一个隐藏字段中,计算价格(客户端或服务器端),并仅将价格作为信息显示给客户

当他提交配置时,验证它并在服务器上再次计算pice

这样,客户可以更改配置(通过Firebug等),但无法更改价格,因为价格是基于配置计算的


嗯,这就是我要做的。

这肯定是个问题,正如你自己所说,用户可以修改值

  • 因此,您可以在客户端向用户显示一个价格,而不管价值是如何生成的,因为它永远不会被服务器信任,也永远不会被传递到支付网关

  • 用户按下“立即购买”按钮,将被重定向到支付网关,但首先通过您自己的服务器。服务器应该验证产品并计算价格

  • 最终价格(由您自己的服务器计算)将在付款点显示给用户


在客户端,您可以继续使用JQuery生成值,或者让服务器通过AJAX请求返回值。但这只是为了用户体验,值不可信。

这肯定是个问题,正如您自己所说,用户可以修改值

  • 因此,您可以在客户端向用户显示一个价格,而不管价值是如何生成的,因为它永远不会被服务器信任,也永远不会被传递到支付网关

  • 用户按下“立即购买”按钮,将被重定向到支付网关,但首先通过您自己的服务器。服务器应该验证产品并计算价格

  • 最终价格(由您自己的服务器计算)将在付款点显示给用户


在客户端,您可以继续使用JQuery生成值,或者让服务器通过AJAX请求返回值。但这只是为了用户体验,不能信任这些值。

计算/验证应该在服务器端完成,因为您提到有足够知识的人可以绕过您的计算或发送更改的数据,所以这不是一种安全的方法…感谢darkajax,为mecalculations/Validation清理东西应该在服务器端完成,因为您提到有足够知识的人可以绕过您的计算或发送修改过的数据,所以这不是一种安全的方法…感谢darkajax,为meThanks Gerve清理东西,这真的很有帮助。我会试试的。比