PHP中的Paypal API Express签出支付错误代码13113

PHP中的Paypal API Express签出支付错误代码13113,php,paypal,Php,Paypal,我们已经尝试和测试了我们的网站与贝宝沙盒,它的工作完全扣除金额 我们将API详细信息切换到Paypal和链接。我们尝试了几个paypal帐户,看看它是否有效(所有帐户都有足够的资金进行交易) 我们通过returnUrl页面上的API接收到这一信息- API调用失败 Array ( [TIMESTAMP] => 2012%2d07%2d15T19%3a31%3a43Z [CORRELATIONID] => 927a89205e54a [ACK] => Fai

我们已经尝试和测试了我们的网站与贝宝沙盒,它的工作完全扣除金额

我们将API详细信息切换到Paypal和链接。我们尝试了几个paypal帐户,看看它是否有效(所有帐户都有足够的资金进行交易)

我们通过returnUrl页面上的API接收到这一信息- API调用失败

Array ( [TIMESTAMP] => 2012%2d07%2d15T19%3a31%3a43Z [CORRELATIONID] => 927a89205e54a           
[ACK] => Failure [VERSION] => 65%2e1 [BUILD] => 3300093 [L_ERRORCODE0] => 13113               
[L_SHORTMESSAGE0] => Buyer%20Cannot%20Pay%2e [L_LONGMESSAGE0] =>                          
The%20Buyer%20cannot%20pay%20with%20PayPal%20for%20this%20Transaction%2e [L_SEVERITYCODE0] => Error )
Php进行最后的API调用-

$APIUSERNAME="*****";
$APIPASSWORD="***";
$APISIGNATURE="*****";
$ENDPOINT = "https://api-3t.paypal.com/nvp";
//$ENDPOINT     = "https://api-3t.sandbox.paypal.com/nvp";   
$VERSION      = "64"; 

//Build the Credential String:   
$cred_str = "USER=" . $APIUSERNAME . "&PWD=" . $APIPASSWORD . "&SIGNATURE=" .           
$APISIGNATURE . "&VERSION=" . $VERSION;

//Build NVP String for GetExpressCheckoutDetails   
$nvp_str = "&METHOD=GetExpressCheckoutDetails&TOKEN=" . urldecode($token); 

//Lets combine both strings then make the API call
$req_str = $cred_str . $nvp_str; $response = PPHttpPost($ENDPOINT, $req_str);
上面的数组来自于我收到paypal的最终确认

//check Response
if($doresponse['ACK'] == "Success" || $doresponse['ACK'] == "SuccessWithWarning") { 
echo "completed"; //just put to test  
include "finishtransaction.php"; //cancels my cart sessions
} else{
    echo "The API Call Failed"; print_r($doresponse); 
}
谷歌上没有太多关于这个错误的信息,甚至在API错误代码中也没有。以前有人来过吗?

无可否认,这些方法没有多大帮助

错误代码13113,或“买方无法使用PayPal为此交易付款”表示PayPal已采取安全措施,拒绝处理该交易。这可能是由于以下原因之一(还有更多原因,但这里有几个原因):

  • 买主的帐户里没有足够的钱
  • 买家的帐户中没有足够的钱,并且在向其信用卡收费时出现问题(如果他们在设置中设置了该设置)
  • 买方要求卖方退还另一件商品的货款,因此贝宝阻止买方账户向卖方转账,直到情况得到解决
  • 买家被怀疑有欺诈行为,因此他们的账户被冻结
  • 由于其他原因,买方账户仅限于向特定卖方汇款
  • 由于某种特殊原因,买方的账户被完全冻结
不幸的是,没有人能在不彻底检查代码的情况下告诉您多少。我会检查我的代码,并确保所有适当的标志和什么没有设置。如果您等待了几个小时,仍然收到错误(特别是在多个/新帐户上),那么您需要联系PayPal


我知道这很糟糕,但只有PayPal才能告诉您交易失败的确切原因。

确保对所有参数使用
urlencode
。您甚至使用了
urldecode($token)
,我想您的意思是
urldecode($token)
谢谢,但它似乎没有这样做。尝试编码。当然,如果这是一个促成因素的话,沙箱就不会起作用了。从其他人的经历来看,这似乎是你必须联系PayPal的事情。我想补充一点,这确实不是一个技术错误,而是PayPal或发卡机构直接拒绝的交易。