2015-04-05 176 views
1

有人可以请向我解释为什么这会一直返回一个HTTP 302响应代码?PayPal IPN沙箱返回HTTP 302

我已经运行了数十次测试付款,而且我现在开始拉我的头发了!

编辑 ...那第二行应该是:

$data = 'cmd=_notify-validate&' . http_build_query($_POST);

$conn = fsockopen("ssl://www.sandbox.paypal.com", 443, $n, $m, 30); 
$data = http_build_query($_POST); 

$headers = 
"POST /cgi-bin/webscr HTTP/1.0\r\n" . 
"Host: www.sandbox.paypal.com\r\n" . 
"Content-Type: application/x-www-form-urlencoded\r\n" . 
"Content-Length: " . strlen($data) . "\r\n"; 

fputs($conn, "$headers\r\n$data"); 

// loop until end of response 
while (!feof($conn)) { 

    $r = fgets($conn, 1024); 
    $results .= $r; 

    if (strcmp($r, "VERIFIED") === 0) { 
     $success = true; 
     fclose($conn); 
     break; 
    } 

    if (strcmp($r, "INVALID") === 0) { 
     $success = false; 
     fclose($conn); 
     break; 
    } 
} 

var_dump($results); 

给我:

HTTP/1.1 302 Found 
Date: Sun, 05 Apr 2015 01:05:19 GMT 
Server: Apache 
X-Frame-Options: SAMEORIGIN 
Set-Cookie: c9MWDuvPtT9GIMyPc3jwol1VSlO=jpXL4slHSFMW62IfhXt98Ecs62rNGxGaMe9do0PXFTJCvKNoSWrzcNKb58XDiADlB6Vd4sSqrQt-mdqdmwlhYjnS-vrmseHmpUXfgJB02GXawXmw-0ORrjpAlcs9MjNzjerB9260RGRm1oASkzbL6fKubJohZlpTuM9ejW-hubbqKhagUSvvO7jyvT-6qewxY72pyDVtulr0FV3X3b5N8HwihlK2nzr9LK6NbwwmrzH3gOsHz7GQ4Mt7M8y; domain=.paypal.com; path=/; Secure; HttpOnly 
Set-Cookie: -1ILhdyICORs4hS4xTUr41S8iP0=uyJXnbFu20vqgtvwa1990vbI5M5aG7JM-hGvulSB7_Mg0vU_l6yRwHrZj3FFHc1v8V_6jaqEahhmS6Wt; expires=Sat, 31-Mar-2035 01:05:19 GMT; domain=.paypal.com; path=/; Secure; HttpOnly 
Set-Cookie: cookie_check=yes; expires=Wed, 02-Apr-2025 01:05:19 GMT; domain=.paypal.com; path=/; Secure; HttpOnly 
Set-Cookie: consumer_display=USER_HOMEPAGE%3d0%26USER_TARGETPAGE%3d0%26USER_FILTER_CHOICE%3d0%26BALANCE_MODULE_STATE%3d1%26GIFT_BALANCE_MODULE_STATE%3d1%26LAST_SELECTED_ALIAS_ID%3d0%26SELLING_GROUP%3d1%26PAYMENT_AND_RISK_GROUP%3d1%26SHIPPING_GROUP%3d1%26HOME_VERSION%3d1%26MCE2_ELIGIBILITY%3d4294967295; expires=Wed, 02-Apr-2025 01:05:19 GMT; domain=.paypal.com; path=/; Secure; HttpOnly 
Set-Cookie: Apache=10.72.108.11.1428195919710342; path=/; expires=Tue, 28-Mar-45 01:05:19 GMT 
Vary: Accept-Encoding,User-Agent 
Connection: close 
Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.WEB.1%26silo_version%3D880%26app%3Dappdispatcher%26TIME%3D1334452309; domain=.paypal.com; path=/; Secure; HttpOnly 
Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT 
Set-Cookie: Apache=10.72.128.11.1428195919696329; path=/; expires=Tue, 28-Mar-45 01:05:19 GMT 
Location: https://www.sandbox.paypal.com/home 
Strict-Transport-Security: max-age=14400 
Content-Type: text/html; charset=ISO-8859-1 

通知我上午使用ssl://和端口443

回答

1

解决方案:忘记在POST请求数据中包含cmd=_notify-validate

0

您应该尝试https://www.sandbox.paypal.com作为您的端点。我从来没有遇到过使用它作为我的端点的问题

+0

尽管此链接可能会回答问题,但最好在此处包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 – Khalid 2015-04-05 08:36:21

+0

@哈立德这不是一个答案的链接。这甚至不是一个链接。这是API端点。 – Machavity 2015-04-06 12:11:43

+0

有趣的是,我发现的所有东西都表示它指向'ssl://'。使用https://也会触发服务器错误,可能是由于配置错误。 – 2015-04-06 12:12:03