2013-06-25 127 views
0

我知道这已经在这里覆盖了很多,但我一整天的大部分时间都在努力修复这个错误,并且似乎没有任何地方可以获得。贝宝沙箱没有回复

当我使用PayPals IPN模拟器发送模拟IPN我不断收到活无效IPN

现在,我认为,这是由于这样的事实,我送它作为一个测试的响应从沙箱,所以我尝试使用沙箱网址,因为你可以看到下面,但如果我这样做,我根本没有收到答复。

有人能告诉我我哪里出错了吗?

<?php // PHP 4.1 

// read the post from PayPal system and add 'cmd' 
$req = 'cmd=_notify-validate'; 

foreach ($_POST as $key => $value) { 
     $value = urlencode(stripslashes($value)); 
     $req .= "&$key=$value"; 
} 

$email = ****; 
// post back to PayPal system to validate 
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n"; 
$header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; 
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30); 
//$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30); 


// assign posted variables to local variables 
$item_name = $_POST['item_name']; 
$item_number = $_POST['item_number']; 
$payment_status = $_POST['payment_status']; 
$payment_amount = $_POST['mc_gross']; 
$payment_currency = $_POST['mc_currency']; 
$txn_id = $_POST['txn_id']; 
$receiver_email = $_POST['receiver_email']; 
$payer_email = $_POST['payer_email']; 

if (!$fp) { 
    // HTTP ERROR 
} else { 
    fputs ($fp, $header . $req); 
while (!feof($fp)) { 
$res = fgets ($fp, 1024); 
if (strcmp ($res, "VERIFIED") == 0) { 
    // check the payment_status is Completed 
    // check that txn_id has not been previously processed 
    // check that receiver_email is your Primary PayPal email 
    // check that payment_amount/payment_currency are correct 
    // process payment 
    mail($email, "Live-VERIFIED IPN", $res . "\n\n" . $req); 
} 
else if (strcmp ($res, "INVALID") == 0) { 
    // log for manual investigation 
    mail($email, "Live-INVALID IPN", $res . "\n\n" . $req); 
} 
} 
fclose ($fp); 
} 
?> 

回答