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

    <?PHP
	require("paymentPlugin.php");
	class pay_skypay extends paymentPlugin{
		var $name = "我付了储值卡支付";
		var $logo = 'SKYPAY';
		var $version = '20080901';
		var $charset = 'gb2312';
		var $info = '我付了支付平台( http://www.wofule.com.cn )专注集中于为商户提供各种非银行卡资金源(联华OK卡、手机储值卡等)线上和线下的全方位支付服务,通过掌捷的非银行支付服务可以为商户提供多渠道的资金来源,同时带来更多潜在的用户群体。(中国市场上十亿多张的预付费的卡,并且每秒钟有1张预付费卡在增值。由于预付卡市场有超过90%的现存卡并不是自买自用型的,因此决定了大量的预付费卡持有者具有很强的消费欲望,并且希望能够找到更多的商户进行基于预付费卡的消费)';
		var $submitUrl='http://gateway.wofule.com.cn/gateway/paymentorder';
		var $submitButton = 'http://img.alipay.com/pimg/button_alipaybutton_o_a.gif'; ##需要完善的地方
		var $supportCurrency =  array("CNY"=>"CNY");
		var $supportArea =  array("AREA_CNY");
		var $head_charset = 'gb2312';
		var $method = 'post';
		var $orderby = '9#';
		function toSubmit($payment){
			$merid=$this->getConf($payment['M_OrderId'],'member_id');
			$key = $this->getConf($payment['M_OrderId'],'PrivateKey');
			$charset = $this->system->loadModel('utility/charset');
			$shopName = $this->system->getConf('system.shopname');
			$return['mer_id'] = $merid;
			$return['order_date'] =date("Ymd",$payment['M_Time']);
			$return['order_no']	= $payment['M_OrderId'];
			$return['order_time'] = date("His",$payment['M_Time']);
			$return['order_amount'] = $payment['M_Amount']*100;
			$return['mobile'] =	$payment['R_Mobile'];
			$return['item_name'] = "网店订单:".$payment['M_OrderNO'];
			$return['mer_url'] = $this->callbackUrl;
			$return['result_url'] =	$this->serverCallbackUrl;
			$return['payment_type'] = '';
			$signString='';
			foreach($return as $k => $v){
				if ($k=="item_name")
				   $v = $charset->utf2local($v,'zh');
				$signString.=$k."=".$v.",";
			}
			$signString=substr($signString,0,strlen($signString)-1);
			$sign=md5($signString.$key);
			$return['sign'] = $sign;
			return $return;
		}
		function callback($in,&$paymentId,&$money,&$message,&$tradeno){
			$privatekey = $this->getConf($in['order_no'],"PrivateKey");
			$paymentId = $in['order_no'];
			$money = $in['order_amount']/100;
		    $merId = trim ($in['mer_id']);
			$orderDate = trim ($in['order_date']);
			$orderNo = trim ($in['order_no']); 
			$finishTime = trim ($in['finish_time']); 
			$orderAmount = trim ($in['order_amount']);
			$status = trim ($in['status']);
			$mobile = trim ($in['mobile']);
			$orderParam = trim ($in['mer_order_param']); 
			$paymentType = trim ($in['payment_type']);
			$brandCode = trim ($in['brand_code']); 
			$sign = trim ($in['sign']);
			$data = "mer_id=".$merId.",order_date=".$orderDate.",order_no=".$orderNo;
			$data.=",finish_time=".$finishTime.",order_amount=".$orderAmount;
			$data.=",status=".$status.",mobile=".$mobile;
			$data.=",payment_type=".$paymentType;
			$data=$data.$privatekey;
			if (md5($data)==$sign){
				echo "success";
				$message="支付成功!";
				return PAY_SUCCESS;
			}
			else{
				echo "fail";
				$message = "支付失败!";
				return PAY_FAIL;
			}
		}
		function getfields(){
			return array(
				'member_id'=>array(
					'label'=>'客户号',
					'type'=>'string'
				),
				'PrivateKey'=>array(
					'label'=>'密钥',
					'type'=>'string'
				)
			);
		}
	}
?>