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

    <?PHP
require('paymentPlugin.php');
class pay_tenpaytrad extends paymentPlugin{
	var $name = "腾讯财付通[担保交易]";
	var $logo = 'TENPAYTRAD';
	var $version = 20080618;
	var $charset = 'utf8';
	var $applyUrl = 'https://www.tenpay.com/mchhelper/mch_register_c2c.shtml';//担保
	var $submitUrl = 'https://www.tenpay.com/cgi-bin/med/show_opentrans.cgi'; 
	var $submitButton = 'http://img.alipay.com/pimg/button_alipaybutton_o_a.gif'; ##需要完善的地方
	var $supportCurrency =  array("CNY"=>"1");
	var $supportArea =  array("AREA_CNY");
	var $desc = '财付通是腾讯公司为促进中国电子商务的发展需要,满足互联网用户价值需求,针对网上交易安全而精心推出的一系列服务。';
	var $intro = '财付通是腾讯公司于2005年9月正式推出专业在线支付平台,致力于为互联网用户和企业提供安全、便捷、专业的在线支付服务。<br>财付通构建全新的综合支付平台,业务覆盖B2B、B2C和C2C各领域,提供卓越的网上支付及清算服务。<br>财付通先后荣膺2006年电子支付平台十佳奖、2006年最佳便捷支付奖、2006年中国电子支付最具增长潜力平台奖和2007年最具竞争力电子支付企业奖等奖项,并于2007年首创获得“国家电子商务专项基金”资金支持。';	
	var $applyProp = array("postmethod"=>"get","sp_suggestuser"=>"2289480");//代理注册参数组
	var $orderby = 6;
	function toSubmit($payment){
		$merId = $this->getConf($payment['M_OrderId'],'member_id');
		$ikey = $this->getConf($payment['M_OrderId'], 'PrivateKey');
		$mchname = $this->getConf('system.shopname')."订单:".$payment['M_OrderNO'];
		//$return['M_Currecy'] = "1";
		$return['attach'] = $payment['M_OrderId'];
		$return['chnid'] = "2289480";
		$return['cmdno'] = "12";
		$return['encode_type'] = "2";
		$return['mch_desc'] = "";
		$return['mch_name'] = utf2local($mchname);
		$return['mch_price'] = ceil($payment['M_Amount'] * 100);
		$return['mch_returl'] = $this->serverCallbackUrl;
		$return['mch_type'] = "1";
		$return['mch_vno'] = $payment['M_OrderId'];
		$return['need_buyerinfo'] = "2";
		$return['seller'] = $merId;
		$return['show_url'] = $this->callbackUrl;
		$return['transport_desc'] = "";
		$return['transport_fee'] = 0;
		$return['version'] = "2";
		$return['ikey'] = $ikey;
		return $return;
	}
	function 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($in["attach"], 'PrivateKey');
		$paymentId=$attach;
		$money=$total_fee/100;
		$param=array(
			'interfaceName',
			'interfaceVersion',
			'orderid',
			'TranSerialNo',
			'amount',
			'curType',
			'merID',
			'merAcct',
			'verifyJoinFlag',
			'JoinFlag',
			'UserNum',
			'resultType',
			'orderDate',
			'notifyDate',
			'tranStat',
			'comment',
			'remark1',
			'remark2',
			'signMsg'
		);
		foreach($in as $k => $val){
			if ($k<>"sign"&&!in_array($k,$param))
				$str.=$k."=".$val."&";
		}
		$tradeno = $in['cft_tid'];
		$str=substr($str,0,strlen($str)-1);
		$strLocalSign = strtoupper(md5($str."&key=".$ikey));
		if ($strLocalSign  == $sign){
			if ($retcode == "0"){    
				if($status=="3"){
					$message="支付成功";
					return PAY_SUCCESS;
				}
				else{
					$message="支付失败";
					return PAY_FAILED;
				}
			}
		}
		else{
			$message = '签名认证失败,请立即与商店管理员联系';
			return PAY_ERROR;
		}
	}
	function getfields(){
		return array(
			'member_id'=>array(
				'label'=>'客户号',
				'type'=>'string'
			),
			'PrivateKey'=>array(
				'label'=>'私钥',
				'type'=>'string'
			)
		);
	}
	function applyForm($agentfield){
		$tmp_form.='<a href="javascript:void(0)" onclick="document.applyFormAgain.submit()">立即注册担保帐户</a>';
		$tmp_form.="<form name='applyFormAgain' method='".$agentfield['postmethod']."'  action='http://top.shopex.cn/recordpayagent.php' target='_blank'>";
		foreach($agentfield as $key => $val){
			if ($key=="payagentkey")
				$tmp_form.="<input type='hidden' name='".$key."' value='".$val."DB'>"; 
			else 
				$tmp_form.="<input type='hidden' name='".$key."' value='".$val."'>";
		}
		$tmp_form.="</form>";
		return $tmp_form;
	}
}
?>