Sole 模式下 Paypal Cart 不显示金额

Amount does not show up in Paypal Cart in the Sole mode

我已将 Express Checkout 集成到我的网站,它似乎可以正常使用我从 PayPal 网站获得的代码。

然而,试图修改它以使 Paypal 可选会导致一个奇怪的问题。

付款金额似乎没有传递到页面。

我设置了同一个进程的两个版本。

http://coupons.exaget.com/paypal/expresscheckout.php?price=20http://coupons.exaget.com/paypal-sole/expresscheckout.php?price=20

两者之间的唯一区别是 paypalfunctions.php 中的两行是在第一个站点中评论的。如下所示,其中最后两行被注释。

价格(来自 URL)在第一种情况下正确传递,但在第二种情况下不正确。

有什么建议吗?

function CallShortcutExpressCheckout( $paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL) 
{
//------------------------------------------------------------------------------------------------------------------------------------
// Construct the parameter string that describes the SetExpressCheckout API call in the shortcut implementation

$nvpstr="&PAYMENTREQUEST_0_AMT=". $paymentAmount;
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_PAYMENTACTION=" . $paymentType;
$nvpstr = $nvpstr . "&RETURNURL=" . $returnURL;
$nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL;
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CURRENCYCODE=" . $currencyCodeType;
//   $nvpstr = $nvpstr . "&SOLUTIONTYPE=" ."Sole"; //Buyer does not need to create a PayPal account to check out. This is referred to as PayPal Account Optional.
//   $nvpstr = $nvpstr . "&LANDINGPAGE=Billing"; //Type of PayPal page to display. It is one of the following values:Billing – Non-PayPal account

你是否设置SOLUTIONTYPE=Sole应该与它没有任何关系。

当满足以下一项(或两项)时,Express Checkout 将向买家显示购买金额:

  • 您提供订单项详细信息(PAYMENTREQUEST_0_ITEMAMTL_PAYMENTREQUEST_0_NAMEnL_PAYMENTREQUEST_0_AMTnL_PAYMENTREQUEST_0_QTYn 等)在这种情况下,您传递的完整订单项详细信息将显示给买家。
  • 将买家重定向到 PayPal 时,您在 URL 中包含参数 useraction=commit(例如,https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=...&useraction=commit)在这种情况下,您传递的金额(PAYMENTREQUEST_0_AMT) 将显示给买家。如果您传递了订单项详细信息,这些信息也会显示给买家。

谢谢,马特。是的,传递订单项详细信息可以解决这个问题。 从 PayPal 支持: 似乎需要行项目(amt,qty)才能在付款屏幕中显示总计。 Paypal 正在引入一种新的流程,它没有行项目的强制要求。 因此,我的一个实现之所以起作用,是因为它总是在新流程中着陆,而另一个在 PayPal 所指的旧流程中着陆。