在SetExpressCheckout和DoExpressCheckoutPayment中PAYMENTREQUEST_n_AMT的含义是什么?

时间:2011-11-15 19:33:17

标签: paypal paypal-sandbox

我正在使用ExpressCheckout并在沙盒中测试Paypal。我注意到,如果我在PAYMENTREQUEST_n_AMTDoExpressCheckoutPayment()设置了更高的SetExpressCheckout(),那么SetExpressChecout()中的DoExpressCheckoutPayment()为30美元,SetExpressCheckout()为50美元), Paypal将从我的沙盒个人帐户转移50美元到我的沙箱企业帐户。

是因为这是沙盒服务器还是我应该知道的东西?

我正在建立一个网站,需要向买方收取预付款,并在几天后收取剩余的净价。如果这是Paypal Express Checkout的功能,我将在DoExpressCheckoutPayment()中设置预付金额,并在SUCCESSPAGEREDIRECTREQUESTED=true中设置总净价。此后,买方只会在Paypal中看到提前金额以减少混淆。如果我们说我们只收取预付款,但在Paypal中显示净价总额,可能会引起混淆。

在我的测试中,它适用于沙盒,但Paypal会在这种情况下回复{{1}}。 Paypal文档解释了“标记,指示您是否希望在完成交易后重定向买方以注册PayPal。”那是什么意思? 你能帮我澄清一下吗?

1 个答案:

答案 0 :(得分:2)

这不是这样做的方法,因为DoExpressCheckoutPayment需要在调用SetExpressCheckout后三小时内完成(并生成一个TOKEN)。您要使用的是PayPal Authorization & Capture(另请参阅here)。

  1. 使用总计调用SetExpressCheckout和DoExpressCheckoutPayment 您希望收取的金额并确保您通过 PAYMENTREQUEST_0_PAYMENTACTION =两者中的授权。
  2. 致电DoCapture并对交易进行部分捕获。通过运行部分捕获,您可以保留其余部分以便在以后捕获(COMPLETETYPE=NotComplete
  3. 准备好捕获剩余部分后,再次致电DoCapture并设置COMPLETETYPE=Complete。捕获完成后,无论您是否已获取全部金额,都无法从该特定交易ID中获取更多资金。