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

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

	var $name = 'XPAY 易付通';//XPAY 易付通
	var $logo = 'XPAY';
	var $version = 20070902;
	var $charset = 'gb2312';
	var $submitUrl = 'http://pay.xpay.cn/pay.aspx'; //  
	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 $orderby = 22;
		
	function toSubmit($payment){
		$merId = $this->getConf($payment["M_OrderId"], 'member_id');
		$ikey = $this->getConf($payment["M_OrderId"], 'PrivateKey');//私钥值,商户可上99BILL快钱后台自行设定

		$order->M_Language = "gb2312";
		$card = "bank";				
		$scard = "";
		$actioncode = "sell";
		$actionParameter = "";
		$ver = "2.0";
		//$msign = md5($ikey.":".$order->M_Amount.",".$merId.$order->M_OrderId.",".$merId.",".$card.",".$scard.",".$actioncode.",".$actionParameter.",".$ver);// 
		$msign = md5($ikey.":".$payment["M_Amount"].",".$merId.$payment["M_OrderId"].",".$merId.",".$card.",".$scard.",".$actioncode.",".$actionParameter.",".$ver);// 
		$msign = strtolower($msign);
		
		$return["prc"] = $payment["M_Amount"];//$order->M_Amount;
		$return["bid"] = $merId.$payment["M_OrderId"];//$order->M_OrderId;
		$return["tid"] = $merId;
		$return["card"] = $card;
		$return["scard"] = $scard;
		$return["actionCode"] = $actioncode;
		$return["actionparameter"] = "";
		$return["ver"] = $ver;
		$return["pdt"] = $payment["M_OrderNO"];//$order->M_OrderNO;
		$return["username"] = $payment["R_Name"];//$order->R_Name;
		$return["lang"] = $payment["M_Language"];//$order->M_Language;
		$return["url"] = $this->callbackUrl;
		$return["remark1"] = $payment["M_Remark"];//$order->M_Remark;
		$return["md"] = $msign;
		$return["sitename"] = $this->getConf('system.shopname');
		$return["siteurl"] = $this->getConf('system.shopurl');
				
		return $return;
	}

	function callback($in,&$paymentId,&$money,&$message){	
		$tid = $in["?tid"];//   '商户唯一交易号)
		$bid = $in["bid"];//     '商户网站订单号
		$sid = $in["sid"];//     '易付通交易成功 流水号
		$prc = $in["prc"];//    '支付的金额
		$actionCode = $in["actioncode"];//    '交易码
		$actionParameter = $in["actionparameter"];//    '业务代码
		$card = $in["card"];//    '支付方式
		$success = $in["success"];//    '成功标志,
		$bankcode = $in["bankcode"];//   '支付银行
		$remark1 = $in["remark1"];//     '备注信息
		$username = $in["username"];//  '商户网站支付用户
		$md = $in["md"];//               '32位md5加密数据

		$paymentId = $bid;
		$money = $prc;

		$key = $this->getConf($tid, 'PrivateKey');

		$text = md5($key . ":" . $bid . "," . $sid . "," . $prc . "," . $actionCode  ."," . $actionParameter . "," . $tid . "," . $card . "," . $success);

		$mymd5 = strtolower($text);
		$orderid = substr($bid, -6);
		$date = date("Ymd", mktime());

		if (strtolower($md) == $mymd5){
			if ($success=="true"){
				//成功支付
				return PAY_SUCCESS;
			}else{
				$message = '支付失败,请立即与商店管理员联系';
				return PAY_FAILED;
			}
		}else{
			$message = '签名认证失败,请立即与商店管理员联系';
			return PAY_ERROR;
		}

		//mt_srand((double)microtime()*1000000);
		//$randval = mt_rand(10000000,99999999);
		//$signstr = substr(hexdec(md5($tmp_orderno.$state.mktime().$randval)), 0, 10);
		//$Order->updateOrderSign($tmp_orderno, $signstr);
	}

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