2013-01-07 18 views
8

Trước hết, tôi không có Tài khoản kinh doanh, vì vậy nếu đó là vấn đề, chỉ cần cho tôi biết, vì gần như không thể tìm thấy đâu là requeriment cho Paypal Express Checkout trong trang web chính thức của họ.10001 lỗi nội bộ paypal: yêu cầu xử lý timeout Express Checkout

Mã của tôi cho API này là:

$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); 

Sau đó, cho đến ở đây là (i think) tất cả các quyền. Nhưng làm một số kiểm tra này là những gì tôi gửi với $ yêu cầu:

$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" 
} 

Và đây là những gì tôi nhận được từ Paypal:

$response: 
TIMESTAMP=2013%2d01%2d07T23%3a20%3a43Z 
CORRELATIONID=7a8130fb32e44 
ACK=Failure 
L_ERRORCODE0=10001 
L_SHORTMESSAGE0=Internal%20Error 
L_LONGMESSAGE0=Timeout%20processing%20request 

Có ai biết điều gì đang xảy ra ở đây? Điều này có sai không? Tài khoản hàng đầu có vấn đề ở đây không?

Trả lời

15

SOLUTION:

tôi giải quyết vấn đề này với điều này:

TRÁNH sử dụng "urlencode()" để mã hóa các params, lưu dữ liệu của bạn như bình thường.

dụ:

array(
    'RETURNURL' => 'http://www.yourwebsite.com/confirm.php', //without urlencode() 
    'CANCELURL' => 'http://www.yourwebsite.com/cancel.php' //without urlencode() 
); 

SỬ DỤNG http_build_query ($ yêu cầu) trong khoảnh khắc trước khi gửi nó thông qua "Curl" như thế này:

curl_setopt($ch,CURLOPT_POSTFIELDS , http_build_query($request)); 
+2

'http_build_query ($ request)' đã làm cho tôi –

+2

shit thánh, đây là một lỗi trong xử lý paypal của "multipart/form-data" mã hóa .. và sau 3 năm – hanshenrik

0

Bạn không có khả năng có các url trả lại dưới dạng tên miền phụ có dấu gạch dưới trong đó phải không?

+0

cũng là một trang web bình thường như http://www.yourwebsite.com/PP_confirm.php và /PP_cancel.php. Đây có phải là ký hiệu" _ "không một vấn đề? –

+0

Tôi thấy các lĩnh vực phát triển của tôi đã nhận được một số lỗi thực sự mơ hồ từ paypal vì tôi đã sử dụng một tên miền phụ với dấu gạch dưới ví dụ: my_subdomain.example.com – Chris

1

tôi đã nhận được báo lỗi tương tự tuy nhiên vấn đề của tôi là định dạng sai của ngày hết hạn thẻ. Lỗi tôi nhận được đã được gây ra bởi ngày mà tôi đã đi qua. Nó không ở định dạng đúng. Nó cần phải là "" 032018 "không phải" 3/2018 ".