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

    <?PHP
require('paymentPlugin.php');
class pay_tenpaytrad extends paymentPlugin{
	function pay_tenpaytrad_callback($in,&$paymentId,&$money,&$message,&$tradeno){	
		$cmdno			= $in["cmdno"];
		$version		= $in["version"];
		$retcode		= $in["retcode"];
		$status			= $in["status"];
		$seller			= $in["seller"];
		$total_fee		= $in["total_fee"];
		$trade_price	= $in["trade_price"];
		$transport_fee	= $in["transport_fee"];
		$buyer_id		= $in["buyer_id"];
		$chnid 			= $in["chnid"];
		$cft_tid		= $in["cft_tid"];
		$smch_vno		= $in["mch_vno"];
		$attach			= $in["attach"];
		$version		= $in["version"];
		$sign			= $in["sign"];
		$ikey = $this->getConf($smch_vno,"PrivateKey");
		$buffer = $this->AddParameter($buffer, "attach", 				$attach);
		$buffer = $this->AddParameter($buffer, "buyer_id", 			$buyer_id);
		$buffer = $this->AddParameter($buffer, "cft_tid", 				$cft_tid);
		$buffer = $this->AddParameter($buffer, "chnid", 				$chnid);
		$buffer = $this->AddParameter($buffer, "cmdno", 				$cmdno);
		$buffer = $this->AddParameter($buffer, "mch_vno", 				$mch_vno);
		$buffer = $this->AddParameter($buffer, "retcode", 				$retcode);
		$buffer = $this->AddParameter($buffer, "seller", 				$seller);
		$buffer = $this->AddParameter($buffer, "status", 				$status);
		$buffer = $this->AddParameter($buffer, "total_fee", 			$total_fee);
		$buffer = $this->AddParameter($buffer, "trade_price", 			$trade_price);
		$buffer = $this->AddParameter($buffer, "transport_fee", 		$transport_fee);
		$buffer = $this->AddParameter($buffer, "version", 				$version);
		$strLocalSign = strtoupper(md5($buffer."&key=".$ikey));
		$tradeno = $in['cft_tid'];
		//$pObj=$this->system->loadModel("trading/payment");
		//$bill=$pObj->getPaymentIdByOrderNO($smch_vno);
		$paymentId=$attach;
		$money=$total_fee;
		if ($strLocalSign  == $sign )
		{
			//验证MD5签名成功 
			if ($retcode == "0")
			{    
				//支付成功,在这里处理业务逻辑注意判断订单是否重复的逻辑,注意订单金额为分
				echo "<meta name=\"TENCENT_ONLINE_PAYMENT\" content=\"China TENCENT\">";
				switch(($status)){
				case 1: 
					//交易创建
					break;
				case 2:
					//收获地址填写完毕
					break;
				case 3:
					//将订单置为已付款
							/*
							$order=newclass("Order");
							$order->getPayidByOrderno($mch_vno);
							$arr_paytime = getUnixtime($date);	//支付时间
							$Order->onlinePayed($arr_paytime[0], $arr_paytime[1]); 
							$Order->getPayresult($mch_vno,$INC_SHOPID,true);*/
					return PAY_SUCCESS;
						break;
				case 4:
					//卖家发货成功
					break;
				case 5:
					//买家收货确认,交易成功
					break;
				case 6:
					//交易关闭,未完成超时关闭
					break;
				case 7:
					//修改交易价格成功
					break;
				case 8:
					//买家发起退款
					break;
				case 9:
					//退款成功
					break;
				case 10:
					//退款关闭
					break;
				default:
					//error
					return PAY_ERROR;
					break;	
				}
				//echo $retcode;
			}
			else {
				//支付失败,请根据retcode进行错误逻辑处理
				$message = $retcode;
				return PAY_FAIL;
			}
		}
		else{
			$message = "qianming";
			return PAY_ERROR;
			//签名失败,请进行非法操作的逻辑处理
		}
	}

	function AddParameter($buffer,$parameterName,$parameterValue)
	{
		if ($parameterValue=="")
			return $buffer;
		if (empty($buffer))
			$buffer = $parameterName . "=". $parameterValue;
		else
			$buffer = $buffer . "&" . $parameterName . "=" .$parameterValue;
		return $buffer;
	} 
}
?>