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

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

	var $name = '2CHECKOUT';//2CHECKOUT
	var $logo = '2CHECKOUT';
	var $version = 20070902;
	var $charset = 'utf-8';
	var $submitUrl = 'https://www.2checkout.com/2co/buyer/purchase'; 
	var $submitButton = 'http://img.alipay.com/pimg/button_alipaybutton_o_a.gif'; ##需要完善的地方
	var $supportCurrency = array("AUD"=>"AUD", "CAD"=>"CAD", "EUR"=>"EUR", "GBP"=>"GBP", "HKD"=>"HKD", "JPY"=>"JPY", "KRW"=>"KRW", "SGD"=>"SGD", "USD"=>"USD");
	var $supportArea =  array("AREA_AUD","AREA_CAD","AREA_EUR","AREA_GBP","AREA_HKD","AREA_JPY","AREA_KRW","AREA_SGD","AREA_USD");
	var $desc = '2Checkout.com';
	var $orderby = 40;
	var $cur_trading = true;	//支持真实的外币交易
	
	function toSubmit($payment){
		$merId = $this->getConf($payment["M_OrderId"], 'member_id');
		$ikey = $this->getConf($payment["M_OrderId"], 'PrivateKey');

		##$tmp_url = $this->url."index.php";
		$tmp_url = $this->callbackUrl;

		$return["sid"]= $merId;
		$return["cart_order_id"]= $payment["M_OrderId"];//$order->M_OrderId;
		$return['quantity']= "1";
		$return['invoice_num']= $payment["M_OrderNO"];//$order->M_OrderNO;
		$return['total']= $payment["M_Amount"];//$order->M_Amount;
		$return['card_holder_name']= $payment["R_Email"];//$order>R_Email;
//		$return.= "<input type=HIDDEN name=\"c_prod\" value=\"".$this->orderid."\">";
//		$return.= "<input type=HIDDEN name=\"id_type\" value=\"2\">";
		$return['lang']= "en";
		$return['email']= $payment["R_Email"];//$order->R_Email;
		$return['return_url']= $tmp_url;
			
		return $return;
	}

	function callback($in,&$paymentId,&$money,&$message){	
		//=========================== 把商家的相关信息返回去 =======================
		$orderid	= $in['order_number'];			//商店订单号
		$mer_id		= $in['card_holder_name'];		//商户号
		$credit_card_processed	= $in['credit_card_processed'];	//状态
		$amount		= $in['product_id'];				//支付金额
		$product_id	= $in['total'];				//支付金额
		$md5sig		= $in['key'];				//验证串

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

		//检查签名
		$key = $this->getConf($orderid, 'PrivateKey');

		//整合md5加密
		$text = $key.$mer_id.$orderid.$amount;
		$md5digest = strtoupper(md5($text));

		if ($md5digest == $md5sig){
			if ($Order->paycur == $currency && $Order->paymoney <= $amount){
				return PAY_SUCCESS;
			}else{
				$message = '更新数据库,支付失败。';
				return PAY_FAILED;
			}
		}else{
			$message = '支付信息不正确,可能被篡改。';
			return PAY_ERROR;
		}
	}

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