【发布时间】:2014-06-08 02:13:20
【问题描述】:
我正在尝试让最简单的 Express Checkout 版本在 PHP 中运行。
我的购物篮有一个按钮,可将用户发送到结帐向导提供的脚本expresscheckout.php。
在返回 URL 页面上,我调用GetShippingDetails($_SESSION['TOKEN']) 以获取用户的运输详细信息。似乎没有记录,我在响应中得到键/值'CHECKOUTSTATUS' => 'PaymentActionNotInitiated'。 This question 解释说,要完成交易,我必须调用 DoExpressCheckout,它由 Paypal 提供的 PHP 函数 ConfirmPayment( $FinalPaymentAmt ) 包装。
为什么需要$FinalPaymentAmt 参数?如果我是正确的:
-
paymentType共有三种类型:Sale、Authorisation和Order,其中第一种在PHP脚本中使用expresscheckout.php,根据this page“可以立即完成”。由于在脚本对 Paypal 提供的包装器的调用中重定向到 Paypal 之前的调用中指定了付款金额:
CallShortcutExpressCheckout(($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL);
问题:
- 为什么还要在
ConfirmPayment( $FinalPaymentAmt )中指定?如果为$paymentAmount和$finalPaymentAmount指定的值不同会怎样? - 只有在
$paymentType不是“销售”时才需要/使用$FinalPaymentAmt?
【问题讨论】: