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

    <?php
require('paymentPlugin.php');
class pay_tenpay extends paymentPlugin{

	var $name = '腾讯财付通[即时到账]';//腾讯财付通
	var $logo = 'TENPAY';
	var $version = 20070902;
	var $charset = 'gb2312';
	var $applyUrl = 'http://union.tenpay.com/mch/mch_register_b2c.shtml';//即时到帐
	var $applyUrlAgain = 'https://www.tenpay.com/mchhelper/mch_register_c2c.shtml';//担保
	//var $submitUrl = 'http://portal.tenpay.com/cfbiportal/cgi-bin/cfbiin.cgi'; 
	var $submitUrl = 'https://www.tenpay.com/cgi-bin/v1.0/pay_gate.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年首创获得“国家电子商务专项基金”资金支持。<br><br><font color="red">本接口需点击【立即申请】按钮进行在线签约和付费后方可使用。</font>';	
	var $applyProp = array("postmethod"=>"get","sp_suggestuser"=>"2289480");//代理注册参数组
	var $orderby = 5;

	function toSubmit($payment){
		$merId = $this->getConf($payment['M_OrderId'], 'member_id');
		$ikey = $this->getConf($payment['M_OrderId'], 'PrivateKey');

		$payment['M_Currency'] = "1";    //$order->M_Currency = "1";
		
		$orderdate = date("Ymd",$payment['M_Time']);	//$order->M_Time
		$payment['M_Amount'] = ceil($payment['M_Amount'] * 100);	//$order->M_Amount
		//$v_orderid = $merId.$orderdate."0000" . $payment['M_OrderId'];  //$order->M_OrderId
		$v_orderid = $merId.$orderdate.substr($payment['M_OrderId'],-10);
		$md5string=strtoupper(md5("cmdno=1&date=".$orderdate."&bargainor_id=".$merId."&transaction_id=".$v_orderid."&sp_billno=".$payment['M_OrderNO']."&total_fee=".$payment['M_Amount']."&fee_type=1&return_url=".$this->callbackUrl."&attach=".$payment['M_OrderId']."&key=".$ikey));
		$subject = $payment['M_OrderNO'];
	

		$return["cmdno"] = "1";
		$return["date"] = $orderdate;
		$return["bank_type"] = "0";
		$return["desc"] = $subject;
		$return["purchaser_id"] = "";
		$return["bargainor_id"] = $merId;
		$return["transaction_id"] = $v_orderid;//$payment['M_OrderId'];
		$return["sp_billno"] = $payment['M_OrderNO'];   //$order->M_OrderNO;
		$return["total_fee"] = $payment['M_Amount'];	//$order->M_Amount;
		$return["fee_type"] =  $payment['M_Currency'];  //$order->M_Currency;
		$return["return_url"] = $this->callbackUrl;
		$return["attach"] = $payment['M_OrderId'];
		$return["ikey"]=$ikey;
		$return["sign"] = $md5string;
		return $return;
	}

	function callback($in,&$paymentId,&$money,&$message,&$tradeno){	
		$cmdno=$in["cmdno"];
		$pay_result=$in["pay_result"];
		$pay_info=$in["pay_info"];
		$date=$in["date"];
		$bargainor_id=$in["bargainor_id"];
		$transaction_id=$in["transaction_id"];
		$sp_billno=$in["sp_billno"];
		$total_fee=$in["total_fee"];
		$fee_type=$in["fee_type"];
		$attach=$in["attach"];
		$sign=$in["sign"];
		$mac ="";
		$v_orderid = substr($v_order_no,-6);
		$ikey = $this->getConf($in['attach'], 'PrivateKey');
		$md5mac = strtoupper(md5("cmdno=$cmdno&pay_result=$pay_result&date=$date&transaction_id=$transaction_id&sp_billno=$sp_billno&total_fee=$total_fee&fee_type=$fee_type&attach=$attach&key=$ikey"));
		$paymentId=$in['attach'];
		$money=intval($total_fee)/100;
		$tradeno = $in['transaction_id'];
		if($md5mac!=$sign){
			$message = '签名认证失败,请立即与商店管理员联系';
			return PAY_ERROR;
		}else{
			if($pay_result==0){
				return PAY_SUCCESS;
			}else{
				$message = '支付失败,请立即与商店管理员联系'.$pay_info;
				return PAY_FAILED;
			}
		}
	}

	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.applyForm.submit()">立即注册即时到帐帐户</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="javascript:void(0)" onclick="document.applyFormAgain.submit()">立即注册担保帐户</a>';
	  $tmp_form= '<a href="javascript:void(0)" onclick="document.applyForm.submit()">立即申请即时到帐帐户</a>';
	  $tmp_jsdz_form="<form name='applyForm' method='".$agentfield['postmethod']."' action='http://top.shopex.cn/recordpayagent.php' target='_blank'>";
	  $tmp_db_form="<form name='applyFormAgain' method='".$agentfield['postmethod']."'  action='http://top.shopex.cn/recordpayagent.php' target='_blank'>";
	  foreach($agentfield as $key => $val){
		  if ($key=="agenturl")
			$tmp_jsdz_form.="<input type='hidden' name='".$key."' value='".$val."'>";
		  elseif ($key=="agenturlAgain")
			 $tmp_db_form.="<input type='hidden' name='agenturl' value='".$val."'>";
		  elseif ($key == "payagentkey"){
			  $tmp_jsdz_form.="<input type='hidden' name='".$key."' value='".$val."JSDZ'>";
			  $tmp_db_form.="<input type='hidden' name='".$key."' value='".$val."DB'>";
		  }
		  else {
			  $tmp_jsdz_form.="<input type='hidden' name='".$key."' value='".$val."'>";
			  $tmp_db_form.="<input type='hidden' name='".$key."' value='".$val."'>";
		  }
	  }
	  $tmp_jsdz_form.="</form>";
	  $tmp_db_form.="</form>";
	  $tmp_form.=$tmp_jsdz_form;//.$tmp_db_form;
	  return $tmp_form;
   }
}
?>