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

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

	var $name = '和讯在线支付';//和讯在线支付
	var $logo = 'HOMEWAY';
	var $version = 20070902;
	var $charset = 'GB2312';
	var $submitUrl = 'http://payment.homeway.com.cn/pay/pay_new.php3'; //  
	var $submitButton = 'http://img.alipay.com/pimg/button_alipaybutton_o_a.gif'; ##需要完善的地方
	var $supportCurrency =  array("CNY");
	var $supportArea =  array("AREA_CNY");
	var $desc = '和讯在线支付';
	var $orderby = 31;
		
	function toSubmit($payment){
		$merId = $this->getConf($payment["M_OrderId"], 'member_id');
		$ikey = $this->getConf($payment["M_OrderId"], 'PrivateKey');
		
		//$order->M_Currency = "2002";
		$payment["M_Currency"] = "2002";//
		$mer_key="asdfghjk12345678";
		$payment["M_Amount"] *= 100;//$order->M_Amount *= 100;
		//$info = $merId.$order->M_Amount.$order->M_OrderId.date("Ymd",$order->M_Time).$order->M_Currency.$ikey;
		$info = $merId.$payment["M_Amount"].$payment["M_OrderId"].date("Ymd",$payment["M_Time"]).$payment["M_Currency"].$ikey;
		$msign = md5($info);
		
		$return['MerchID'] =  $merId;
		$return['OrderNum'] = $payment["M_OrderId"];//$order->M_OrderId;
		$return['Amount'] =  $payment["M_Amount"];//$order->M_Amount;
		$return['TransType'] = $payment["M_Currency"];//$order->M_Currency;
		$return['TransDate'] =  date("Ymd",$payment["M_Time"]);//date("Ymd",$order->M_Time);
		$return['Signature'] = $msign;
		
		return $return;
	}

	function callback($in,&$paymentId,&$money,&$message){	
		$OrderNo	= 	$in['OrderNo'];			//商家订单号
		$Amount		= 	$in['Amount'];			//支付金额
		$TransType	= 	$in['TransType'];			//币种		
		$TransDate	= 	$in['TransDate'];			//语言选择
		$Succeed	=	$in['Succeed'];				//支付状态2成功,3失败
		//接收组件的加密
		$RetSign 	=	$in['RetSign'];				//密匙

		$paymentId = $OrderNo;
		$money = $Amount;

		if ( $Succeed == "Y" ){
			//支付标志为成功,但仍需要验证确认
			//	$MerchID = "EC_TEST00000";		//和讯支付平台为您分配的商户号
			//	$MerchKey = "QWERtyui12345678";		//双方约定的密钥
			//检查签名
			$info = $this->getConf($OrderNo, 'PrivateKey').$Succeed.$OrderNo.$this->getConf('member_id').$Amount.$TransType.$TransDate;
			$MySign = md5($info);
			
			if ( $RetSign == $MySign ){
				return PAY_SUCCESS;
			}else{
				$message = '验证失败';
				return PAY_ERROR;
			}
		}else{
			$message = '支付失败,请立即与商店管理员联系';
			return PAY_FAILED;
		}
	}

	function getfields(){
		return array(
				'member_id'=>array(
						'label'=>'客户号',
						'type'=>'string'
					),
				'PrivateKey'=>array(
						'label'=>'私钥',
						'type'=>'string'
				)
			);
	}
}
?>