防止来自 JavaScript 的 PayPal 订单修改

Prevent Modification of PayPal Orders from JavaScript

我开始将 PayPal 结帐与服务器工作流集成。

我的基本需求是在服务器上创建一个订单,并确保客户端无法以任何方式修改它。 由于这一要求,我已经排除了使用“简单”仅 JavaScript 解决方案的可能性,而是打算进行服务器集成,调用我自己的 URL 端点来创建和捕获订单。

但是,我发现客户可以滥用 actions.order.patch() 方法来修改订单的几乎每个方面,包括金额和我附加的 custom_id purchase_item.

基本上,看起来我对订单内容完全没有保证,即使我在服务器上创建它,这是正确的吗? 在那种情况下,这意味着我必须根据我的应用程序的订单数据库检查每个订单的内容。 可能的,但我希望不必那样做。

有线索吗?你如何处理这个问题? 谢谢!

如果您特别担心这种在捕获之前修补总数或其他详细信息的情况,确保它没有改变的唯一方法是在捕获之前执行服务器端“获取详细信息”调用并在至少验证总金额值以及您关心的任何其他字段。

否则,电子商务中通常的一般安全解决方案(针对此问题以及可能出现的其他潜在问题)是简单地捕获并验证捕获响应中的总数。如果捕获的总数超出您的预期,请立即退款或标记发生的事件以供在完成任何操作之前进行审核。