我正在开发简单的购物车,一个问题是让我疯狂的 IPN 侦听器无法正常工作
当我付款时,我会被重定向回感谢页面,并且这些值会被打印出来。
thankyou.php
下面的那些帖子打印出来了,还有很多帖子变量。
[address_status] => confirmed
[payment_status] => Completed
[payer_status] => verified
问题在于我的 IPN 侦听器无法正常工作。
<input type="hidden" name="notify_url" value="http://mysqlphp.uphero.com/paypal_ipn.php">
这是下面我的 paypal_ipn.php 上的脚本:
// Check to see there are posted variables coming into the script
if ($_SERVER['REQUEST_METHOD'] != "POST")
die ("No Post Variables"); ------>
// Initialize the $req variable and add CMD key value pair
$req = 'cmd=_notify-validate';
// Read the post from PayPal
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
$url = "https://www.sandbox.paypal.com/cgi-bin/webscr";
$curl_result=$curl_err='';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded", "Content-Length: " . strlen($req)));
curl_setopt($ch, CURLOPT_HEADER , 0);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$curl_result = @curl_exec($ch);
$curl_err = curl_error($ch);
curl_close($ch);
$req = str_replace("&", "\n", $req);
// Check that the result verifies and sending email before doing anything i just wanted to make sure that this script is working but i don't receive an email
if (strpos($curl_result, "VERIFIED") !== false) {
$req .= "\n\nPaypal Verified OK";
mail("eagleeyes26@hotmail.com", "IPN interaction verified", "$req", "eagleeyes26@hotmail.com" );
}