function createXMLFile($convertedData) { if (file_exists($convertedData['newFileLocation'] . ".xml")) { logFileBasic("File Created previously = " . $convertedData['newFileLocation'], $convertedData['rowNumber']); } else { if (file_exists($convertedData['newFileLocation'])) { $fileName = $convertedData['newFileLocation'] . ".xml"; $myfile = fopen($fileName, "w") or die("Unable to open file!"); $dateTime = getDatetimeNow(); $txt = ' <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <entry key="type">cm:content</entry> <entry key="aspects">mqp:buildingRecord</entry> <!-- Common Properties --> <!-- Name --> <entry key="cm:title">' . $convertedData['finalTitle'] . '</entry> <!-- Description --> <entry key="cm:description">' . $convertedData['fileNameWithoutType'] . ' - From Alchemy - Migrated 2016</entry> <!-- Created --> <entry key="created">' . $dateTime . '</entry> <!-- Property Properties --> <!-- Building --> <entry key="mqp:building">' . $convertedData['building'] . '</entry> <!-- Discipline --> <entry key="mqp:discipline">' . $convertedData['discipline'] . '</entry> <!-- Year --> <entry key="mqp:docYear">' . $convertedData['year'] . '</entry> <!-- Primary Type --> <entry key="mqp:docType">' . $convertedData['type1'] . '</entry> <!-- Subtype --> <entry key="mqp:subType1">' . $convertedData['type2'] . '</entry> <!-- Subtype 2 --> <entry key="mqp:subType2"></entry> </properties> '; fwrite($myfile, $txt); fclose($myfile); //pp("File Created and Ready for viewing = ".$fileName); logFileBasic("File Created and Ready for viewing = " . $fileName, $convertedData['rowNumber']); } else { logFileBasic("PDF file does not exist = " . $convertedData['newFileLocation'], $convertedData['rowNumber']); } } }
<?php // STEP 1. Setup private key // ========================= // Tuleb juurde lisada!!! $private_key = openssl_pkey_get_private(""); //Getting the right current date format for bank function getDatetimeNow() { $dt = new DateTime("now", new DateTimeZone('Europe/Helsinki')); return $dt->format('Y-m-d\\TH:i:s\\+0200'); } // STEP 2. Define payment information // ================================== // Pangatüübiks on Ipizza Testpank - enda kohalikus sereveris jooksutamiseks muuta väärtused enda // loodud pangaserveri järgi $fields = array("VK_SERVICE" => "1011", "VK_VERSION" => "008", "VK_SND_ID" => "uid100023", "VK_STAMP" => "12345", "VK_AMOUNT" => "150", "VK_CURR" => "EUR", "VK_ACC" => "EE871600161234567892", "VK_NAME" => "P2Pkuulutused", "VK_REF" => "1234561", "VK_LANG" => "EST", "VK_MSG" => "Makse reklaami eest", "VK_RETURN" => 'http' . '://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/recieve', "VK_CANCEL" => 'http' . '://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/notrecieved', "VK_DATETIME" => getDatetimeNow(), "VK_ENCODING" => "utf-8"); // STEP 3. Generate data to be signed // ================================== // Data to be signed is in the form of XXXYYYYY where XXX is 3 char // zero padded length of the value and YYY the value itself // NB! Ipizza Testpank expects symbol count, not byte count with UTF-8, // so use `mb_strlen` instead of `strlen` to detect the length of a string // Genereerime tehingu väärtustest signatuuri $data = str_pad(mb_strlen($fields["VK_SERVICE"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_SERVICE"] . str_pad(mb_strlen($fields["VK_VERSION"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_VERSION"] . str_pad(mb_strlen($fields["VK_SND_ID"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_SND_ID"] . str_pad(mb_strlen($fields["VK_STAMP"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_STAMP"] . str_pad(mb_strlen($fields["VK_AMOUNT"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_AMOUNT"] . str_pad(mb_strlen($fields["VK_CURR"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_CURR"] . str_pad(mb_strlen($fields["VK_ACC"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_ACC"] . str_pad(mb_strlen($fields["VK_NAME"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_NAME"] . str_pad(mb_strlen($fields["VK_REF"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_REF"] . str_pad(mb_strlen($fields["VK_MSG"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_MSG"] . str_pad(mb_strlen($fields["VK_RETURN"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_RETURN"] . str_pad(mb_strlen($fields["VK_CANCEL"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_CANCEL"] . str_pad(mb_strlen($fields["VK_DATETIME"], "UTF-8"), 3, "0", STR_PAD_LEFT) . $fields["VK_DATETIME"]; /* 2016-03-26T19:41:27+0200 */ /* $data = "0041011003008009uid10002300512345003150003EUR020EE871600161234567892013P2Pkuulutused0071234561011Torso Tiger069http://localhost:8080/project/wkQ9zaaYO9ENSyrw?payment_action=success068http://localhost:8080/project/wkQ9zaaYO9ENSyrw?payment_action=cancel0242016-03-26T19:41:27+0200"; */ // STEP 4. Sign the data with RSA-SHA1 to generate MAC code // ======================================================== openssl_sign($data, $signature, $private_key, OPENSSL_ALGO_SHA1); /* TncZRh0s9kLC1fq+RyQxt1eXlppSCu9BXP7xYvw5ijHAeswmtjBg0D1P+sGyYBMdKdCRgDK6fbPbX6tk6oQc8ng5j2PUSjznsRZcIZbKIQmXlXXIxyIURdfD5YdbN5ulkV9BsffwFO4fmbTY9NAeT4hSw3YV8qhMxjOzBmlbPgYVLotu9eAnxMzjTQ9k37fqzZsStpdVUCmUoyUjoeGLXOJvSWQ7R9UyoZlP7lXPFsMUPBGbIiLH1TRAUostSmEo9YZwTj/9k0m7+hE+6Qx5mQ5IEnDlpnuD1Hmm6edrYF6cGDVJQzBwKJqbRVNuDZFO9LQrG4JfepgXokLvIv9jpw== */ $fields["VK_MAC"] = base64_encode($signature);