我正在为 Web 应用程序实现 Express Checkout API,一切正常。不过,我对手术的流程仍有疑问。
如果我理解得很好,用户体验如下:
- 用户在商家网站上订购了一些商品
- 在付款之前,用户被发送到 PayPal 网站
- 认证后,用户可以确认交易的一些细节,例如发货单,但不能确认总金额
- 用户被重定向到商家网站,在那里他可以确认其他信息,特别是订单的总金额
- 付款完成,用户从商家那里获得确认页面。
SetExpressCheckout
调用发生在 1 和 2之间GetExpressCheckoutDetails
,3 和 4DoExpressCheckoutPayment
之间,最后是 4 和 5 之间。
在步骤 3 中没有给用户机会确认总金额的事实是因为此时商家可能没有关于运费的信息。实际上,文档明确指出,金额可以在调用 toSetExpressCheckout
和 to之间变化DoExpressCheckoutPayment
。
那么,如果商家对用户撒谎怎么办?我可能会说您确认支付 20 欧元并向您收取 2000 欧元。现在,这是一种欺诈行为,我可能会被起诉,但无论如何都不应该被允许。
请注意,文档还声称通过调用获取有关交易的详细信息GetExpressCheckoutDetails
是可选的。类似地,用户查看付款详情的步骤 4 可能会被完全跳过,在这种情况下用户不会确认任何金额!
我是不是搞错了什么,或者这个工作背后有什么理由?