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

    <?php
require('paymentPlugin.php');

class pay_ipay extends paymentPlugin{

	var $name = 'IPAY在线支付';//
	var $logo = 'IPAY';
	var $version = 20070615;
	var $charset = 'gb2312';
	var $submitUrl = 'http://www.ipay.cn/4.0/bank.shtml'; //  
	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 = 23;

	function toSubmit($payment){
		$merId = $this->getConf($payment["M_OrderId"], 'member_id');
		$v_mobile = "13800138000";
		//$md5string=md5($merId.$order->M_OrderId.$order->M_Amount.$order->R_Email.$v_mobile.$this->getConf('PrivateKey'));
		$md5string=md5($merId.$payment["M_OrderId"].$payment["M_Amount"].$payment["R_Email"].$v_mobile.$this->getConf($payment["M_OrderId"], 'PrivateKey'));

		//$order->P_Name = $order->P_Name?$order->P_Name:$order->R_Name;
		$payment["P_Name"] = $payment["P_Name"]?$payment["P_Name"]:$payment["R_Name"];

		
		$return['v_mid'] = $merId;
		$return['v_oid'] = $payment["M_OrderId"];//$order->M_OrderId;
		$return['v_amount'] = $payment["M_Amount"];//$order->M_Amount;
		$return['v_date'] = date("Ymd",$payment["M_Time"]);//date("Ymd",$order->M_Time);
		//$return['v_rname'] = $payment["R_Name"];//$order->R_Name;
		$return['v_name'] = $payment["R_Name"];
		$return['v_email'] = $payment["R_Email"];//$order->R_Email;
		$return['v_mobile'] = $v_mobile;
		//$return['v_rtel'] = $payment["R_Telephone"];//$order->R_Telephone;
		$return['v_tel'] = $payment["R_Telephone"];
		$return['v_rpost'] = $payment["R_PostCode"];//$order->R_PostCode;
		//$return['v_raddr'] = $payment["R_Address"];//$order->R_Address;
		$return['v_address'] = $payment["R_Address"];
		$return['v_rnote'] = $payment["M_Remark"];//$order->M_Remark;
		$return['v_payname'] = $payment["P_Name"];//$order->P_Name;
		$return['v_url'] = $this->callbackUrl;
		$return['v_md5'] = $md5string;
		return $return;
	}

	function callback($in,&$orderId,&$money,&$message){
		$v_mid = trim($in['v_mid']);
		$v_oid = trim($in['v_oid']);
		//$v_pamount = trim($in['v_pamount']);
		$v_pamount = trim($in['v_amount']);
		$v_pmode = trim($in['v_pmode']);
		//$v_pstatus = trim($in['v_pstatus']);
		$v_pstatus = trim($in['v_status']);
		$v_pstring = trim($in['v_pstring']);
		//$v_pdate = trim($in['v_pdate']);
		$v_pdate = trim($in['v_date']);
		//$v_pmd5 = trim($in['v_pmd5']);
		$v_pmd5 = trim($in['v_md5']);
		$v_phpmd5 = trim($in['v_phpmd5']);
	 
		
		//-----------------------------
		$orderid = substr($v_oid,-6);
		//$content = $v_mid.$v_oid.$v_pmode.$v_pstatus.$v_pstring.$v_pamount.$v_pdate.$ikey;
		$content = $v_pdate.$v_mid.$v_oid.$v_pamount.$v_pstatus.$this->getConf($payment["M_OrderId"], 'PrivateKey');
		if ($v_phpmd5 == md5($content)){
			if ($v_pstatus == 00 || $v_pstatus == 20){//if ($v_pstatus == 20){				
				return PAY_SUCCESS;
			}elseif ($v_pstatus == 12){
				$message = '交易失败';
				return PAY_FAILED;
			}elseif ($v_pstatus == 99){
				$message = '交易进行中';
				return PAY_PROGRESS;
			}
		}else{
			$message = '交易异常,Md5摘要认证错误';
			return PAY_ERROR;
		}
	}

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

}
?>