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

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

	var $name = 'MOBILE88';//MOBILE88
	var $logo = 'MOBILE88';
	var $version = 20070902;
	var $charset = 'utf-8';
	var $submitUrl = 'https://www.mobile88.com/epayment/entry.asp'; 
	var $submitButton = 'http://img.alipay.com/pimg/button_alipaybutton_o_a.gif'; ##需要完善的地方
	var $supportCurrency = array("MYR"=>"MYR");
	var $supportArea =  array("AREA_MYR");
	var $desc = 'www.mobile88.com';
	var $orderby = 43;
		
	function toSubmit($payment){
		$merId = $this->getConf($payment["M_OrderId"], 'member_id');
		$ikey = $this->getConf($payment["M_OrderId"], 'PrivateKey');
		
		$ordAmount = number_format($this->M_Amount, 2, ".", "");
		$tmpOrdAmount = str_replace(".", "", $ordAmount);
		$sha1 = $this->system->loadModel('utility/sha1');
		//$Signature = base64_encode($sha1->sha1($ikey.$merId.$order->M_OrderId.$tmpOrdAmount.$order->M_Currency, true));
		$Signature = base64_encode($sha1->sha1($ikey.$merId.$payment["M_OrderId"].$tmpOrdAmount.$payment["M_Currency"], true));

		$return['MerchantCode'] = $merId;
		$return['RefNo'] = $payment["M_OrderId"];//$order->M_OrderId;
		$return['PaymentId'] = "2";
		$return['Amount'] = $ordAmount;
		$return['Currency'] = $payment["M_Currency"];//$order->M_Currency;
		$return['ProdDesc'] = $payment["M_OrderNO"];//$order->M_OrderNO;
		$return['UserName'] = $payment["R_Name"];//$order->R_Name;
		$return['UserEmail'] = $payment["R_Email"];//$order->R_Email;
		$return['UserContact'] = $payment["R_Address"];//$order->R_Address;
		$return['Remark'] = "";
		$return['Signature'] = $Signature;
		$return['return_url'] =  $this->callbackUrl;
		
		return $return;
	}

	function callback($in,&$paymentId,&$money,&$message){	
		$MerchantCode = trim($in['MerchantCode']);	//商家ID
		$PaymentId = trim($in['PaymentId']);			//Payment Method Id
		$orderid = trim($in['RefNo']);			//交易号
		$amount = trim($in['Amount']);			//交易金额
		$Currency = trim($in['Currency']);		//Currency code. “MYR” only
		$TransId = trim($in['TransId']);			//MOBILE88交易ID
		$AuthCode = trim($in['AuthCode']);		//Bank’s approval code
		$succeed = trim($in['Status']);			//交易结果,"1"表示成功,"0"表示失败
		$ErrDesc = trim($in['ErrDesc']);
		$Signature = trim($in['Signature']);

		$paymentId = $orderid;
		$money = $amount;

		$key = $this->getConf($orderid, 'PrivateKey');
		$sha1 = $this->system->loadModel('utility/sha1');
		$text = $key.$MerchantCode.$orderid.$amount.$Currency;
		$mac = base64_encode($sha1->sha1($text, true));

		if (strtoupper($mac)==strtoupper($Signature)){
			switch ($succeed){
				//成功支付
				case "1":
					return PAY_SUCCESS;
					break;
				//支付失败
				case "0":
					$message = '支付失败,请立即与商店管理员联系';
					return PAY_FAILED;
					break;
			}
		}else{
			$message = '支付信息不正确,可能被篡改。';
			return PAY_ERROR;
		}

	}

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