אנו מבצעים אינטגרציה של 1C-Bitrix עם מערכת התשלומים Click (אוזבקיסטן). חנויות מקוונות באוזבקיסטן זקוקות לשיטת תשלום מקומית — Click נמצא בשימוש על ידי 80% מהקונים הפעילים, והוא עובד עם כרטיסי Uzcard ו-Humo. ללא אינטגרציה זו, אתם מאבדים עד מחצית מההזמנות הפוטנציאליות. יש לנו ניסיון של 5+ שנים ולמעלה מ-20 פרויקטים מוצלחים עם Click — אנו מבטיחים פעילות יציבה גם בעומסים גבוהים. Click SPAY הוא פרוטוקול תשלום שבו הקונה מאשר את התשלום באפליקציה הניידת או באמצעות SMS. בהשוואה לעיבוד קלאסי, SPAY מטפל בעסקאות פי 2-3 מהר יותר: זמן האישור הממוצע הוא 3 שניות לעומת 10-15 עם הזנת כרטיס רגילה. בנוסף, Click אינו דורש הזנת מספר כרטיס באתר — כל המידע הרגיש נשאר בתוך אפליקציית Click, מה שמפחית את נטל PCI DSS.
מדוע Click היא הבחירה האופטימלית עבור אוזבקיסטן
באוזבקיסטן, כרטיסי פלסטיק של מערכות התשלום הלאומיות Uzcard ו-Humo נמצאים בשימוש נרחב. Click משמש כשער יחיד לקבלת שני סוגי הכרטיסים, ומאפשר גם תשלומים מיתרת האפליקציה. חלקם של התשלומים המקוונים דרך Click עולה על 60% מכלל העסקאות האלקטרוניות באוזבקיסטן. אינטגרציה עם 1C-Bitrix פותחת את החנות שלכם בפני קונים אלה. כבר יישמנו פתרונות כאלה עבור לקוחות בתחומים שונים — מאלקטרוניקה ועד ביגוד — והעלייה הממוצעת בהמרות הייתה 25%.
כיצד פועלת אינטגרציית Click ב-Bitrix
התהליך כולל ארבעה שלבים:
- רישום סוחר ב-Click — קבלת
serviceId,merchantId,secretKey. - הגדרת קריאות חוזרות (callbacks) — Prepare ו-Complete על השרת שלכם.
- הטמעת טופס התשלום — יצירת קישור או חשבונית באמצעות API.
- בדיקות בסביבת ה-staging של Click ובסביבת הייצור.
אנו מכינים תיעוד לכל שלב, מספקים גישה לסביבת בדיקות ומכשירים מפעילים. לאחר ההשקה — שבועיים של תמיכה טכנית.
מהן קריאות חוזרות Prepare ו-Complete?
Click משתמש במודל דו-שלבי: תחילה בקשת הכנה (Prepare), ולאחר מכן בקשת השלמה (Complete). זה מאפשר לחנות להזמין את המוצר לפני התשלום בפועל ולהימנע מחיוב כפול.
// Prepare callback — проверка подписи и существования заказа
$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;
}
echo json_encode([
'click_trans_id' => $clickTransId,
'merchant_trans_id' => $merchantTransId,
'merchant_prepare_id' => $orderId,
'error' => 0,
'error_note' => 'Success',
]);
// Complete callback — финальное подтверждение и установка статуса оплаты
$merchantPrepareId = $_POST['merchant_prepare_id'];
$error = $_POST['error']; // 0 = успех
if ($error === '0' || $error === 0) {
$order = \Bitrix\Sale\Order::loadByAccountNumber($merchantPrepareId);
$order->setField('PAYED', 'Y');
$order->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',
]);
טעות אופיינית היא אימות חתימה שגוי של // Prepare callback — проверка подписи и существования заказа $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; } echo json_encode([ 'click_trans_id' => $clickTransId, 'merchant_trans_id' => $merchantTransId, 'merchant_prepare_id' => $orderId, 'error' => 0, 'error_note' => 'Success', ]); . החתימה נוצרת באמצעות md5 עם שרשור שדות בסדר קפדני: click_trans_id + service_id + secret_key + merchant_trans_id + amount + sign_time. חסר של שדה כלשהו או סדר שגוי מוביל לשגיאה -1. כמו כן, חשוב לבדוק את מצב ההזמנה ב-Complete: אם ההזמנה כבר שולמה (PAYED=Y), יש להחזיר שגיאה -9 כדי למנוע חיוב כפול.
דוגמה לטיפול בשגיאות
הקוד שלמעלה מציג טיפול בסיסי. בפרויקטים אמיתיים, אנו מוסיפים רישום (logging) של כל הבקשות, ניסיונות חוזרים על שגיאות רשת, והתראות למנהל על כשלים. זה מעלה את האמינות עד 99.9%.השוואה בין SPAY לבין אינטגרציית API ישירה
| פרמטר | SPAY | API ישיר (חשבונית) |
|---|---|---|
| מהירות אישור | 2-3 שניות | 5-10 שניות |
| הזנת כרטיס באתר | לא | לא (הפניה לדף Click) |
| התקנה נוספת | רק קריאות חוזרות | מפתחות API, כותרת Auth |
| תמיכה בהחזרים | דרך החשבון האישי של Click | דרך API להחזרים |
יצירת תשלום באמצעות API
ליצירת חשבונית, אנו משתמשים ב-Click Merchant API:
$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
$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 созданного счетаניתן גם להשתמש בקישור תשלום ישיר ללא API — זה פשוט יותר אך נותן פחות שליטה.
מאפיינים של עבודה עם UZS וכרטיסים אוזבקיים
Click פועל בסומים אוזבקיים (UZS). שער החליפין UZS/USD הוא דינמי, ולכן חשוב להגדיר את השער העדכני ב-Bitrix בעת ההגדרה. ב-1C-Bitrix, יש להוסיף את המטבע UZS עם השער הנכון ולהגדיר את פורמט הצגת הסכום. לכרטיסי Uzcard ו-Humo אין קודי BIN בינלאומיים, ולכן Click מעבד אותם דרך רשת העיבוד המקומית שלו — מה שמבטיח אישור מיידי.
מה כלול בעבודה
- תיעוד: תיאור קריאות חוזרות, דוגמאות קוד, הוראות להגדרת מטבע.
- גישה לסביבת הבדיקות של Click לצורך ניפוי שגיאות.
- הכשרת מפעילים: כיצד לטפל בתשלומים שנכשלו ובהחזרים.
- שבועיים של תמיכה לאחר ההשקה.
אנחנו צוות של מפתחי Bitrix מוסמכים עם ניסיון של 7 שנים. השלמנו למעלה מ-50 אינטגרציות של מערכות תשלום, כולל Click, Payme, Uzum. כל פרויקט עובר בדיקת קוד ובדיקות עומס.
לוח זמנים לפיתוח
| משימה | זמן |
|---|---|
| קישור תשלום + קריאות חוזרות Prepare/Complete | 2–3 ימים |
| בדיקות בסביבת ה-staging של Click | 0.5–1 יום |
| הגדרת מטבע UZS ב-Bitrix | 0.5 יום |
| הכשרה ותיעוד | יום אחד |
קבלו הערכה לפרויקט שלכם תוך שעה — צרו קשר כדי לדון בפרטים. קבלו ייעוץ על אינטגרציית Click לחנות ה-1C-Bitrix שלכם.
קישורים שימושיים
- Click (מערכת תשלומים) — מידע כללי.
- Uzcard — תיאור הכרטיס המקומי.
- Merchant API Click — תיעוד רשמי.

