0

嘿伙计们。我刚刚在我的网站中实施了贝宝结帐快递。一切都很顺利,直到我对其进行了现场测试。(没有沙箱,因为他们没有向我发送确认电子邮件并且我无法获得 api 凭据)-我使用了自己的贝宝帐户。

我的问题是:

步骤 1) 使用所需数据调用“SetExpressCheckout”。

步骤 2) 获取令牌并重定向用户支付 0.01 美元。(一切都好,用户看到了 0.01 美元)

第 3 步)获取买家详细信息...“GetExpressCheckoutDetails”并保存(一切正常)

这是一个大问题:

步骤 4) 调用 api: "DoExpressCheckoutPayment" 与 TOKEN、PAYER_ID ...等还有PAYMENT TOTAL AMOUNT

在这一步中,我错误地将总金额添加为 500 美元 - 硬编码,在完成订单后,500 美元从买家账户而不是 0.01 美元转入我的账户。

这怎么可能???为什么paypal不检查setExpressCheckout的总金额和DoExpressCheckoutPayment的总金额,因为tocken是一样的。

在我看来,这是一个主要的安全问题。

4

1 回答 1

0

这是设计使然。SetExpressCheckout 设置付款,但在您调用 GetExpressCheckoutDetails 之前,您的应用程序不会知道(在最佳实践方案中)买家的送货地址。此时,您可以相应地计算运费和销售税并将其添加到订单中,显示最终审核页面,然后调用 DoExpressCheckoutPayment 并使用最终的订单金额收取费用。

所以,是的,无论你在 DECP 中传递什么,都会被收取费用,所以你要确保它是正确的。

至于测试,您只需要在http://developer.paypal.com创建一个帐户,然后在其中创建沙盒帐户。您可以通过单击每个沙盒帐户的配置文件来获取沙盒帐户的 API 凭据。无需等待任何确认电子邮件或任何东西。不确定您指的是什么,但我绝对建议在沙箱上进行测试。

于 2013-09-23T17:47:46.440 回答