📄 verify_ipn.php
字号:
<?php
require("../conf/mysql.inc.php");
/*
* Justin Osterholt
* 11/26/05
* mysql connect/db select code moved from mysq.inc.php
*/
$link = mysql_connect($conf['hostname'], $conf['username'], $conf['password']) or die("Unable to connect to the MySQL Database: " . mysql_error());
mysql_select_db($conf['database']) or die("Unable to connect to the MySQL Database: " . mysql_error());
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$request = "&cmd=_notify-validate";
foreach($_POST as $key => $value)
{
$value = (is_numeric($value)) ? $value : urlencode(stripslashes($value));
$request .= "&$key=$value";
}
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($request) . "\r\n\r\n";
$fp = fsockopen("www.sandbox.paypal.com", 80, $errno, $errstr, 30);
if(!$fp)
{
// HTTP ERROR
}
else
{
fputs($fp, $header . $request);
while(!feof($fp))
{
$result = fgets($fp, 1024);
if(strcmp($result, "VERIFIED") == 0)
{
// VERIFIED LOG IPN
$pipe = fopen("paypal.log", "a");
fwrite($pipe, $request, strlen($request));
fclose($pipe);
switch($_POST['txn_type'])
{
case 'subscr-failed':
// suspend
break;
case 'subscr-cancel':
// suspend
break;
case 'subscr-signup':
case 'subscr-payment':
default:
$query = mysql_query("UPDATE paypal_ipn SET `date` = NOW(), item_name = '{$_POST['item_name']}', receiver_email = '{$_POST['receiver_email']}', quantity = '{$_POST['quantity']}', invoice = '{$_POST['invoice']}', custom = '{$_POST['custom']}', payment_status = '{$_POST['payment_status']}', pending_reason = '{$_POST['pending_reason']}', payment_gross = '{$_POST['payment_gross']}', payment_fee = '{$_POST['payment_fee']}', payment_type = '{$_POST['payment_type']}', payment_date = '{$_POST['payment_date']}', txn_id = '{$_POST['txn_id']}', payer_email = '{$_POST['payer_email']}', payer_status = '{$_POST['payer_status']}', txn_type = '{$_POST['txn_type']}', first_name = '{$_POST['first_name']}', last_name = '{$_POST['last_name']}', address_city = '{$_POST['address_city']}', address_street = '{$_POST['address_street']}', address_state = '{$_POST['address_state']}', address_zip = '{$_POST['address_zip']}', address_country = '{$_POST['address_country']}', address_status = '{$_POST['address_status']}', subscr_date = '{$_POST['subscr_date']}', period1 = '{$_POST['period1']}', period2 = '{$_POST['period2']}', period3 = '{$_POST['period3']}', amount1 = '{$_POST['amount1']}', amount2 = '{$_POST['amount2']}', amount3 = '{$_POST['amount3']}', recurring = '{$_POST['recurring']}', reattempt = '{$_POST['reattempt']}', retry_at = '{$_POST['retry_at']}', recur_times = '{$_POST['recur_times']}', subscr_id = '{$_POST['subscr_id']}', paypal_verified = '{$_POST['paypal_verified']}', verify_sign = '{$_POST['verify_sign']}' WHERE invoice_id = '{$_POST['item_number']}' LIMIT 1");
break;
}
}
elseif(strcmp($result, "INVALID") == 0)
{
// INVALID PAYMENT
}
}
fclose($fp);
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -