<?php

/******************************************************************************
 *
 *	PROJECT: Flynax Classifieds Software
 *	VERSION: 4.X
 *	LICENSE: FL0M2SG681CQ - http://www.flynax.com/license-agreement.html
 *	PRODUCT: Pets Classifieds
 *	DOMAIN: pupsnshop.com
 *	FILE: POST.GATEWAY.PHP
 *
 *	The software is a commercial product delivered under single, non-exclusive, 
 *	non-transferable license for one domain or IP address. Therefore distribution, 
 *	sale or transfer of the file in whole or in part without permission of Flynax 
 *	respective owners is considered to be illegal and breach of Flynax License End 
 *	User Agreement. 
 *
 *	You are not allowed to remove this information from the file without permission
 *	of Flynax respective owners.
 *
 *	Flynax Classifieds Software 2014 |  All copyrights reserved. 
 *
 *	http://www.flynax.com/
 *
 ******************************************************************************/

header('Content-Type: text/html; charset=ISO-8859-1');

$file = fopen( 'response.log', 'a' );

if ( $file )
{                      
	$line = "\n\n" . date( 'Y.m.d H:i:s' ) . ":\n";
    fwrite( $file, $line );

	foreach( $_REQUEST as $p_key => $p_val )
	{                 
		$line = "{$_SERVER['REQUEST_METHOD']} {$p_key} => {$p_val}\n";
    	fwrite( $file, $line );
	}

	fclose( $file );
}

if ( $_SERVER['REQUEST_METHOD'] == 'POST' || $_SERVER['REQUEST_METHOD'] == 'post' )
{
	require_once( '../../../includes/config.inc.php' );

	/* system controller */
	require_once( RL_INC . 'control.inc.php' );

	$reefless -> loadClass( 'Cache' );
	$reefless -> loadClass( 'PagSeguro', null, 'pagSeguro' );

	/* load system configurations */
	$config = $rlConfig -> allConfig();

	$code = trim( $_POST['notificationCode'] );
	$type = trim( $_POST['notificationType'] );

	$transaction = $rlPagSeguro -> checkTransaction( $code, $type );

	if ( $transaction )
	{
		$txn_id = $transaction -> getReference();
		$status = $transaction -> getStatus() -> getTypeFromValue();

		$items = $rlPagSeguro -> getPaymentDetails( $txn_id );

		if ( $items )
		{
			$plan_id = $items[0];
			$item_id = $items[1];
			$account_id = $items[2];
			$total = (int)$items[3];
			$callback_class = $items[4];
			$callback_method = $items[5];

			$lang_code = $items[8];
			$plugin = $items[9];

			define( 'RL_LANG_CODE', $lang_code );

			$seo_base = RL_URL_HOME;
			$seo_base .= $lang_code == $config['lang'] ? '' : $lang_code . '/';

			$lang = $rlLang -> getLangBySide( 'frontEnd', RL_LANG_CODE );
			$GLOBALS['lang'] = $lang;
			
			if ( $status != 'PAID' && $status != 'AVAILABLE' )
			{
				$errors = true;
				$rlDebug -> logger( "pagSeguro: Your payment has status: " . $status );
			}

			if ( empty( $item_id ) || empty( $total ) )
			{
				$errors = true;
				$rlDebug -> logger( "pagSeguro: Item ID or Total is empty;" );
			}

			if ( !$errors ) 
			{
				$reefless -> loadClass( str_replace( 'rl', '', $callback_class ), null, $plugin );
				$$callback_class -> $callback_method( $item_id, $plan_id, $account_id, $txn_id, 'pagSeguro', $total );
			}
		}
	}
}