10001 paypal内部错误:超时处理请求快速签出
首先,我没有商业账户,所以如果这是个问题,请告诉我,因为几乎不可能在他们的官方网站上找到Paypal Express结账的要求 我的API代码是:10001 paypal内部错误:超时处理请求快速签出,paypal,express-checkout,Paypal,Express Checkout,首先,我没有商业账户,所以如果这是个问题,请告诉我,因为几乎不可能在他们的官方网站上找到Paypal Express结账的要求 我的API代码是: $requestParams = array( 'METHOD' => $method, 'VERSION' => $this -> _version, 'USER' => $PayPalApiUsername, 'PWD' => $PayPalApiPassword,
$requestParams = array(
'METHOD' => $method,
'VERSION' => $this -> _version,
'USER' => $PayPalApiUsername,
'PWD' => $PayPalApiPassword,
'SIGNATURE' => $PayPalApiSignature
);
$request = array_merge($requestParams, $params);
//$params is bringed from other php.
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL ,'https://api-3t.paypal.com/nvp');
curl_setopt($ch,CURLOPT_VERBOSE ,1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER ,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST ,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER ,1);
curl_setopt($ch,CURLOPT_HTTPGET ,true);
curl_setopt($ch,CURLOPT_POSTFIELDS ,$request);
$response = curl_exec($ch);
然后,直到这里(我想)好为止。但是做一些检查这是我用$request发送的:
$request: array(16) {
["METHOD"]=>
string(18) "SetExpressCheckout"
["VERSION"]=>
string(4) "97.0"
["USER"]=>
string(27) "xxx_api1.example.com"
["PWD"]=>
string(16) "yyyyyyyyyyyyyyyy"
["SIGNATURE"]=>
string(56) "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
["RETURNURL"]=>
string(50) "http%3A%2F%2Fwww.website.com%2Fcontinue.php"
["CANCELURL"]=>
string(53) "http%3A%2F%2Fwww.website.com%2Fpaypal%2Fcancel_url.php"
["PAYMENTREQUEST_0_AMT"]=>
string(5) "10.95"
["PAYMENTREQUEST_0_CURRENCYCODE"]=>
string(3) "EUR"
["PAYMENTREQUEST_0_ITEMAMT"]=>
string(5) "10.95"
["PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID"]=>
string(24) "xxx%40example.com"
["PAYMENTREQUEST_0_PAYMENTACTION"]=>
string(4) "Sale"
["L_PAYMENTREQUEST_0_NAME0"]=>
string(17) "ProductA"
["L_PAYMENTREQUEST_0_AMT0"]=>
string(5) "10.95"
["L_PAYMENTREQUEST_0_QTY0"]=>
string(1) "1"
["L_PAYMENTREQUEST_0_NUMBER0"]=>
string(1) "1"
}
这是我从贝宝那里得到的:
$response:
TIMESTAMP=2013%2d01%2d07T23%3a20%3a43Z
CORRELATIONID=7a8130fb32e44
ACK=Failure
L_ERRORCODE0=10001
L_SHORTMESSAGE0=Internal%20Error
L_LONGMESSAGE0=Timeout%20processing%20request
有人知道这里发生了什么吗?这是错的吗?卓越理财帐户是这里的问题吗?您的返回URL不可能是带有下划线的子域,是吗?解决方案: 我用这个解决了这个问题: 避免使用“urlencode()”对参数进行编码,将数据保存为正常数据 例如:
array(
'RETURNURL' => 'http://www.yourwebsite.com/confirm.php', //without urlencode()
'CANCELURL' => 'http://www.yourwebsite.com/cancel.php' //without urlencode()
);
在通过“Curl”发送之前,请立即使用http\u build\u query($request),如下所示:
curl_setopt($ch,CURLOPT_POSTFIELDS , http_build_query($request));
我得到了同样的错误,但我的问题是错误的格式卡到期日期。我收到的错误是由我传递的日期引起的。它的格式不正确。它应该是“032018”而不是“3/2018”。好吧,是像and/PP\u cancel.php这样的普通网站。这个符号“\u”有问题吗?我发现我的开发域从paypal那里得到了一些非常模糊的错误,因为我使用了一个带有下划线的子域,例如my\u subdomain.example.com
http\u build\u query($request)
是为我做的天哪,这是paypal处理“多部分/表单数据”编码的一个错误..三年后