在PHP支付宝API API快速结帐付款错误代码13113

问题描述:

我们已经尝试过使用PayPal沙盒测试我们的网站,并且它可以完全扣除金额。在PHP支付宝API API快速结帐付款错误代码13113

我们将API细节切换到Paypal和链接。我们已经尝试了几个PayPal账户,看它是否有效(所有这些账户都有足够的资金进行交易)。

我们收到通过API我们RETURNURL页面上这回 - 的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错误代码中也没有。有没有人来过这个?

PayPal API Error Codes毫无疑问不是很有帮助。

错误代码13113或“买方不能用PayPal支付此交易”意味着PayPal通过拒绝处理交易采取安全措施。这种情况可能是由于下列原因之一(还有更多,但这里有几个):

  • 买方没有足够的钱在其帐户
  • 买方没有足够的钱在他们的账户,并且他们的信用卡收费存在问题(如果他们已将其设置在他们的设置中)
  • 买方已要求退款给卖方的另一件物品,因此PayPal已阻止买方的账户将资金转移到卖方直到情况解决。
  • 买方涉嫌欺诈活动,所以他们的账户被冻结。
  • 买方的账户被限制寄钱给特定的卖家某些其他原因
  • 买方的账户是因为某种特定原因

不幸的是完全冻结,没有太多的人可以告诉你,没有彻底查看您的代码。我会检查我的代码,并确保所有适当的标志和什么 - 没有设置。如果您等待几个小时并仍然收到错误(特别是在多个/新帐户中),那么您需要联系PayPal。

我知道这很糟糕,但只有PayPal能够告诉你为什么交易失败。

+0

谢谢,我现在将检查我的所有代码:D – JP29 2012-07-15 19:57:18

+0

确保在所有参数上使用'urlencode'。你甚至可以使用'urldecode($ token)',当我认为你的意思是'urlencode($ token)' – cegfault 2012-07-15 20:05:13

+0

谢谢,但它似乎并没有这样做。试过编码。当然,如果这是一个促成因素,沙盒将无法工作。 – JP29 2012-07-15 20:31:11