www.gusucode.com > ShopEx481 & PHPWind 整合版码程序 > plugins/payment/pay.paypal.server.php

    <?php
require('paymentPlugin.php');
class pay_paypal extends paymentPlugin{
	function pay_paypal_callback($in,&$paymentId,&$money,&$message,&$tradeno){
		$req = 'cmd=_notify-validate';
		foreach ($in as $key => $value) {
			$value = urlencode(stripslashes($value));
			$req .= "&$key=$value";
		}
		$errcode = "";
		// 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 ('www.paypal.com', 80, $errno, $errstr, 30);

		// assign posted variables to local variables
		$item_name = $in['item_name'];
		$payid = $in['item_number'];
		$mydate = substr($item_name,0,8);
		$payment_status = $in['payment_status'];
		$money = $payment_amount = $in['mc_gross'];
		$payment_currency = $in['mc_currency'];
		$txn_id = $in['txn_id'];
		$receiver_email = $in['receiver_email'];
		$payer_email = $in['payer_email'];
        $paymentId = $payid;
		$succ = "N";
		$retstr ="";
		if(!$fp){
		   $succ = "N";
		   $errcode = "1";
		}else{
			fputs ($fp, $header . $req."\r\n\r\n");
			while (!feof($fp)){
				$res = fgets ($fp, 1024);
				$retstr .= ",".$res;
				if (strcmp (trim($res), "VERIFIED") == 0){
					if(trim($payment_status)=="Completed"){
						$succ="Y";
					}else{
						$succ = "N";
						$errcode = "2";
					}
				}elseif(strcmp ($res, "INVALID") == 0){
					$succ = "N";
					$errcode = "3";
				}
			}
			fclose ($fp);
		}
		//验证
		switch ($succ){
			//成功支付
			case "Y":
				return PAY_SUCCESS;
				break;
			//支付失败
			case "N":
				return PAY_ERROR;
				break;
		}
	}

	function pay_PAYPAL_relay($status){
		switch ($status){
			case PAY_SUCCESS:
			break;
			case PAY_ERROR:
				echo '支付失败,请立即与商店管理员联系';
			break;
		}
	}
}
?>