在Sole模式下,Paypal Cart中的金额不会显示

时间:2015-04-09 16:01:26

标签: paypal express-checkout

我已将Express Checkout集成到我的网站,它似乎与我从PayPal网站获得的代码一起正常工作。

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

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

我已经设置了同一过程的两个版本。

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

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

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

有什么建议吗?

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

2 个答案:

答案 0 :(得分:0)

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

快速结账将在以下一项(或两项)成立时向买方显示购买金额:

  • 您提供订单项详细信息(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)将会显示对买方。如果您通过了订单项详细信息,那么这些信息也将显示给买方。

答案 1 :(得分:0)

谢谢,马特。是的,传递订单项详细信息可解决此问题。 并从PayPal支持: 看来,在付款屏幕中显示总计需要行项目(amt,qty)。 Paypal正在引入一个新的流程,它没有强制要求的订单项。 因此,我的一个实现工作的原因是它总是在新流程中登陆,而另一个在PayPal所指的是Legacy Flow。