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=20
和
http://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_ITEMAMT
、L_PAYMENTREQUEST_0_NAMEn
、L_PAYMENTREQUEST_0_AMTn
、L_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 所指的旧流程中着陆。
我已将 Express Checkout 集成到我的网站,它似乎可以正常使用我从 PayPal 网站获得的代码。
然而,试图修改它以使 Paypal 可选会导致一个奇怪的问题。
付款金额似乎没有传递到页面。
我设置了同一个进程的两个版本。
http://coupons.exaget.com/paypal/expresscheckout.php?price=20 和 http://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_ITEMAMT
、L_PAYMENTREQUEST_0_NAMEn
、L_PAYMENTREQUEST_0_AMTn
、L_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 所指的旧流程中着陆。