Your IP : 216.73.216.170


Current Path : /home/bitrix/ext_www/oldpfcc.yacl.site.corrupted/test/
Upload File :
Current File : /home/bitrix/ext_www/oldpfcc.yacl.site.corrupted/test/test.php

<?php
define("NO_KEEP_STATISTIC", "Y");
define("NO_AGENT_STATISTIC","Y");
define("NOT_CHECK_PERMISSIONS", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

$params = array (
 'TERMINAL' => '20020066',
 'TRTYPE' => '1',
 'ORDER' => '000002',
 'AMOUNT' => '138.54',
 'CURRENCY' => 'RUB',
 'ACTION' => '2',
 'RC' => '57',
 'APPROVAL' => '',
 'RRN' => '722995001425',
 'INT_REF' => '5D0E1598D16463B8',
 'TIMESTAMP' => '20170817201928',
 'NONCE' => 'cd8807398c50380381a4eb600c1ebec2',
 'P_SIGN' => 'FC361C01B41069385C266353221249A71CE24F3EAE2546931FFF951FD5575668',
 'CARD' => 'XXXXXXXXXXXX4356',
);
echo "<pre>"; print_r($params); echo "</pre><br>";

$mac = "34CFDABD52E424FF2DB2CCFE8D98C75ADE3517E372B8B809C80C976637DD3113";

		$secret = (($c=strlen($params["TERMINAL"]))<=0)?"-":$c.$params["TERMINAL"];
		$secret .= (($c=strlen($params["TRTYPE"]))<=0)?"-":$c.$params["TRTYPE"];
		$secret .= (($c=strlen($params["ORDER"]))<=0)?"-":$c.$params["ORDER"];
		$secret .= (($c=strlen($params["AMOUNT"]))<=0)?"-":$c.$params["AMOUNT"];
		$secret .= (($c=strlen($params["CURRENCY"]))<=0)?"-":$c.$params["CURRENCY"];
		$secret .= (($c=strlen($params["ACTION"]))<=0)?"-":$c.$params["ACTION"];
		$secret .= (($c=strlen($params["RC"]))<=0)?"-":$c.$params["RC"];
		$secret .= (($c=strlen($params["APPROVAL"]))<=0)?"-":$c.$params["APPROVAL"];
		$secret .= (($c=strlen($params["RRN"]))<=0)?"-":$c.$params["RRN"];
		$secret .= (($c=strlen($params["INT_REF"]))<=0)?"-":$c.$params["INT_REF"];
		$secret .= (($c=strlen($params["TIMESTAMP"]))<=0)?"-":$c.$params["TIMESTAMP"];
		$secret .= (($c=strlen($params["NONCE"]))<=0)?"-":$c.$params["NONCE"];

		$secret_test = "|".((($c=strlen($params["TERMINAL"]))<=0)?"-":$c."|".$params["TERMINAL"]);
		$secret_test .= "|".((($c=strlen($params["TRTYPE"]))<=0)?"-":$c."|".$params["TRTYPE"]);
		$secret_test .= "|".((($c=strlen($params["ORDER"]))<=0)?"-":$c."|".$params["ORDER"]);
		$secret_test .= "|".((($c=strlen($params["AMOUNT"]))<=0)?"-":$c."|".$params["AMOUNT"]);
		$secret_test .= "|".((($c=strlen($params["CURRENCY"]))<=0)?"-":$c."|".$params["CURRENCY"]);
		$secret_test .= "|".((($c=strlen($params["ACTION"]))<=0)?"-":$c."|".$params["ACTION"]);
		$secret_test .= "|".((($c=strlen($params["RC"]))<=0)?"-":$c."|".$params["RC"]);
		$secret_test .= "|".((($c=strlen($params["APPROVAL"]))<=0)?"-":$c."|".$params["APPROVAL"]);
		$secret_test .= "|".((($c=strlen($params["RRN"]))<=0)?"-":$c."|".$params["RRN"]);
		$secret_test .= "|".((($c=strlen($params["INT_REF"]))<=0)?"-":$c."|".$params["INT_REF"]);
		$secret_test .= "|".((($c=strlen($params["TIMESTAMP"]))<=0)?"-":$c."|".$params["TIMESTAMP"]);
		$secret_test .= "|".((($c=strlen($params["NONCE"]))<=0)?"-":$c."|".$params["NONCE"]);

echo "\$secret = ".$secret."<br><br>";

echo "\$secret_test = ".$secret_test."<br><br>";

$P_SIGN = hmac_sha256($mac,$secret);

echo "\$P_SIGN = ".$P_SIGN;

	/**
	 * @param string $str
	 * @return string
	 */
	function raw2byte($str)
	{
		mb_internal_encoding('UTF-8');
		$str = mb_convert_encoding($str, 'UCS-2LE', 'UTF-8');
		$strlength = strlen($str) / 2;
		$ret = array($strlength);
		
		for($i = 0; $i < $strlength; $i++){
			$k1 = ord(substr($str, 2*$i, 1));
			$k2 = ord(substr($str, 2*$i+1, 1));
			$k = $k2 * 256 + $k1;
			$ret[$i] = dechex((($k >> 4) & 0x0F)) . dechex(($k & 0x0F));
		}
		
		return hex2bin(join('', $ret));
	}

	/**
	 * @param string $hex_key
	 * @param string $secret
	 * @return string
	 */
	function hmac_sha256($hex_key, $secret) {
		$byte_key = hex2bin($hex_key);
		$byte_msg = raw2byte($secret);
		return strtoupper(hash_hmac('sha256', $byte_msg, $byte_key));
	}

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");