کسی میدونه چرا این کلاس تو اینترنت اکسپلورر ریدایرکت نمیکنه سایت فروشنده اما تو فایرف

saleh22

New Member
کسی میدونه چرا این کلاس تو اینترنت اکسپلورر ریدایرکت نمیکنه سایت فروشنده اما تو فایرفاکس میکنه

کمک کنید حلش کنم

دهنم سرویس شده الان یه هفته هست

تو فایرفاکس عالی کار میکنه و ریدایرکت میشه بعد پرداخت به سایت مشتری اما تو IE نه چیکا رکنم با آِ ای هم کار کنه؟؟


PHP:
<?PHP

class ENPayment
{

    public $action  = 'https://213.217.42.116/CardServices/controller';

    public $webMethodURL = 'https://213.217.42.116/ref-payment/ws/ReferencePayment?WSDL';

    public $redirectURL = 'http://xxxx.com/eghtesad/pay.php';

    public $totalAmont;

    public $refNum;

    public $resNum;

    protected $payment;

    protected $merchantID;

    protected $password;

    protected $msg = array();

    protected $errorState = array(
    'Canceled By User'     => 'تراکنش بوسيله خريدار کنسل شده',
    'InvalidAmount'        => 'مبلغ سند برگشتي  از مبلغ تراکنش اصلي بيشتر است',
    'InvalidTransaction'   => 'درخواست برگشت تراکنش رسيده است در حالي که تراکنش اصلي پيدا نمي شود',
    'InvalidCard'          => 'شماره کارت اشتباه است',
    'No Such Issuer'       => 'چنين صادر کننده کارتي وجود ندارد',
    'Expired Card Pick Up' => 'از تاريخ انقضاي کارت گذشته است',
    'Incorrect PIN'        => 'رمز کارت اشتباه است pin',
    'No Sufficient Funds'  => 'موجودي به اندازه کافي در حساب شما نيست',
    'Issuer Down Slm'      => 'سيستم کارت بنک صادر کننده فعال نيست',
    'tme error'            => 'خطا در شبکه بانکي',
    'Exceeds Withdrawal Amount Limit'      => 'مبلغ بيش از سقف برداشت است',
    'Transaction Cannot Be Completed'      => 'امکان سند خوردن وجود ندارد',
    'Allowable PIN Tries Exceeded Pick Up' => 'رمز کارت 3 مرتبه اشتباه وارد شده کارت شما غير فعال اخواهد شد',
    'Response Received Too Late'           => 'تراکنش در شبکه بانکي تايم اوت خورده',
    'Suspected Fraud Pick Up'              => 'اشتباه وارد شده cvv2 ويا ExpDate فيلدهاي'
    );

    protected $errorVerify = array(
    '-1'  => 'خطاي داخلي شبکه',
    '-2'  => 'سپرده ها برابر نيستند',
    '-3'  => 'ورودي ها حاوي کاراکترهاي غير مجاز ميباشد',
    '-4'  => 'کلمه عبور يا کد فروشنده اشتباه است',
    '-5'  => 'خطاي بانک اطلاعاتي',
    '-6'  => 'سند قبلا برگشت کامل خورده',
    '-7'  => 'رسيد ديجيتالي تهي است',
    '-8'  => 'طول ورودي ها بيشتر از حد مجاز است',
    '-9'  => 'وجود کارکترهاي غير مجاز در مبلغ برگشتي',
    '-10' => 'رسيد ديجيتالي حاوي کارکترهاي غير مجاز است',
    '-11' => 'طول ورودي ها کمتر از حد مجاز است',
    '-12' => 'مبلغ برگشتي منفي است',
    '-13' => 'مبلغ برگشتي براي برگشت جزيي بيش از مبلغ برگشت نخورده رسيد ديجيتالي است',
    '-14' => 'چنين تراکنشي تعريف نشده است',
    '-15' => 'مبلغ برگشتي به صورت اعشاري داده شده',
    '-16' => 'خطاي داخلي سيستم',
    '-17' => 'برگشت زدن تراکنشي که با کارت بانکي غير از بانک اقتصاد نوین انجام شده',
    '-18' => 'فروشنده نامعتبر است ip address'
    );

    public $style = array('TableBorderColor' => '',
                          'TableBGColor'     => '',
                          'PageBGColor'      => '',
                          'PageBorderColor'  => '',
                          'TitleFont'        => '',
                          'TitleColor'       => '',
                          'TitleSize'        => '',
                          'TextFont'         => '',
                          'TextColor'        => '',
                          'TextSize'         => '',
                          'TypeTextColor'    => '',
                          'TypeTextColor'    => '',
                          'TypeTextSize'     => '',
                          'LogoURI'          => ''
                          );

    function __construct($mID = '',$pass = '')
    {
        $this->merchantID = $mID;
        $this->password   = $pass;

    }

    protected function createResNum()
    {
        do{
            $resNum = rand(111111,999999);

            $search = mysql_query("SELECT res_num FROM enpayment WHERE res_num = '$resNum'");
            if( mysql_num_rows($search) < 1 ) {
                break;
            }
        }while( true );




        $this->resNum = $resNum;
    }

    protected function searchResNum( $resNum )
    {
        $search = mysql_query( "select * FROM enpayment WHERE res_num='$resNum'");
        if ( mysql_num_rows( $search ) < 1 ) {
            return false;
        }
        return mysql_fetch_assoc( $search );
    }

    protected function searchRefNum( $refNum )
    {
        $search = mysql_query( "select * FROM enpayment WHERE ref_num = '$refNum'" );
        if ( mysql_num_rows( $search ) < 1 ) {
            return false;
        }
        return mysql_fetch_assoc( $search );
    }

    protected function saveBankInfo( $payment )
    {
        $this->payment = $payment;
        return mysql_query( "UPDATE enpayment SET ref_num = '$this->refNum' ,payment = '$payment' WHERE res_num = '$this->resNum'" ) or die(mysql_error());
    }

    public function saveStoreInfo( $totalAmont )
    {
        if( $totalAmont == '' ) {
           echo( "Error: TotalAmont" );
            return false;
        }
        $time = time();
        $this->totalAmont = $totalAmont;
        $this->createResNum();
        $user = $_SESSION['myusername'];

        return mysql_query( "INSERT INTO enpayment SET `res_num` = '$this->resNum', `total_amont` = '$this->totalAmont', `date_start` = '$time', `username` = '$user'" ) or die(mysql_error());
    }

     public function receiverParams( $resNum = '' , $refNum = '' ,$state = '' )
    {
        if( ( empty($state) or empty($resNum) or strlen($refNum) != 20 ) or $state != 'OK' ) {
            if(isset($this->errorState[$state])) {
               echo( 'state'.$state );
            } else {
                echo ("error state")."<br>";

            }
            return false;
        }

        $searchResNum = $this->searchResNum( $resNum );

        if( is_array( $searchResNum ) ) {
            if( $searchResNum['payment'] > 0) {
               echo( "اين رسيد ديجيتال قبلا استفاده شده" );
                return false;
            }
        } else {
           echo("همچين تراکنشي در سمت فروشنده تعريف نشده");
            return false;
        }

        $this->refNum     = $refNum;
        $this->resNum     = $resNum;
        $this->totalAmont = $searchResNum['total_amont'];

        return $this->lastCheck();
    }


    protected function lastCheck()
    {
        if( empty($this->resNum) or strlen($this->refNum) != 20 ) {
           echo( "Error: resNum or refNum is empty" );
            return false;
        }
        //web method verify transaction
        $verify     = $this->verifyTransaction();

        if( $verify > 0 ) {
            if( $verify == $this->totalAmont ) {

                $this->saveBankInfo( $verify );
               echo("پرداخت با موفقيت انجام شد  لطفا کد رهگيري را يادداشت کنيد");
               echo( "<br>  کد رهگيري : "."$this->resNum" );
                return true;


            } elseif( $verify > $this->totalAmont ) {

                //web method partial reverse transaction
                $revAmont = $verify - $this->totalAmont;
                $reverse  = $this->reverseTrans( $revAmont );

               echo("کاربر گرامي  مبلغ پرداختي بيش از مبلغ درخواستي است");
                if( $reverse == 1 ) {
                   echo("مابقي مبلغ پرداخت شده به حساب شما برگشت خورده");
                    $this->saveBankInfo( $this->totalAmont );
                } else {
                   echo( 'verify'.$reverse );
                   echo( "ما بقي مبلغ پرداختي شما در اينده اي نزديک به حساب شما برگشت خواهد خورد " );
                    $this->saveBankInfo( $verify );
                }
               echo("پرداخت با موفقيت انجام شد  لطفا کد رهگيري را يادداشت کنيد");
               echo( "<br>  کد رهگيري : "."$this->resNum"  );
                return true;


            } elseif( $verify < $this->totalAmont ) {

                //web method full reverse transaction
                $rev     = $this->reverseTrans( $verify );
               echo("مبلغ پرداختي شما کمتر از مباغ سفارش است ");
                if( $rev == 1 ) {
                   echo("کل مبلغ پرداختي به حساب شما برگشت خورده");
                    $this->saveBankInfo( 0 );
                } else {
                   echo("در اينده اي نزديک کل مبلغ پرداختي به حساب شما برگشت خواهد خورد لطفا براي پي گيري کد رهگيري را يادداشت کنيد");
                   echo( "$this->resNum"." : کد رهگيري " );
                   echo( 'verify'.$rev );
                    $this->saveBankInfo( $verify );
                }
                return false;
            }
            //Error transaction
        } elseif ( $verify < 0 or $verify == false ) {
           echo( "کاربر گرامي مشکلي در تاييد  پرداخت پيش امده" );
           echo( 'verify'.$verify );
            $this->saveBankInfo( 0 );
            return false;
        }
    }
   protected function verifyTransaction()
    {
        if(empty($this->refNum) or empty($this->merchantID) ) {
            return false;
        }
        $soapclient2 = new soapclient2_nu( $this->webMethodURL,'wsdl' );
        $soapProxy  = $soapclient2->getProxy();
        $result     = false;

        for( $a=1;$a<6;++$a ) {
            $result  = $soapProxy->verifyTransaction( $this->refNum,$this->merchantID );
            if( $result != false ) {
                break;
            }
        }
        return $result;
    }

    protected function reverseTransaction( $revNumber )
    {
        if( $revNumber <= 0 or empty($this->refNum) or empty($this->merchantID) or empty($this->password) ) {
            return false;
        }
        $soapclient2 = new soapclient2_nu( $this->webMethodURL,'wsdl' );
        $soapProxy  = $soapclient2->getProxy();
        $result     = false;

        for( $a=1;$a<6;++$a ) {
            $result     = $soapProxy->reverseTransaction( $this->refNum,$this->merchantID,$this->password,$revNumber );
            if( $result != false )
                break;
        }
        return $result;
    }

    public function sendParams()
    {

        if ( $this->totalAmont <= 0 or empty($this->action) or empty($this->redirectURL) or empty($this->resNum) or empty($this->merchantID) ) {
           echo( "Error: function sendParams()" );
            return false;
        }

         //print($this->merchantID.'-'.$this->resNum);exit;

       $form  = "<html>";
        $form .= "<body onLoad=\"document.forms['sendparams'].submit();\" >";
        $form .= "<form name=\"sendparams\" method=\"POST\" action=\"$this->action\" enctype=\"application/x-www-form-urlencoded\" >\n";
        foreach ( $this->style as $key=>$val ) {
            if( $val != '' ) {
                $form .= "<input type=\"hidden\" name=\"$key\" value=\"$val\" />\n";
            }
        }


        $form .= "<input type=\"hidden\" name=\"Amount\" value=\"$this->totalAmont\" />\n";
        $form .= "<input type=\"hidden\" name=\"ResNum\" value=\"$this->resNum\" />\n";
        $form .= "<input type=\"hidden\" name=\"MID\" value=\"$this->merchantID\" />\n";
        $form .= "<input type=\"hidden\" name=\"RedirectURL\" value=\"$this->redirectURL\" />\n";
        $form .= "</form>";
        $form .= "</body>";
        $form .= "</html>";

        print $form;
    }

    protected function setMsg($type='',$index='')
    {
        if ( $type == 'state' and isset( $this->errorState[$index] ) ) {
            $this->msg[] = $this->errorState[$index];

        } elseif( $type == 'verify' and isset($this->errorVerify[$index]) ) {
            $this->msg[] = $this->errorVerify[$index];

        } elseif( $type != 'verify' and $type != 'state') {
            $this->msg[] = "$type";
        }
    }

    public function getMsg($dis='')
    {

      if( count($this->msg) == 0 ) return array();


            foreach ( @$this->msg as $v ) { @$msg .= @$v ; }



            echo  $msg;

        //return $this->msg;
    }
}


?>
 

جدیدترین ارسال ها

بالا