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

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

	var $name = '云网在线支付';//云网在线支付
	var $logo = 'CNCARD';
	var $version = 20070902;
	var $charset = 'gb2312';
	var $applyUrl = 'http://www.cncard.net/api/agentreg.asp';
	var $submitUrl = 'https://www.cncard.net/purchase/getorder.asp'; 
	var $submitButton = 'http://img.alipay.com/pimg/button_alipaybutton_o_a.gif'; ##需要完善的地方
	var $supportCurrency =  array("CNY"=>"CNY");
	var $supportArea =  array("AREA_CNY");
	var $intro='';
	var $applyProp = array("postmethod"=>"get","aid"=>"10054","sign"=>"79cccba5af191e88fb9edd3949796053");
	var $orderby = 10;
	var $head_charset = "gb2312";
		
	function toSubmit($payment){
		$merId = $this->getConf($payment["M_OrderId"], 'member_id');
		$ikey = $this->getConf($payment["M_OrderId"], 'PrivateKey');

		$payment['M_Currency'] = "0";

		$orderdate = date("Ymd",$payment["M_Time"]);//date("Ymd",$order->M_Time);
		$md5string = md5($merId.$payment["M_OrderId"].$payment["M_Amount"].$orderdate."0"."1".$this->callbackUrl."0"."0".$ikey);

		$return['c_mid'] = $merId;
		$return['c_order'] = $payment['M_OrderId'];//$order->M_OrderId;
		$return['c_name'] = $payment['R_Name'];
		$return['c_address'] = $payment['R_Address'];
		$return['c_tel'] = $payment['R_Telephone'];
		$return['c_post'] = $payment['R_Postcode'];
		$return['c_email'] = $payment["R_Email"];//$order->R_Email;
		$return['c_orderamount'] = $payment["M_Amount"];//$order->M_Amount;
		$return['c_ymd'] = $orderdate;
		$return['c_moneytype'] = $payment["M_Currency"];//$order->M_Currency;
		$return['c_retflag'] = "1";
		$return['c_returl'] = $this->callbackUrl;
		$return['c_language'] = "0";
		$return['notifytype'] = "0";
		$return['c_signstr'] = $md5string;		
		return $return;
	}

	function callback($in,&$paymentId,&$money,&$message,&$tradeno){	
		$c_order = $in["c_order"];		//订单号
		$c_orderamount = $in["c_orderamount"];   //订单金额
		$c_succmark = $in["c_succmark"];	//Y-成功 N-失败
		$c_cause = $in["c_cause"];   //支付失败时为失败原因
		$c_signstr = $in["c_signstr"];
		$tradeno = $in['c_transnum'];
		$ikey = $this->getConf($c_order, 'PrivateKey');
		//-----------重新计算md5的值--------------------------------------------
		$content= md5($in["c_mid"].$in["c_order"].$in["c_orderamount"].$in["c_ymd"].$in["c_transnum"].$in["c_succmark"].$in["c_moneytype"].$in["c_memo1"].$in["c_memo2"].$ikey);
		$paymentId=$c_order;
		
		if ($c_signstr!=$content){
			$message = '签名认证失败,请立即与商店管理员联系';
			return PAY_ERROR;
		}else{
			if($c_succmark == "Y"){
				$message="支付成功";
				return PAY_SUCCESS;
			}else{
				$message = '支付失败,请立即与商店管理员联系'."($c_cause)";
				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>';
	  $tmp_form.="<form name='applyForm' method='".$agentfield['postmethod']."' action='http://top.shopex.cn/recordpayagent.php' target='_blank'>";
	  foreach($agentfield as $key => $val){
			$tmp_form.="<input type='hidden' name='".$key."' value='".$val."'>";
	  }
	  $tmp_form.="</form>";
	  return $tmp_form;
   }
}
?>