www.gusucode.com > ShopEx481 & PHPWind 整合版码程序 > bbs/alipay.php

    <?php
require_once('global.php');

include_once(D_P.'data/bbscache/ol_config.php');
if(!$ol_onlinepay){
	Showmsg($ol_whycolse);
}
if(!$ol_payto){
	Showmsg('olpay_seterror');
}
$url='';
foreach($_GET as $key => $value){
	if($value){
		$url .= "$key=".urlencode($value)."&";
	}
}
InitGP(array('out_trade_no','trade_status','buyer_email','notify_id'));
$veryfy_result1 = get_verify("http://pay.phpwind.com/pay/alipay_notify.php?$url");
$veryfy_result2 = get_verify("http://notify.alipay.com/trade/notify_query.do?notify_id=$notify_id&partner=2088001505801569");
if(!eregi("true$",$veryfy_result1) || !eregi("true$",$veryfy_result2)){
	refreshto('userpay.php','安全验证参数校验失败,无法完成充值!');
}

$rt = $db->get_one("SELECT c.*,m.username FROM pw_clientorder c LEFT JOIN pw_members m USING(uid) WHERE order_no='$out_trade_no'");
if(!$rt){
	refreshto('userpay.php','系统中没有您的充值订单,无法完成充值!');
}
if(intval($rt['number'])!=intval($_GET['total_fee']) || $_GET['seller_email']!=$ol_payto){
	refreshto('userpay.php','安全验证参数校验失败,无法完成充值!');
}
if($trade_status=='TRADE_FINISHED'){
	if($rt['state'] == 2){
		refreshto('userpay.php','该订单已经充值成功!');
	}
	!$db_rmbrate && $db_rmbrate=10;
	$currency = $rt['number'] * $db_rmbrate;
	$number   = $rt['number'];
	$db->update("UPDATE pw_memberdata SET currency=currency+'$currency' WHERE uid='$rt[uid]'");
	$db->update("UPDATE pw_clientorder SET payemail='$buyer_email',state=2,descrip='已完成订单' WHERE order_no='$out_trade_no'");

	require_once(R_P.'require/tool.php');
	$logdata=array(
		'type'		=>	'olpay',
		'nums'		=>	0,
		'money'		=>	0,
		'descrip'	=>	'olpay_descrip',
		'uid'		=>	$rt['uid'],
		'username'	=>	$rt['username'],
		'ip'		=>	$onlineip,
		'time'		=>	$timestamp,
		'number'	=>	$number,
		'currency'	=>	$currency,
	);
	writetoollog($logdata);
	require_once(R_P.'require/msg.php');
	$message=array(
		$rt['username'],
		'',
		'olpay_title',
		$timestamp,
		"olpay_content_2",
		'',
		'SYSTEM'
	);
	writenewmsg($message,1);
	$statdb=array(
		'type' =>'alipay',
		'seller_email' => $_GET['seller_email'],
		'buyer_email' => $_GET['buyer_email'],
		'trade_no' => $_GET['trade_no'],
		'total_fee' => $_GET['total_fee'],
		'siteurl' => $db_bbsurl,
	);
	$getdb='';
	foreach($statdb as $key=>$value){
		$getdb .= $key."=".urlencode($value)."&";
	}
	get_verify("http://www.phpwind.com/pay/stats.php?$getdb");
	refreshto('userpay.php','充值成功!');
}else{
	refreshto('userpay.php','支付失败,无法完成充值!');
}
function pw_msg($msg,$t=''){
	global $action,$msg_id;
	echo $msg;
	exit;
}
function get_verify($url,$time_out='60'){
	$urlarr= parse_url($url);
	$errno = $errstr = '';
	$urlarr['port'] = '80';
	$fp=@fsockopen('tcp://'.$urlarr['host'],$urlarr['port'],$errno,$errstr,$time_out);
	if(!$fp){
		die("ERROR: $errno - $errstr<br />\n");
	} else{
		fputs($fp, 'POST '.$urlarr['path']." HTTP/1.1\r\n");
		fputs($fp, 'Host: '.$urlarr['host']."\r\n");
		fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
		fputs($fp, 'Content-length: '.strlen($urlarr['query'])."\r\n");
		fputs($fp, "Connection: close\r\n\r\n");
		fputs($fp, $urlarr['query'] . "\r\n\r\n");
		while(!feof($fp)) {
			$info[]=@fgets($fp, 1024);
		}
		fclose($fp);
		$info = implode(',',$info);
		return $info;
	}
}
?>