Paypal快速结账支付更多(问题)

时间:2013-09-23 14:47:23

标签: api paypal

嗨伙计们。 我刚刚在我的网站上实现了paypal checkout express。 一切顺利,直到我测试它为止。(没有沙箱因为他们没有给我发送确认电子邮件,我无法获得api凭证) - 我使用自己的paypal帐户。

我的问题是:

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

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

步骤3)获取买家详细信息...“GetExpressCheckoutDetails”并保存(一切顺利)

这是一个大问题:

步骤4)使用TOKEN,PAYER_ID等调用api:“DoExpressCheckoutPayment”支付总金额

在这一步中,我错误地将TOTAL AMOUNT添加为500美元 - 硬编码,在最终确定订单后,500美元从买家帐户转移到我的帐户而不是0.01美元。

这怎么可能???为什么paypal不会使用DoExpressCheckoutPayment的总金额来检查setExpressCheckout的总金额,因为tocken是相同的。

在我看来,这是一个重大的安全问题。

1 个答案:

答案 0 :(得分:0)

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

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

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