update translation. added retirn controller

This commit is contained in:
O K
2025-06-02 14:13:42 +03:00
parent b1e1fffef0
commit 5d762c2081
6 changed files with 616 additions and 441 deletions

View File

@@ -10,7 +10,7 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
use Symfony\Component\Serializer\Encoder\JsonEncode;
if (!defined('_PS_VERSION_')) {
exit;

View File

@@ -0,0 +1,121 @@
<?php
/**
* Hutko - Платіжний сервіс, який рухає бізнеси вперед.
*
* Запускайтесь, набирайте темп, масштабуйтесь ми підстрахуємо всюди.
*
* @author panariga
* @copyright 2025 Hutko
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
if (!defined('_PS_VERSION_')) {
exit;
}
/**
* HutkoReturnModuleFrontController handles the return URL from an external service.
*
* This controller is responsible for receiving a specially encoded parameter
* (`hutkoPV`) from a payment gateway or external system after a transaction.
* It decodes this parameter, validates its content, and redirects the customer
* to the standard PrestaShop order confirmation page if the data is valid.
*
* The `hutkoPV` parameter is expected to be a URL-safe encoded JSON string
* containing critical order details like `id_cart`, `id_module`, `id_order`,
* and the customer's `secure_key`.
*
* If the `hutkoPV` parameter is missing, cannot be decoded/parsed, or fails
* validation (specifically the secure key check against the current customer),
* it throws a PrestaShopException.
*
* @property \Hutko $module The instance of the main module class (\Hutko).
* @property \Context $context The current PrestaShop context.
* @property \Smarty $context->smarty The Smarty instance for templating (though not used here).
* @property \Customer $context->customer The currently logged-in customer.
* @property \Link $context->link The PrestaShop Link class instance for URL generation.
* @extends ModuleFrontController
* @package Modules\Hutko
* @author Panariga
* @copyright Hutko
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) // Adjust if using a different license
* @version 1.0.0 // Start with a version number
*/
class HutkoReturnModuleFrontController extends ModuleFrontController
{
/**
* Initializes the content for the controller.
*
* This method is the main entry point for this controller. It retrieves
* the `hutkoPV` parameter from the request, decodes and parses it,
* validates the required data, and redirects the customer to the
* order confirmation page if successful.
*
* @throws PrestaShopException If the `hutkoPV` parameter is missing,
* invalid, or the secure key validation fails.
* The exception message indicates the nature
* of the failure.
*/
public function initContent()
{
// Retrieve the 'hutkoPV' parameter from the GET or POST request.
// It is expected to be a URL-safe encoded string.
$hutkoPV = Tools::getValue('hutkoPV');
// Decode the URL-safe string using the module's custom function.
// If the decoding fails or the input is empty, $hutkoPV will be false or empty.
$decodedHutkoPV = $this->module->urlSafeDecode($hutkoPV);
// Check if decoding was successful and the result is not empty.
if ($decodedHutkoPV) {
// Attempt to decode the JSON string into a PHP array.
$decodedPV = json_decode($decodedHutkoPV, true);
// Validate the decoded JSON:
// 1. Check if json_decode returned an array.
// 2. Check if all expected keys ('id_cart', 'id_module', 'id_order', 'key') exist in the array.
// 3. Check if the 'key' from the decoded data matches the secure key of the currently logged-in customer.
// This is a critical security step to prevent unauthorized access to order details.
if (
is_array($decodedPV)
&& isset($decodedPV['id_cart'])
&& isset($decodedPV['id_module'])
&& isset($decodedPV['id_order'])
&& isset($decodedPV['key'])
&& $decodedPV['key'] == $this->context->customer->secure_key // Secure key validation
) {
// If validation passes, generate the URL for the standard order confirmation page.
// The URL includes the validated parameters necessary for the order-confirmation controller
// to load and display the correct order details.
$orderConfirmationUrl = $this->context->link->getPageLink(
'order-confirmation', // The controller to redirect to
true, // Use SSL
$this->context->language->id, // Current language ID
[ // Parameters for the order-confirmation page
'id_cart' => (int)$decodedPV['id_cart'], // Cast to int for safety
'id_module' => (int)$decodedPV['id_module'], // Cast to int
'id_order' => (int)$decodedPV['id_order'], // Cast to int
'key' => pSQL($decodedPV['key']), // Sanitize key before using in URL (though link generation does some)
]
);
// Redirect the customer to the order confirmation page.
Tools::redirect($orderConfirmationUrl);
// Stop script execution after redirection.
exit;
}
// If decoding was successful but validation failed:
else {
// Throw an exception indicating a validation failure (broken data).
throw new PrestaShopException('hutkoPV data validation failed or structure is incorrect.');
}
}
// If hutkoPV parameter was missing or decoding failed:
// Throw an exception indicating the parameter is missing or unusable.
throw new PrestaShopException('hutkoPV parameter is missing or broken.');
}
}

View File

@@ -443,12 +443,12 @@ class Hutko extends PaymentModule
$customerEmail = $customer->email;
// 8. Generate the customer redirection URL after payment.
$responseUrl = $this->context->link->getPageLink('order-confirmation', true, $order->id_lang, [
$responseUrl = $this->context->link->getModuleLink($this->name, 'return', ['hutkoPV' => $this->urlSafeEncode(json_encode([
'id_cart' => $order->id_cart,
'id_module' => $this->id,
'id_order' => $order->id,
'key' => $customer->secure_key,
]);
]))], true);
@@ -1221,4 +1221,58 @@ class Hutko extends PaymentModule
$logger->setFilename($logdirectory . 'dayly.log');
$logger->logInfo($data);
}
/**
* URL-safe encodes a string using a Base64-like approach.
* Replaces '+' with '-', '/' with '_', and removes trailing '=' padding.
* Useful for encoding arbitrary binary data into a URL-friendly format
* that can be safely passed in URLs (e.g., within query parameters
* or path segments without needing standard percent encoding for + and /).
*
* @param string $string The string or binary data to encode.
* @return string The URL-safe encoded string.
*/
public function urlSafeEncode($string)
{
// Standard Base64 encode
$encoded = base64_encode($string);
// Replace '+' with '-' and '/' with '_'
// This avoids characters that have special meaning in URLs
$encoded = str_replace(['+', '/'], ['-', '_'], $encoded);
// Remove trailing '=' padding
// Padding is not necessary for decoding if the length is known or can be inferred.
// Removing it makes the string shorter and avoids another problematic character (=).
$encoded = rtrim($encoded, '=');
return $encoded;
}
/**
* Decodes a URL-safe encoded string back to its original form.
* Replaces '-' with '+', '_' with '/', and adds back trailing '=' padding.
*
* @param string $string The URL-safe encoded string.
* @return string|false The decoded string, or false on failure (if the input is not valid base64 after adjustments).
*/
public function urlSafeDecode($string)
{
// Replace '-' with '+' and '_' with '/'
$decoded = str_replace(['-', '_'], ['+', '/'], $string);
// Add back trailing '=' padding.
// Base64 strings (before decoding) must have a length that is a multiple of 4.
// We calculate how many characters short we are from a multiple of 4
// and add the corresponding number of '=' characters back.
$padding = strlen($decoded) % 4;
if ($padding > 0) {
$decoded .= str_repeat('=', 4 - $padding);
}
// Standard Base64 decode
// base64_decode returns the original data or FALSE on failure.
return base64_decode($decoded);
}
}

View File

@@ -1,212 +1,212 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file original="admin105hcnvdgjnh2pvlogh" source-language="uk-UA" target-language="uk-UA" datatype="plaintext">
<body>
<trans-unit id="c95fbd80950d3a4e360c5ae79fa93ca5">
<source>Hutko is a payment platform whose main function is to provide internet acquiring.</source>
<target>Hutko — це платіжна платформа, основною функцією якої є забезпечення інтернет-еквайрингу.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="90c65a6cb64f590f26b4fbdb319fc896">
<source>Довідка specify the Hutko account details for customers</source>
<target>Пожалуйста, уточніть реквізити акаунту Hutko для клієнтів</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="6462e4d033501dde8eb84cd52d8a5573">
<source>Enter merchant id. Use 1700002 for test setup.</source>
<target>Введіть ідентифікатор продавця. Використовуйте 1700002 для тестового налаштування.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="73c6484e3e3c1dbd17e6598c40c150f5">
<source>Merchant ID.</source>
<target>Merchant ID.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="7beba75bd51b2d96fb8d79d34912de1b">
<source>Enter a secret key. use "test" for test setup</source>
<target>Введіть секретний ключ. Використовуйте тест для налаштування тесту.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="952bf87c967660b7bbd4e1eb08cefc92">
<source>Secret key</source>
<target>Секретний ключ</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="7548bac714d635c3d0a331e4aca1db72">
<source>Status after success payment</source>
<target>Статус після успішної оплати</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="76f18bb270498e4bdfbaf71f35cc84dd">
<source>Status for new orders before payment</source>
<target>Статус нових замовлень до оплати</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="7ea50bc7d053b09d9627771600b149e4">
<source>Include shipping cost to payment</source>
<target>Включити вартість доставки до оплати</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="93cba07454f06a4a960172bbd6e2a435">
<source>Yes</source>
<target>Так</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="bafd7322c6e97d25b6299b5d6fe8920b">
<source>No</source>
<target>Ні</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="3f16b64626ca0cc193b0013217a78726">
<source>Shipping Name</source>
<target>Назва для доставки</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="2c154e95e7ee1d753dd3ea4e1b0c8857">
<source>Назва продукту/сервісу для використання в fiscalization for shipping amount</source>
<target>Назва продукту/послуги для використання у фіскалізації для суми доставки</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="32de1d30aa06d42f43863e7cd71c1b4c">
<source>Shipping Code</source>
<target>Код доставки</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="8a6d12c2cbdd17f109a1685372a54fee">
<source>Code product/service для використання в fiscalization for shipping amount</source>
<target>Код товару/послуги для використання у фіскалізації для суми доставки</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="dbecc121e4f3f58940d7be4a57444526">
<source>Show Visa/MasterCard logo</source>
<target>Показати логотип Visa/MasterCard</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="c9cc8cce247e49bae79f15173ce97354">
<source>Save</source>
<target>Зберегти</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="2e70d995f0032b8859dd5ef37162087f">
<source>Merchant ID is required.</source>
<target>Потрібен ідентифікатор продавця (Merchant ID).</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="66a500cd593b25ebc543c002b345b579">
<source>Merchant ID must be numeric.</source>
<target>Ідентифікатор продавця має бути числовим.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="1c2eee355024adcde515449347201000">
<source>Secret key is required.</source>
<target>Потрібен секретний ключ.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="40bf93e3dcf907a8aad77d1b0f2a2921">
<source>Секрет key must be at least 10 characters long and cannot be entirely numeric.</source>
<target>Секретний ключ повинен містити щонайменше 10 символів і не може бути повністю числовим.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="23638e456c7b83bd1953dbc0996620be">
<source>Pay via payment system Hutko</source>
<target>Оплата через платіжну систему Hutko</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="223e639daf07b520427aa6c80e36fffb">
<source>Pay via Hutko</source>
<target>Оплата через Hutko</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="feed0d2100a232322a28616d350029e6">
<source>Order payment #</source>
<target>Оплата замовлення #</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="789b043f02dbe86d80a6916a31553d0b">
<source>Order payment not found.</source>
<target>Оплата замовлення не знайдена.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="5b475e4412cc0a11f089e0c6279220fb">
<source>Invalid transaction ID format.</source>
<target>Недійсний формат ідентифікатора транзакції.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="272d77ac6ed0ef79325c3dae71b2a780">
<source>Refund success.</source>
<target>Повернення коштів успішне.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="9f5daba4b8de3a0f6cdfab206a08f211">
<source><![CDATA[Hutko Payments & Refunds]]></source>
<target>Платежі та повернення коштів Hutko</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="88427ec035734b45aae9f7d8859a5008">
<source>Transaction ID</source>
<target>Transaction ID</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="b2f40690858b404ed10e62bdf422c704">
<source>Amount</source>
<target>Сума</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="31738cd694667ccdfa2cbc65249de5cc">
<source>Payment Date</source>
<target>Дата платежу</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="06df33001c1d7187fdd81ea1f5b277aa">
<source>Actions</source>
<target>Дії</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="76f0ed934de85cc7131910b32ede7714">
<source>Refund</source>
<target>Повернення коштів</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="ec53a8c4f07baed5d8825072c89799be">
<source>Status</source>
<target>Статус</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="88b6563ca5cac4845361c28959c5612e">
<source>Initiate Refund</source>
<target>Ініціювати повернення коштів</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="b782d4ff61550d7e8cdee4cf70a03788">
<source>Refund Amount</source>
<target>Сума відшкодування</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="7bdf5ab3a17ec2dce33865622b238bd1">
<source>Виберіть гроші для того, щоб скористатися цим платежом.</source>
<target>Введіть суму для повернення коштів за цей платіж.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="a48f878efa7beadc6bab76f96fce6b62">
<source>Refund Reason/Comment</source>
<target>Причина/коментар повернення коштів</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="a331a1c920188f766c73334a17774dec">
<source>Optional: A brief reason for the refund.</source>
<target>Необов'язково: Коротка причина повернення коштів.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="ea4788705e6873b424c65e91c2846b19">
<source>Cancel</source>
<target>Скасувати</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="968d5d0a76be35f96b91b808a39744cd">
<source>Process Refund</source>
<target>Виконати повернення коштів</target>
<note>Line:</note>
</trans-unit>
</body>
</file>
<file original="admin105hcnvdgjnh2pvlogh" source-language="ru-RU" target-language="ru-RU" datatype="plaintext">
<body>
<trans-unit id="c95fbd80950d3a4e360c5ae79fa93ca5">
<source>Hutko is a payment platform whose main function is to provide internet acquiring.</source>
<target>Hutko — це платіжна платформа, основною функцією якої є забезпечення інтернет-еквайрингу.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="90c65a6cb64f590f26b4fbdb319fc896">
<source>Please specify the Hutko account details for customers</source>
<target>Пожалуйста, укажите реквизиты учетной записи Hutko для клиентов</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="6462e4d033501dde8eb84cd52d8a5573">
<source>Enter a merchant id. Use 1700002 for test setup.</source>
<target>Введите идентификатор продавца. Используйте 1700002 для тестовой настройки.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="73c6484e3e3c1dbd17e6598c40c150f5">
<source>Merchant ID.</source>
<target>Merchant ID.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="7beba75bd51b2d96fb8d79d34912de1b">
<source>Enter a secret key. Use "test" for test setup</source>
<target>Введите секретный ключ. Используйте "test" для настройки теста</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="952bf87c967660b7bbd4e1eb08cefc92">
<source>Secret key</source>
<target>Секретний ключ</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="7548bac714d635c3d0a331e4aca1db72">
<source>Status after success payment</source>
<target>Статус після успішної оплати</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="76f18bb270498e4bdfbaf71f35cc84dd">
<source>Status for new orders before payment</source>
<target>Статус нових замовлень до оплати</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="7ea50bc7d053b09d9627771600b149e4">
<source>Include shipping cost to payment</source>
<target>Включити вартість доставки до оплати</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="93cba07454f06a4a960172bbd6e2a435">
<source>Yes</source>
<target>Так</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="bafd7322c6e97d25b6299b5d6fe8920b">
<source>No</source>
<target>Ні</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="3f16b64626ca0cc193b0013217a78726">
<source>Shipping Name</source>
<target>Назва для доставки</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="2c154e95e7ee1d753dd3ea4e1b0c8857">
<source>Name of product/service to use in fiscalization for shipping amount</source>
<target>Наименование продукта/услуги для использования при фискализации суммы доставки</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="32de1d30aa06d42f43863e7cd71c1b4c">
<source>Shipping Code</source>
<target>Код доставки</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="8a6d12c2cbdd17f109a1685372a54fee">
<source>Code of product/service to use in fiscalization for shipping amount</source>
<target>Код продукта/услуги для использования при фискализации суммы доставки</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="dbecc121e4f3f58940d7be4a57444526">
<source>Show Visa/MasterCard logo</source>
<target>Показати логотип Visa/MasterCard</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="54df2316cf21bff683740a3077b0f404">
<source>Save Logs</source>
<target>Сохранить логи</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="c9cc8cce247e49bae79f15173ce97354">
<source>Save</source>
<target>Зберегти</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="2e70d995f0032b8859dd5ef37162087f">
<source>Merchant ID is required.</source>
<target>Потрібен ідентифікатор продавця (Merchant ID).</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="66a500cd593b25ebc543c002b345b579">
<source>Merchant ID must be numeric.</source>
<target>Ідентифікатор продавця має бути числовим.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="1c2eee355024adcde515449347201000">
<source>Secret key is required.</source>
<target>Потрібен секретний ключ.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="40bf93e3dcf907a8aad77d1b0f2a2921">
<source>Secret key must be at least 10 characters long and cannot be entirely numeric.</source>
<target>Секретный ключ должен быть длиной не менее 10 символов и не может состоять только из цифр.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="23638e456c7b83bd1953dbc0996620be">
<source>Pay via payment system Hutko</source>
<target>Оплата через платіжну систему Hutko</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="223e639daf07b520427aa6c80e36fffb">
<source>Pay via Hutko</source>
<target>Оплата через Hutko</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="feed0d2100a232322a28616d350029e6">
<source>Order payment #</source>
<target>Оплата замовлення #</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="789b043f02dbe86d80a6916a31553d0b">
<source>Order payment not found.</source>
<target>Оплата замовлення не знайдена.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="5b475e4412cc0a11f089e0c6279220fb">
<source>Invalid transaction ID format.</source>
<target>Недійсний формат ідентифікатора транзакції.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="272d77ac6ed0ef79325c3dae71b2a780">
<source>Refund success.</source>
<target>Повернення коштів успішне.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="9666fd7b01f98a48b0f5958010bc60d6">
<source>Refund Failed. Please check actual amount in Hutko account page.</source>
<target>Возврат не удался. Проверьте фактическую сумму на странице учетной записи Hutko.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="9f5daba4b8de3a0f6cdfab206a08f211">
<source><![CDATA[Hutko Payments & Refunds]]></source>
<target>Платежі та повернення коштів Hutko</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="88427ec035734b45aae9f7d8859a5008">
<source>Transaction ID</source>
<target>Transaction ID</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="b2f40690858b404ed10e62bdf422c704">
<source>Amount</source>
<target>Сума</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="31738cd694667ccdfa2cbc65249de5cc">
<source>Payment Date</source>
<target>Дата платежу</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="06df33001c1d7187fdd81ea1f5b277aa">
<source>Actions</source>
<target>Дії</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="76f0ed934de85cc7131910b32ede7714">
<source>Refund</source>
<target>Повернення коштів</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="b782d4ff61550d7e8cdee4cf70a03788">
<source>Refund Amount</source>
<target>Сума відшкодування</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="7bdf5ab3a17ec2dce33865622b238bd1">
<source>Enter the amount to refund for this payment.</source>
<target>Введите сумму возврата по данному платежу.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="a48f878efa7beadc6bab76f96fce6b62">
<source>Refund Reason/Comment</source>
<target>Причина/коментар повернення коштів</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="a331a1c920188f766c73334a17774dec">
<source>Optional: A brief reason for the refund.</source>
<target>Необов'язково: Коротка причина повернення коштів.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="ea4788705e6873b424c65e91c2846b19">
<source>Cancel</source>
<target>Скасувати</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="968d5d0a76be35f96b91b808a39744cd">
<source>Process Refund</source>
<target>Виконати повернення коштів</target>
<note>Line: </note>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file original="admin105hcnvdgjnh2pvlogh" source-language="ru-UA" target-language="ru-UA" datatype="plaintext">
<body>
<trans-unit id="22af22c7d772e149e295809344fe5522">
<source>Payment failure. </source>
<target>Сбой оплаты.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="82e50c727674f251464fc7520f5bde26">
<source>Допустить попытку</source>
<target>Попробуйте еще раз</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="4be36be30fde5361b25b121a6c9e631e">
<source>Order validation failure</source>
<target>Ошибка проверки заказа</target>
<note>Line:</note>
</trans-unit>
</body>
</file>
<file original="admin105hcnvdgjnh2pvlogh" source-language="ru-RU" target-language="ru-RU" datatype="plaintext">
<body>
<trans-unit id="22af22c7d772e149e295809344fe5522">
<source>Payment failure. </source>
<target>Сбой оплаты.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="82e50c727674f251464fc7520f5bde26">
<source>Please try again</source>
<target>Попробуйте еще раз.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="4be36be30fde5361b25b121a6c9e631e">
<source>Order validation failure</source>
<target>Ошибка проверки заказа</target>
<note>Line: </note>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -1,212 +1,212 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file original="admin105hcnvdgjnh2pvlogh" source-language="ru-UA" target-language="ru-UA" datatype="plaintext">
<body>
<trans-unit id="c95fbd80950d3a4e360c5ae79fa93ca5">
<source>Hutko is a payment platform whose main function is to provide internet acquiring.</source>
<target>Hutko это платежная платформа, основной функцией которой является обеспечение интернет-эквайринга.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="90c65a6cb64f590f26b4fbdb319fc896">
<source>Связать specify the Hutko account details for customers</source>
<target>Пожалуйста, уточните реквизиты учетной записи Hutko для клиентов</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="6462e4d033501dde8eb84cd52d8a5573">
<source>Enter для merchant id.</source>
<target>Введите идентификатор продавца. Используйте 1700002 для тестовой настройки.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="73c6484e3e3c1dbd17e6598c40c150f5">
<source>Merchant ID.</source>
<target>Merchant ID.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="7beba75bd51b2d96fb8d79d34912de1b">
<source>Enter a secret key.</source>
<target>Введите секретный ключ.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="952bf87c967660b7bbd4e1eb08cefc92">
<source>Secret key</source>
<target>Секретный ключ</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="7548bac714d635c3d0a331e4aca1db72">
<source>Status after success payment</source>
<target>Статус после успешной оплаты</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="76f18bb270498e4bdfbaf71f35cc84dd">
<source>Status for new orders before payment</source>
<target>Статус новых заказов к оплате</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="7ea50bc7d053b09d9627771600b149e4">
<source>Включая плату за выплату</source>
<target>Включить стоимость доставки в оплату</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="93cba07454f06a4a960172bbd6e2a435">
<source>Yes</source>
<target>Да</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="bafd7322c6e97d25b6299b5d6fe8920b">
<source>No</source>
<target>Нет</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="3f16b64626ca0cc193b0013217a78726">
<source>Shipping Name</source>
<target>Название для доставки</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="2c154e95e7ee1d753dd3ea4e1b0c8857">
<source>Имя продукта/сервиса для использования в fiscalization for shipping amount</source>
<target>Имя продукта/услуги для использования в фискализации для суммы доставки</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="32de1d30aa06d42f43863e7cd71c1b4c">
<source>Shipping Code</source>
<target>Код доставки</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="8a6d12c2cbdd17f109a1685372a54fee">
<source>Code Product/Service для использования в fiscalization for shipping amount</source>
<target>Код товара/услуги для использования в фискализации для суммы доставки</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="dbecc121e4f3f58940d7be4a57444526">
<source>Show Visa/MasterCard logo</source>
<target>Показать логотип Visa/MasterCard</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="c9cc8cce247e49bae79f15173ce97354">
<source>Save</source>
<target>Сохранить</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="2e70d995f0032b8859dd5ef37162087f">
<source>Информационный идентификатор не требуется.</source>
<target>Требуется идентификатор продавца (Merchant ID).</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="66a500cd593b25ebc543c002b345b579">
<source>Merchant ID должен быть нумерен.</source>
<target>Идентификатор продавца должен быть числовым.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="1c2eee355024adcde515449347201000">
<source>Неверный key не требуется.</source>
<target>Требуется секретный ключ.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="40bf93e3dcf907a8aad77d1b0f2a2921">
<source>Секрет key должен быть в пределах 10 characters long and cannot be entirely numeric.</source>
<target>Секретный ключ должен содержать не менее 10 символов и не может быть полностью числовым.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="23638e456c7b83bd1953dbc0996620be">
<source>Pay via payment system Hutko</source>
<target>Оплата через платежную систему Hutko</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="223e639daf07b520427aa6c80e36fffb">
<source>Pay via Hutko</source>
<target>Оплата через Hutko</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="feed0d2100a232322a28616d350029e6">
<source>Order payment #</source>
<target>Оплата заказа #</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="789b043f02dbe86d80a6916a31553d0b">
<source>Order payment not found.</source>
<target>Оплата заказа не найдена.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="5b475e4412cc0a11f089e0c6279220fb">
<source>Invalid transaction ID format.</source>
<target>Недействительный формат идентификатора транзакции.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="272d77ac6ed0ef79325c3dae71b2a780">
<source>Refund success.</source>
<target>Восстановление средств успешно.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="9f5daba4b8de3a0f6cdfab206a08f211">
<source><![CDATA[Hutko Payments & Refunds]]></source>
<target>Платежи и возврат средств Hutko</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="88427ec035734b45aae9f7d8859a5008">
<source>Transaction ID</source>
<target>Transaction ID</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="b2f40690858b404ed10e62bdf422c704">
<source>Amount</source>
<target>Сумма</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="31738cd694667ccdfa2cbc65249de5cc">
<source>Payment Date</source>
<target>Дата платежа</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="06df33001c1d7187fdd81ea1f5b277aa">
<source>Actions</source>
<target>Действия</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="76f0ed934de85cc7131910b32ede7714">
<source>Refund</source>
<target>Возврат средств</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="ec53a8c4f07baed5d8825072c89799be">
<source>Status</source>
<target>Статус</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="88b6563ca5cac4845361c28959c5612e">
<source>Initiate Refund</source>
<target>Инициировать возврат средств</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="b782d4ff61550d7e8cdee4cf70a03788">
<source>Refund Amount</source>
<target>Сумма возмещения</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="7bdf5ab3a17ec2dce33865622b238bd1">
<source>Воспользуйтесь темой для оплаты этого платежа.</source>
<target>Введите сумму для возврата средств за этот платеж.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="a48f878efa7beadc6bab76f96fce6b62">
<source>Refund Reason/Comment</source>
<target>Причина/комментарий возврата средств</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="a331a1c920188f766c73334a17774dec">
<source>Optional: A brief reason for the refund.</source>
<target>Необязательно: краткая причина возврата средств.</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="ea4788705e6873b424c65e91c2846b19">
<source>Cancel</source>
<target>Отменить</target>
<note>Line:</note>
</trans-unit>
<trans-unit id="968d5d0a76be35f96b91b808a39744cd">
<source>Process Refund</source>
<target>Выполнить возврат средств</target>
<note>Line:</note>
</trans-unit>
</body>
</file>
</xliff>
<file original="admin105hcnvdgjnh2pvlogh" source-language="uk-UA" target-language="uk-UA" datatype="plaintext">
<body>
<trans-unit id="c95fbd80950d3a4e360c5ae79fa93ca5">
<source>Hutko is a payment platform whose main function is to provide internet acquiring.</source>
<target>Hutko — це платіжна платформа, основною функцією якої є забезпечення інтернет-еквайрингу.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="90c65a6cb64f590f26b4fbdb319fc896">
<source>Please specify the Hutko account details for customers</source>
<target>Будь ласка, уточніть реквізити облікового запису Hutko для клієнтів</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="6462e4d033501dde8eb84cd52d8a5573">
<source>Enter a merchant id. Use 1700002 for test setup.</source>
<target>Введіть ідентифікатор продавця. Використовуйте 1700002 для тестового налаштування.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="73c6484e3e3c1dbd17e6598c40c150f5">
<source>Merchant ID.</source>
<target>Merchant ID.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="7beba75bd51b2d96fb8d79d34912de1b">
<source>Enter a secret key. Use "test" for test setup</source>
<target>Введіть секретний ключ. Використовуйте «test» для налаштування тесту.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="952bf87c967660b7bbd4e1eb08cefc92">
<source>Secret key</source>
<target>Секретний ключ</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="7548bac714d635c3d0a331e4aca1db72">
<source>Status after success payment</source>
<target>Статус після успішної оплати</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="76f18bb270498e4bdfbaf71f35cc84dd">
<source>Status for new orders before payment</source>
<target>Статус нових замовлень до оплати</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="7ea50bc7d053b09d9627771600b149e4">
<source>Include shipping cost to payment</source>
<target>Включити вартість доставки до оплати</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="93cba07454f06a4a960172bbd6e2a435">
<source>Yes</source>
<target>Так</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="bafd7322c6e97d25b6299b5d6fe8920b">
<source>No</source>
<target>Ні</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="3f16b64626ca0cc193b0013217a78726">
<source>Shipping Name</source>
<target>Назва для доставки</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="2c154e95e7ee1d753dd3ea4e1b0c8857">
<source>Name of product/service to use in fiscalization for shipping amount</source>
<target>Назва продукту/послуги для використання у фіскалізації для суми доставки</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="32de1d30aa06d42f43863e7cd71c1b4c">
<source>Shipping Code</source>
<target>Код доставки</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="8a6d12c2cbdd17f109a1685372a54fee">
<source>Code of product/service to use in fiscalization for shipping amount</source>
<target>Код товару/послуги для використання у фіскалізації для суми доставки</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="dbecc121e4f3f58940d7be4a57444526">
<source>Show Visa/MasterCard logo</source>
<target>Показати логотип Visa/MasterCard</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="54df2316cf21bff683740a3077b0f404">
<source>Save Logs</source>
<target>Зберігати лог запитів від/до серверу Hutko</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="c9cc8cce247e49bae79f15173ce97354">
<source>Save</source>
<target>Зберегти</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="2e70d995f0032b8859dd5ef37162087f">
<source>Merchant ID is required.</source>
<target>Потрібен ідентифікатор продавця (Merchant ID).</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="66a500cd593b25ebc543c002b345b579">
<source>Merchant ID must be numeric.</source>
<target>Ідентифікатор продавця має бути числовим.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="1c2eee355024adcde515449347201000">
<source>Secret key is required.</source>
<target>Потрібен секретний ключ.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="40bf93e3dcf907a8aad77d1b0f2a2921">
<source>Secret key must be at least 10 characters long and cannot be entirely numeric.</source>
<target>Секретний ключ повинен містити щонайменше 10 символів і не може бути повністю числовим.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="23638e456c7b83bd1953dbc0996620be">
<source>Pay via payment system Hutko</source>
<target>Оплата через платіжну систему Hutko</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="223e639daf07b520427aa6c80e36fffb">
<source>Pay via Hutko</source>
<target>Оплата через Hutko</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="feed0d2100a232322a28616d350029e6">
<source>Order payment #</source>
<target>Оплата замовлення #</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="789b043f02dbe86d80a6916a31553d0b">
<source>Order payment not found.</source>
<target>Оплату замовлення не знайдено.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="5b475e4412cc0a11f089e0c6279220fb">
<source>Invalid transaction ID format.</source>
<target>Недійсний формат ідентифікатора транзакції.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="272d77ac6ed0ef79325c3dae71b2a780">
<source>Refund success.</source>
<target>Повернення коштів успішне.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="9666fd7b01f98a48b0f5958010bc60d6">
<source>Refund Failed. Please check actual amount in Hutko account page.</source>
<target>Повернення коштів не вдалося. Будь ласка, перевірте фактичну суму на сторінці облікового запису Hutko.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="9f5daba4b8de3a0f6cdfab206a08f211">
<source><![CDATA[Hutko Payments & Refunds]]></source>
<target>Платежі та повернення коштів Hutko</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="88427ec035734b45aae9f7d8859a5008">
<source>Transaction ID</source>
<target>Transaction ID</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="b2f40690858b404ed10e62bdf422c704">
<source>Amount</source>
<target>Сума</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="31738cd694667ccdfa2cbc65249de5cc">
<source>Payment Date</source>
<target>Дата платежу</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="06df33001c1d7187fdd81ea1f5b277aa">
<source>Actions</source>
<target>Дії</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="76f0ed934de85cc7131910b32ede7714">
<source>Refund</source>
<target>Повернення коштів</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="b782d4ff61550d7e8cdee4cf70a03788">
<source>Refund Amount</source>
<target>Сума відшкодування</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="7bdf5ab3a17ec2dce33865622b238bd1">
<source>Enter the amount to refund for this payment.</source>
<target>Введіть суму для повернення коштів за цей платіж.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="a48f878efa7beadc6bab76f96fce6b62">
<source>Refund Reason/Comment</source>
<target>Причина/коментар повернення коштів</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="a331a1c920188f766c73334a17774dec">
<source>Optional: A brief reason for the refund.</source>
<target>Необов’язково: Коротка причина повернення коштів.</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="ea4788705e6873b424c65e91c2846b19">
<source>Cancel</source>
<target>Скасувати</target>
<note>Line: </note>
</trans-unit>
<trans-unit id="968d5d0a76be35f96b91b808a39744cd">
<source>Process Refund</source>
<target>Виконати повернення коштів</target>
<note>Line: </note>
</trans-unit>
</body>
</file>
</xliff>