<?php
require("lib/config.php");
require_once 'vendor/eway/eway-rapid-php/include_eway.php';
$data  = $_REQUEST;
$sql = "SELECT * FROM customers where email = '".$_REQUEST['username']."'";
$result = $conn->query($sql);
if ($result->num_rows > 0) 
{
    while($row = $result->fetch_assoc()) 
	{
        $customer[] = $row;
		$sql = "SELECT * FROM `customer_details` where `cid` = '".$row["id"]."'"; 
		$result = $conn->query($sql);
		if ($result->num_rows > 0) 
		{
			while($row_details = $result->fetch_assoc()) 
			{
				$cust_detail[] = $row_details;
			}
		}
		$sql = "SELECT * FROM `customer_tokens`  where `cid` = '".$row["id"]."'"; 
		$result = $conn->query($sql);
		if ($result->num_rows > 0) 
		{
			while($row_token = $result->fetch_assoc()) 
			{
				$cust_token[] = $row_token;
			}
		}
    }
}
$name = $customer[0]["name"];
$name_split = explode(" ",$name);
$fname = $name_split[0];
$lname = $name_split[1];
$cus = $customer[0]["name"];

		$Res["data"]["id"] = $customer[0]["id"];
		$Res["data"]["name"] = $customer[0]["name"];
		$Res["data"]["mobile"] = $customer[0]["mobile"];
		$Res["data"]["email"] = $customer[0]["email"];
		$Res["data"]["address"] = $cust_detail[0]["address"];
		$Res["data"]["addr_lat"] = $cust_detail[0]["addr_lat"];
		$Res["data"]["addr_long"] = $cust_detail[0]["addr_long"];
		$Res["data"]["card_number"] = $cust_detail[0]["card_number"];
		$card_expire = $cust_detail[0]["ExpiryMonth"]."/".$cust_detail[0]["Expiryyear"];
		$Res["data"]["card_expire"] = $card_expire;
		$Res["data"]["cvv"] = $cust_detail[0]["cvv"];
		$Res["data"]["card_zipcode"] = $cust_detail[0]["card_zipcode"];
		$Res["data"]["card_holder_name"] = $cust_detail[0]["card_holder_name"];
	
	$apiKey = '60CF3Ce97nRS1Z1Wp5m9kMmzHHEh8Rkuj31QCtVxjPWGYA9FymyqsK0Enm1P6mHJf0THbR';
	$apiPassword = 'API-P4ss';
	$apiEndpoint = \Eway\Rapid\Client::MODE_SANDBOX; // Use \Eway\Rapid\Client::MODE_PRODUCTION when you go live
	$client = \Eway\Rapid::createClient($apiKey, $apiPassword, $apiEndpoint);
	$customer = [
		'Title' => $_REQUEST['title'],
		'FirstName' => $fname,
		'LastName' => $lname,
		'Country' => $_REQUEST['country'],
		'CardDetails' => [
			'Name' => $cus,
			'Number' => $cust_detail[0]["card_number"],
			'ExpiryMonth' => $cust_detail[0]["ExpiryMonth"],
			'ExpiryYear' => $cust_detail[0]["Expiryyear"],
			'CVN' => $cust_detail[0]["cvv"],
		]
	];

	$response = $client->createCustomer(\Eway\Rapid\Enum\ApiMethod::DIRECT, $customer);
	$tokencustomerid = $response->Customer->TokenCustomerID;
	$tokencustomerid;
	$transaction = [
    	'Customer' => [
        'TokenCustomerID' => $tokencustomerid,
        'Reference' => $cus,
        'FirstName' => $fname,
        'LastName' => $lname,
        'PostalCode' => $cust_detail[0]["card_zipcode"],
        'Country' => $_REQUEST['country'],
        'Phone' => $customer[0]["mobile"],
        'Email' => $customer[0]["email"],
        'CardDetails' => [
            'Name' => $cus,
            'Number' => $cust_detail[0]["card_number"],
            'ExpiryMonth' => $cust_detail[0]["ExpiryMonth"],
            'ExpiryYear' => $cust_detail[0]["Expiryyear"],
            'CVN' => $cust_detail[0]["cvv"],
        ]
    ],
    'Payment' => [
        'TotalAmount' => $_REQUEST['price'],
    ],
    'TransactionType' => \Eway\Rapid\Enum\TransactionType::PURCHASE,
];

$response = $client->createTransaction(\Eway\Rapid\Enum\ApiMethod::DIRECT, $transaction);
$tokencustomerid = $response->Customer->TokenCustomerID;

	if (isset($response->TransactionStatus) && $response->TransactionStatus) 
	{
    		$Res["transaction"]["transactionid"] = $response->TransactionID;
			$TransactionID = $response->TransactionID;
			$Res["transaction"]["AuthorisationCode"] = $response->AuthorisationCode;
			$authorisation_code =  $response->AuthorisationCode;
    		$Res["transaction"]["tokencustomerid"] = $response->Customer->TokenCustomerID;
    		$tokencustomerid = $response->Customer->TokenCustomerID;			
			$sql = "INSERT INTO `perthdes_new_pro_api`.`payments` (`id`, `transaction_id`, `authorisation_code`, `customer_name`, `customer_email`, `amount`, `token_id`, `created`, `modified`) VALUES (NULL, '".$TransactionID."', '".$authorisation_code."', '".$cus."', '".$_REQUEST['username']."', '".$_REQUEST['price']."', '".$tokencustomerid."' , NOW(), NOW())";
			if ($conn->query($sql) === TRUE) 
			{
				$Res['payment']["payment_id"] = $conn->insert_id;
				$Res["message"]["success"] = "payment success" ;
			}
					
	} 
	else 
	{
		$error = true;
    	if ($response->getErrors()) 
		{
        	foreach ($response->getErrors() as $error) 
			{
        	    $errormessage.= "Error: $error (".\Eway\Rapid::getMessage($error).")<br>\n";
       	 	}
    	} 
		else 
		{
        	$errormessage.= "Sorry, your payment was declined";
    	}
		
		$Res["message"]["errormessage"] = $errormessage; 
	}
	
		//echo "<pre>";
			//print_r($Res);
		//echo "</pre>";
	echo json_encode(new ArrayObject($Res)); 
	
	/*function send_mail($to, $from, $title, $message)
	{
		$headers = "MIME-Version: 1.0 \r\n";
		$headers .= "From: $from \n";
		$headers .= "MIME-Version: 1.0\r\n";
		$headers .= "Content-type: text/html;charset=ISO-8859-1 \r\n";
		$headers .= "X-Priority: 3\r\n";
		$headers .= "X-Mailer: smail-PHP " . phpversion() . "\r\n";
		return mail($to, $title, $message, $headers);
	}*/
?>