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

    var $name = '云网在线支付';//云网在线支付
    var $logo = 'CNCARD';
    var $version = 20070902;
    var $charset = 'gb2312';
    var $applyUrl = 'http://www.cncard.net/api/agentreg.asp';
    var $submitUrl = 'https://www.cncard.net/purchase/getorder.asp'; 
    var $submitButton = 'http://img.alipay.com/pimg/button_alipaybutton_o_a.gif'; ##需要完善的地方
    var $supportCurrency =  array("CNY"=>"CNY");
    var $supportArea =  array("AREA_CNY");
    var $intro='';
    var $applyProp = array("postmethod"=>"get","aid"=>"10054","sign"=>"79cccba5af191e88fb9edd3949796053");
    var $orderby = 10;
    var $head_charset = "gb2312";
        
    function toSubmit($payment){
        $merId = $this->getConf($payment["M_OrderId"], 'member_id');
        $ikey = $this->getConf($payment["M_OrderId"], 'PrivateKey');

        $payment['M_Currency'] = "0";

        $orderdate = date("Ymd",$payment["M_Time"]);//date("Ymd",$order->M_Time);
        $md5string = md5($merId.$payment["M_OrderId"].$payment["M_Amount"].$orderdate."0"."1".$this->callbackUrl."0"."0".$ikey);

        $return['c_mid'] = $merId;
        $return['c_order'] = $payment['M_OrderId'];//$order->M_OrderId;
        $charset=$this->system->loadModel('utility/charset');
        $return['c_name'] = $payment['R_Name'];
        $return['c_address'] = $payment['R_Address'];
        $return['c_tel'] = $payment['R_Telephone'];
        $return['c_post'] = $payment['R_Postcode'];
        $return['c_email'] = $payment["R_Email"];//$order->R_Email;
        $return['c_orderamount'] = $payment["M_Amount"];//$order->M_Amount;
        $return['c_ymd'] = $orderdate;
        $return['c_moneytype'] = $payment["M_Currency"];//$order->M_Currency;
        $return['c_retflag'] = "1";
        $return['c_returl'] = $this->callbackUrl;
        $return['c_language'] = "0";
        $return['notifytype'] = "0";
        $return['c_signstr'] = $md5string;        
        return $return;
    }

    function callback($in,&$paymentId,&$money,&$message,&$tradeno){    
        $c_order = $in["c_order"];        //订单号
        $c_orderamount = $in["c_orderamount"];   //订单金额
        $c_succmark = $in["c_succmark"];    //Y-成功 N-失败
        $c_cause = $in["c_cause"];   //支付失败时为失败原因
        $c_signstr = $in["c_signstr"];
        $tradeno = $in['c_transnum'];
        $ikey = $this->getConf($c_order, 'PrivateKey');
        //-----------重新计算md5的值--------------------------------------------
        $content= md5($in["c_mid"].$in["c_order"].$in["c_orderamount"].$in["c_ymd"].$in["c_transnum"].$in["c_succmark"].$in["c_moneytype"].$in["c_memo1"].$in["c_memo2"].$ikey);
        $paymentId=$c_order;
        $money = $c_orderamount;
        
        if ($c_signstr!=$content){
            $message = '签名认证失败,请立即与商店管理员联系';
            return PAY_ERROR;
        }else{
            if($c_succmark == "Y"){
                $message="支付成功";
                return PAY_SUCCESS;
            }else{
                $message = '支付失败,请立即与商店管理员联系'."($c_cause)";
                return PAY_FAILED;
            }
        }
    }

    function getfields(){
        return array(
                'member_id'=>array(
                        'label'=>'客户号',
                        'type'=>'string'
                ),
                'PrivateKey'=>array(
                        'label'=>'私钥',
                        'type'=>'string'
                )
            );
    }
   function applyForm($agentfield){
      $tmp_form.='<a href="javascript:void(0)" onclick="document.applyForm.submit()">立即注册</a>';
      $tmp_form.="<form name='applyForm' method='".$agentfield['postmethod']."' action='http://top.shopex.cn/recordpayagent.php' target='_blank'>";
      foreach($agentfield as $key => $val){
            $tmp_form.="<input type='hidden' name='".$key."' value='".$val."'>";
      }
      $tmp_form.="</form>";
      return $tmp_form;
   }
}
?>
