⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 verify_ipn.php

📁 不错的东西
💻 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 + -