PHP PayPal Express Checkout问题

7
我正在尝试在我的网站上集成PayPal Express Checkout。我试图使用沙盒进行检查。当我从我的网站提交数据时,令牌会生成且没有错误,但是在重定向到PayPal时,它不会显示付款金额。顺便说一下,我正在使用来自PayPal Express Checkout向导的代码。如果有人能指点我正确的方向,那将非常有帮助。
require_once ("paypalfunctions.php");

$paymentAmount = 15;

$currencyCodeType = "GBP";
$paymentType = "Sale";
$returnURL = "http://www.mysite.com/paypal/confirm.php";
$cancelURL = "http://www.mysite.com/paypal/index.php";
$resArray = CallShortcutExpressCheckout ($paymentAmount, $currencyCodeType,            $paymentType, $returnURL, $cancelURL);
$ack = strtoupper($resArray["ACK"]);
if($ack=="SUCCESS")
{
RedirectToPayPal ( $resArray["TOKEN"] );

} 

如果您发布一些代码片段,那也会很有帮助 ;) - Jonnix
你能把所有的问题都放在一个地方,并且格式化一下吗? - Jonnix
说实话,我看不出你发布的代码有什么问题。你可能需要开始调试paypalfunctions.php文件本身。 - Jonnix
paypalfunctions.php是由PayPal提供的。我已经正确检查了变量值和函数参数,但是找不到答案。。:( - shoieb0101
但是当重定向到PayPal时,它没有显示付款金额。请问您能否更具体一些?您是否收到错误消息?您收到的API错误代码是什么?页面内容是否出现错误?默认情况下,Express Checkout在PayPal托管的结帐页面上显示非常少的信息。您能否更详细地解释一下您的问题? - SgtPooki
1个回答

17

如果您没有传递所谓的“行项目详细信息”(产品数据),PayPal 就不会显示总金额。

如果您只想显示当前购买的金额,请将买家重定向到 https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxxxx&useraction=commit (而不是https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxxx)。

如果您想开始向 PayPal 发送行项目详细信息,请在您的 SetExpressCheckout API 请求中包含以下内容:

// Total amount of the purchase, incl shipping, tax, etc  
PAYMENTREQUEST_0_AMT=300.0  
// Total amount of items purchased, excl shipping, tax, etc     
PAYMENTREQUEST_0_ITEMAMT=300.0  
// Authorize the funds first (Authorization), or capture immediately (Sale)?    
PAYMENTREQUEST_0_PAYMENTACTION=Sale  
// First item  
L_PAYMENTREQUEST_0_NAME0=Item1  
L_PAYMENTREQUEST_0_QTY0=1  
L_PAYMENTREQUEST_0_AMT0=100.00  
// Second item  
L_PAYMENTREQUEST_0_NAME1=Item2  
L_PAYMENTREQUEST_0_QTY1=1  
L_PAYMENTREQUEST_0_AMT1=200.00 
如果你想在自己的历史记录中看到这个,你还需要在DoExpressCheckoutPayment中包括它。

1
可能存在API版本限制-请参见此评论 - Trent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接