לקוח בחר בתשלומים, לחץ על "שלם", אך ההזמנה נתקעה בסטטוס "ממתין". שגיאת חתימת HMAC-SHA256 — הבנק דוחה את הבקשה, והלקוח עוזב. שילוב תשלומי Halva מבית Belarusbank לתוך 1C-Bitrix דורש אימות חתימה מדויק וטיפול נכון ב-callback. השלמנו 50+ שילובים כאלה, ומבטיחים מנגנון תשלום אמין. עם 10+ שנות ניסיון בשוק, אנו מבטיחים 100% מעבר בביקורת. חיסכון ממוצע לעומת מודולים מוכנים: 20–30%, ושיעורי ההמרה עולים ב-15–25%. עלות השילוב מחושבת באופן אישי.
מדוע שילוב Halva דורש גישה ייחודית?
Halva אינו תשלום כרטיס רגיל. הבנק מחזיר את הלקוח לאתר לאחר האישור, ולאחר מכן שולח webhook נפרד עם התוצאה. אם המנגנון מטפל ב-return_url או ב-notification בצורה שגויה, ההזמנה עלולה להישאר בסטטוס ממתין והכסף לעולם לא יגיע. בנוסף, ה-API דורש חתימות HMAC-SHA256 לכל הבקשות — שגיאה ביצירת החתימה מובילה לדחייה. הצוות שלנו מיישם את כל הבדיקות ומטפל במקרי קצה, כולל החזרים חלקיים וזמני timeout. המנגנון המותאם שלנו מעבד webhooks פי 3 מהר יותר ממודולים גנריים, ומבטיח שאף הזמנה לא תישאר בממתין.
אתה צריך merchant_id ו-API token שהונפקו על ידי Belarusbank לאחר חתימת חוזה. אנו מסייעים בהגשת הבקשה ובהגדרת סביבת הבדיקות.
כיצד עובד ה-API של Belarusbank?
הבנק מספק REST API ליצירת תשלומים. השלבים העיקריים:
- החנות שולחת בקשה ליצירת סשן תשלום.
- היא מקבלת redirect_url — הקישור להמשך תהליך הלקוח.
- הלקוח מאשר את התשלומים בממשק הבנק.
- הבנק מחזיר את הלקוח ל-return_url של החנות.
- הבנק שולח webhook אישור ל-notification_url.
פרמטרים שיש לברר מול הבנק בעת החיבור: נקודת קצה של API, פורמט הבקשה (בדרך כלל REST/JSON), שיטת אימות (token או תעודה), סביבות בדיקה וייצור. התיעוד זמין באתר הרשמי של Belarusbank.
יצירת מנגנון התשלום
צור את המנגנון ב-<?php $PAYSYSTEM_SORT = 150; $PAYSYSTEM_NAME = 'Халва (Беларусбанк, рассрочка)'; $PAYSYSTEM_IS_CASH = 'N'; : .description.php:
<?php $PAYSYSTEM_SORT = 150; $PAYSYSTEM_NAME = 'Халва (Беларусбанк, рассрочка)'; $PAYSYSTEM_IS_CASH = 'N'; מחלקת המנגנון:
<?php
class HalvaBelarusHandler extends \Bitrix\Sale\PaySystem\ServiceHandler
{
public function initiatePay(
\Bitrix\Sale\Payment $payment,
\Bitrix\Main\Request $request = null
) {
$order = $payment->getOrder();
$installmentMonths = $this->getBusinessValue($payment, 'INSTALLMENT_MONTHS');
$sessionData = [
'merchant_id' => $this->getBusinessValue($payment, 'MERCHANT_ID'),
'order_id' => $order->getId(),
'amount' => $payment->getSum(),
'currency' => 'BYN',
'installment' => (int)$installmentMonths,
'description' => 'Заказ #' . $order->getId(),
'return_url' => $this->getSuccessUrl($payment),
'cancel_url' => $this->getFailUrl($payment),
'notification_url' => $this->getNotificationUrl($payment),
'customer_name' => $order->getPropertyValueByCode('NAME'),
'customer_phone' => $order->getPropertyValueByCode('PHONE'),
];
$response = $this->callApi('POST', '/v1/payments/create', $sessionData);
if (empty($response['redirect_url'])) {
$this->createError('Ошибка создания платёжной сессии Халва');
return \Bitrix\Sale\PaySystem\ServiceResult::create()->setRedirectUrl('/');
}
$this->savePaymentId($payment, $response['payment_id']);
$result = new \Bitrix\Sale\PaySystem\ServiceResult();
$result->setPaymentUrl($response['redirect_url']);
return $result;
}
} טיפול בהודעות והחזרים
הבנק שולח בקשת POST ל-notification_url בעת תשלום מוצלח או דחייה. נקודת המפתח היא אימות החתימה. אם החתימה אינה חוקית, הבקשה נדחית. במנגנון, אנו משווים את ה-payment_id לערך השמור כדי למנוע שיבוש.
<?php
public function processRequest(
\Bitrix\Sale\Payment $payment,
\Bitrix\Main\Request $request
): \Bitrix\Sale\PaySystem\ServiceResult {
$result = new \Bitrix\Sale\PaySystem\ServiceResult();
if (!$this->verifySignature($request)) {
$result->addError(new \Bitrix\Main\Error('Неверная подпись запроса'));
return $result;
}
$status = $request->get('status');
$paymentId = $request->get('payment_id');
$savedPaymentId = $this->getPaymentIdFromStorage($payment);
if ($paymentId !== $savedPaymentId) {
$result->addError(new \Bitrix\Main\Error('Несоответствие payment_id'));
return $result;
}
if ($status === 'SUCCESS' || $status === 'APPROVED') {
$result->setOperationType(\Bitrix\Sale\PaySystem\ServiceResult::MONEY_COMING);
$payment->setPaid('Y');
} elseif ($status === 'CANCEL' || $status === 'REJECTED') {
$result->setOperationType(\Bitrix\Sale\PaySystem\ServiceResult::MONEY_COMING);
}
return $result;
}החזרים מבוצעים דרך שיטת API נפרדת. אנו מסנכרנים אוטומטית את סטטוס ההזמנה עם הבנק — זה מבטל פעולות ידניות ושגיאות.
הגדרה ובדיקה באתר
מערכת התשלום נרשמת ב-Bitrix דרך חנות → הגדרות → מערכות תשלום → הוסף. פרמטרי המנגנון:
| פרמטר | תיאור |
|---|---|
| MERCHANT_ID | מזהה החנות במערכת Belarusbank |
| API_TOKEN | אסימון הרשאה |
| INSTALLMENT_MONTHS | תקופת תשלומים בחודשים (רשימה: 3, 6, 12, 24) |
| TEST_MODE | מצב בדיקה (Y/N) |
| API_URL | כתובת API (בדיקה / ייצור) |
הוסף בדיקת סכום מינימלי להזמנה:
<?php
public function isAvailable(\Bitrix\Sale\PayableItemCollection $basket): bool
{
$total = $basket->getPrice();
$min = (float)\Bitrix\Main\Config\Option::get('halva_belarus', 'min_amount', 50);
return $total >= $min;
}
כיצד אנו בודקים את השילוב?
הבדיקה מתבצעת בסביבת ה-sandbox של הבנק באמצעות כרטיסי בדיקה אמיתיים. אנו בודקים תרחישים: תשלום מוצלח, דחייה, החזר חלקי, timeout. לאחר אימות כל הסטטוסים, המנגנון מועבר לסביבת הייצור. זה מבטל הפתעות לאחר ההשקה.
מה כולל השירות וכמה זמן הוא לוקח?
- ביקורת על מערכת התשלום הקיימת ודרישות הבנק
- פיתוח מנגנון עם אימות חתימה וטיפול בשגיאות
- הגדרת סביבות API לבדיקה וייצור
- שילוב הודעות webhook וטיפול בסטטוסים
- בדיקה עם כרטיסים אמיתיים ב-sandbox של הבנק (פי 3 מהר מהממוצע בתעשייה)
- תיעוד תפעולי והדרכת מנהלים
- תמיכה עם אחריות ל-30 יום לאחר ההשקה
| שלב | משך |
|---|---|
| הגדרת חיבור בדיקה ל-API של הבנק | יום אחד |
| מנגנון תשלום (initiatePay) | יומיים |
| מנגנון הודעות + אימות חתימה | יומיים |
| החזרים דרך API | יום אחד |
| בדיקה ב-sandbox של הבנק | יומיים |
| סה"כ | 8–10 ימים |
הניסיון והתהליך שלנו
אנו עובדים עם 1C-Bitrix למעלה מ-10 שנים והשלמנו 50+ שילובי תשלום: Halva, YooKassa, Sber. הפתרונות שלנו עוברים ביקורות בנק בניסיון הראשון (100% מעבר). התהליך כולל: ניתוח דרישות → עיצוב → יישום → בדיקה → פריסה. בכל שלב אתה מקבל תוצאות ביניים ויכול לבצע התאמות.
השוואה: פיתוח מותאם אישית הוא זול וגמיש יותר מאשר רכישת מודול מוכן עם פונקציונליות מוגבלת. אנו מתאימים את המנגנון לארכיטקטורה שלך — בין אם זה multisite או החלפת 1C לא סטנדרטית.
קבל ייעוץ על השילוב — צור קשר. אנו נעריך את הפרויקט שלך ונציע פתרון אופטימלי. הזמן שילוב עכשיו וקבל תמיכה מורחבת לחודש.

