如果我们已经设置了 DoExpressCheckoutPayment ,为什么我们必须重复L_PAYMENTREQUEST_0_NAME0
或L_PAYMENTREQUEST_0_DESC0
或PAYMENTREQUEST_0_DESC
或PAYMENTREQUEST_0_AMT
等字段在 SetExpressCheckout ?它们不应该存储在我们在第一步中创建的会话中吗?
答案 0 :(得分:1)
SEC只是准备系统进行结账并给你一个令牌。美国证券交易委员会和DECP呼叫之间可能会发生很大变化,所以由DECP完成所有事情。
例如,对于SEC,您可能会传递送货地址,但在结帐时,买家会将其更改为其PayPal地址之一。然后,当您调用GetExpressCheckoutDetails时,您将返回此地址,因此系统将不知道您希望在订单中包含哪一个。它会使用你传递给DECP的任何东西。
与税务信息,运费等相同,当然也会调整最终金额。也许您在SEC期间没有任何地址,因此您必须等待GECD获取地址并根据该地址计算运费和税金。那么这些参数的值和总和在SEC和DECP之间是不同的。
这些仅仅是几个例子,但同样,根据您的应用程序,SEC和DECP之间可能会有很多变化,因此您只需确保无论您希望将哪些内容包含在最终付款明细中包含在DECP中。