<?php

if (isset($_POST['key'])) {
	ini_set('soap.wsdl_cache_enabled', FALSE);

	$requestString = file_get_contents(__DIR__.'/soap-request.xml');

	$client = new SoapClient(__DIR__.'/soap.wsdl');
	$result = $client->__soapCall('procesaNotificacionSIS', [
		'XML' => $requestString
	]);

	$xml = new SimpleXMLElement($result);

	$key = $_POST['key'];

	$start = strpos($result, '<Response');
	$end = strrpos($result, '</Response>');
	$shaString = substr($result, $start, $end - $start + 11);
	$shaHash = sha1($shaString.$key);

	$isValid = $xml->{'Signature'} == $shaHash;
} else {
	$key = '';
	$result = '';
	$shaHash = '';
	$isValid = FALSE;
}

?>

<html>
<head>
	<title>
		TPV SOAP Client
	</title>
</head>
<body>
	<form action="?" method="post">
		<label>Key:</label>
		<input type="password" value="<?=$key?>" name="key"/>
		<input type="submit"/>
	</form>
	<h2>Response</h2>
	<p>
		<pre><?=htmlentities($result)?></pre>
	</p>
	<h2>Signature</h2>
	<p>
		Calculated: <?=$shaHash?>
	</p>
	<p>
		Valid: <input type="checkbox" <?=($isValid ? 'checked' : '')?>/>
	</p>
</body>
</html>