Інтеграція 1С-Бітрікс із платіжною системою Click (Узбекистан)

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Інтеграція 1С-Бітрікс із платіжною системою Click (Узбекистан)
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Інтеграція 1С-Bitrix з платіжною системою Click (Узбекистан)

Click — найбільший платіжний сервіс Узбекистану. Використовується для оплати картами Uzcard та Humo (локальні узбецькі платіжні системи), а також через мобільний додаток Click. Для інтернет-магазинів працює в режимі SPAY (Shopping): покупець обирає оплату Click, вводить номер телефону та підтверджує в додатку або через SMS.

Схема роботи Click SPAY

  1. Магазин відправляє запит на створення платежу через API Click
  2. Покупець отримує Push-сповіщення або SMS із сумою
  3. Підтверджує в додатку Click
  4. Click повідомляє магазин про результат
  5. Магазин оновлює статус замовлення

API-інтеграція

Click надає два API:

Merchant API — для створення платіжних форм та перевірки статусів. Базовий URL: https://api.click.uz/v2/merchant/

Prepare/Complete callbacks — Click повідомляє про підготовку та завершення платежу через POST на URL магазину.

Авторизація: serviceId + merchantId + підпис на основі merchantUserId та secretKey.

Формування платежу

$serviceId  = $this->getBusinessValue($payment, 'CLICK_SERVICE_ID');
$merchantId = $this->getBusinessValue($payment, 'CLICK_MERCHANT_ID');
$secretKey  = $this->getBusinessValue($payment, 'CLICK_SECRET_KEY');
$orderId    = $payment->getOrder()->getId();
$amount     = $payment->getSum();  // у UZS (узбецьких сумах)

// Генерація платіжного посилання (без API — через пряме посилання)
$payUrl = sprintf(
    'https://my.click.uz/services/pay?service_id=%s&merchant_id=%s&amount=%s&transaction_param=%s&return_url=%s',
    $serviceId,
    $merchantId,
    $amount,
    $orderId,
    urlencode($returnUrl)
);

// Або через API створення інвойсу
$timestamp  = time();
$digest     = md5($timestamp . $secretKey);
$authHeader = $merchantId . ':' . $digest . ':' . $timestamp;

$invoiceData = [
    'service_id'        => $serviceId,
    'amount'            => $amount,
    'phone_number'      => $phone,  // телефон покупця
    'merchant_trans_id' => $orderId,
];

$response = $this->httpPost(
    'https://api.click.uz/v2/merchant/invoice/create',
    $invoiceData,
    ['Auth: ' . $authHeader, 'Content-Type: application/json']
);
// $response['invoice_id'] — ID рахунку

Обробка Prepare callback

Click спочатку відправляє Prepare (підготовка платежу), потім Complete (завершення). Обидва — POST-запити:

// Prepare
$clickTransId    = $_POST['click_trans_id'];
$merchantTransId = $_POST['merchant_trans_id'];  // наш orderId
$amount          = $_POST['amount'];
$signString      = $_POST['sign_string'];
$signTime        = $_POST['sign_time'];

// Перевірка підпису
$expectedSign = md5($clickTransId . $serviceId . $secretKey . $merchantTransId . $amount . $signTime);
if ($signString !== $expectedSign) {
    echo json_encode(['error' => -1, 'error_note' => 'Invalid sign']);
    exit;
}

// Перевірити, чи існує замовлення
$order = \Bitrix\Sale\Order::loadByAccountNumber($merchantTransId);
if (!$order) {
    echo json_encode(['error' => -5, 'error_note' => 'Order not found']);
    exit;
}

// Відповідь на Prepare
echo json_encode([
    'click_trans_id'    => $clickTransId,
    'merchant_trans_id' => $merchantTransId,
    'merchant_prepare_id' => $orderId,
    'error'             => 0,
    'error_note'        => 'Success',
]);
// Complete
$merchantPrepareId = $_POST['merchant_prepare_id'];
$error             = $_POST['error'];  // 0 = успіх

if ($error === '0' || $error === 0) {
    $order = \Bitrix\Sale\Order::loadByAccountNumber($merchantPrepareId);
    // setPaid('Y'), save()
}

echo json_encode([
    'click_trans_id'     => $_POST['click_trans_id'],
    'merchant_trans_id'  => $_POST['merchant_trans_id'],
    'merchant_confirm_id' => $orderId,
    'error'              => 0,
    'error_note'         => 'Success',
]);

Особливості узбецького ринку

  • Суми у узбецьких сумах (UZS). На початок 2026 року 1 USD ≈ 12 800 UZS. Для суми 500 000 UZS — це ~39 USD. Переконайтеся, що у Bitrix правильно налаштована валюта UZS
  • Карти Uzcard та Humo — локальні карти без міжнародного коду BIN. Click обробляє їх через свою процесингову мережу
  • Додаток Click встановлено у більшості активних покупців у Узбекистані — звичний метод оплати

Терміни розробки

Завдання Термін
Платіжне посилання + Prepare/Complete callbacks 2–3 дні
Перевірка на тестовому середовищі Click 0.5–1 день
Налаштування валюти UZS у Bitrix 0.5 дня