בעת קבלת תשלומים בחנות מקוונת בלארוסית, בחירת שער תשלום שעובד עם בנקים מקומיים וכרטיסי BELKART היא קריטית. פתרונות סטנדרטיים מספקים רוסיים אינם תומכים בכרטיסים בלארוסיים ועלולים להוביל לאובדן של עד 12% מההזמנות עקב כשלי תשלום. bePaid הוא אחד השירותים הבודדים המספקים סליקה דרך בנקים שותפים בבלארוס (Belgazprombank, Priorbank). אנו מספקים אינטגרציה מקצועית של bePaid לחנויות 1C-Bitrix, ומבטיחים עיבוד תשלומים בלארוסי חלק כולל BELKART. עם ניסיון של 5+ שנים ו-10+ אינטגרציות מוצלחות של bePaid, אנו מספקים פתרונות אמינים. להלן סכמת אינטגרציה מוכחת ששימשה ב-10+ פרויקטים מוצלחים.
מקרה בוחן: כיצד הגדרנו תשלומים דו-שלביים והגדלנו המרה
לקוח אחד, חנות מקוונת למכשירי חשמל ביתיים במינסק, היה עם שיעור המרת תשלום של 2.3% ו-7% מההזמנות שבוטלו עקב שגיאות חיוב. חיברנו את bePaid עם תשלומים דו-שלביים: הסכום מאושר, והחיוב בפועל מתבצע לאחר שהמנהל מאשר את ההזמנה. זה ביטל את הסיכון לחיוב עבור פריטים שלא נשלחו. לאחר האינטגרציה, ההמרה עלתה ל-3.1% (שיפור יחסי של 34%), ודחיות התשלום ירדו פי שלושה. פרויקט זה מדגים את ההשפעה של אינטגרציית bePaid נכונה על מדדים עסקיים.
bePaid: הבחירה האופטימלית לחנויות מקוונות בלארוסיות
bePaid נבדל משערים רוסיים בכך שהוא תומך בכרטיסי BELKART ומספק סליקה ישירה דרך בנקים בלארוסיים. בהשוואה ל-Assistent.by, bePaid מציע REST API גמיש יותר ותשלומים דו-שלביים. לפי המדידות שלנו, bePaid מעבד עסקאות בממוצע 30% מהר יותר הודות לתשתית אופטימלית. bePaid מטפל בעסקה בממוצע של 0.8 שניות—30% מהר יותר מ-Assistent.by. זה קריטי לחנויות עם תעבורה גבוהה.
| פרמטר | bePaid | Assistent.by |
|---|---|---|
| תמיכה ב-BELKART | כן | לא |
| תשלומים דו-שלביים | כן | לא |
| REST API | מלא | מוגבל |
| מהירות עיבוד | גבוהה | בינונית |
כיצד לשלב את bePaid עם 1C-Bitrix?
לאינטגרציה מוצלחת של bePaid עם 1C-Bitrix, יש לוודא המרת סכומים נכונה וטיפול בהודעות. השיטה הסטנדרטית היא הפניה לדף bePaid מתארח. להלן שלבים מרכזיים ודוגמאות קוד.
מאפייני סליקה בלארוסית
חנויות מקוונות בלארוסיות חייבות לעבוד עם בנק סליקה המורשה על ידי הבנק הלאומי של בלארוס. bePaid מספק סליקה כזו דרך בנקים שותפים. נדרשת ישות משפטית בבלארוס לצורך החיבור. כתובת ה-API הראשית: https://checkout.bepaid.by/ctp/api/
סכמת אינטגרציה: דף תשלום
$credentials = base64_encode($shopId . ':' . $secretKey);
$requestData = [
'checkout' => [
'test' => $isTest,
'transaction_type' => 'payment', // или 'authorization' для холда
'order' => [
'amount' => (int)($sum * 100), // в копейках (BYN: *100)
'currency' => 'BYN',
'description' => 'Заказ №' . $orderId,
'tracking_id' => $orderId,
],
'settings' => [
'success_url' => $successUrl,
'decline_url' => $failUrl,
'fail_url' => $failUrl,
'notification_url' => $notificationUrl,
'language' => 'ru',
],
'customer' => [
'email' => $email,
'phone' => $phone,
],
],
];
$ch = curl_init('https://checkout.bepaid.by/ctp/api/checkouts');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Basic ' . $credentials,
'Accept: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
// $response['checkout']['redirect_url'] — URL для редиректа покупателя
// $response['checkout']['token'] — токен платежа для проверки статуса
קבלת הודעות
bePaid שולח POST עם גוף JSON אל $credentials = base64_encode($shopId . ':' . $secretKey); $requestData = [ 'checkout' => [ 'test' => $isTest, 'transaction_type' => 'payment', // или 'authorization' для холда 'order' => [ 'amount' => (int)($sum * 100), // в копейках (BYN: *100) 'currency' => 'BYN', 'description' => 'Заказ №' . $orderId, 'tracking_id' => $orderId, ], 'settings' => [ 'success_url' => $successUrl, 'decline_url' => $failUrl, 'fail_url' => $failUrl, 'notification_url' => $notificationUrl, 'language' => 'ru', ], 'customer' => [ 'email' => $email, 'phone' => $phone, ], ], ]; $ch = curl_init('https://checkout.bepaid.by/ctp/api/checkouts'); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', 'Authorization: Basic ' . $credentials, 'Accept: application/json', ]); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = json_decode(curl_exec($ch), true); curl_close($ch); // $response['checkout']['redirect_url'] — URL для редиректа покупателя // $response['checkout']['token'] — токен платежа для проверки статуса :
$rawBody = file_get_contents('php://input');
$data = json_decode($rawBody, true);
// Проверка подписи через SHA1
$received = $data['transaction']['uid'] ?? '';
$hash = $data['transaction']['verification_code'] ?? '';
$expected = sha1($secretKey . $received);
// Альтернативная проверка: через API запрос статуса по uid
$trackingId = $data['transaction']['tracking_id']; // наш orderId
$txStatus = $data['transaction']['status']; // 'successful', 'failed', etc.
if ($txStatus === 'successful') {
$order = \Bitrix\Sale\Order::loadByAccountNumber($trackingId);
// подтвердить оплату
}
http_response_code(200);
סטטוסי עסקה: notification_url, $rawBody = file_get_contents('php://input'); $data = json_decode($rawBody, true); // Проверка подписи через SHA1 $received = $data['transaction']['uid'] ?? ''; $hash = $data['transaction']['verification_code'] ?? ''; $expected = sha1($secretKey . $received); // Альтернативная проверка: через API запрос статуса по uid $trackingId = $data['transaction']['tracking_id']; // наш orderId $txStatus = $data['transaction']['status']; // 'successful', 'failed', etc. if ($txStatus === 'successful') { $order = \Bitrix\Sale\Order::loadByAccountNumber($trackingId); // подтвердить оплату } http_response_code(200); , successful, failed.
טיפול בבעיות הודעות נפוצות
אם הודעות אינן מגיעות, בדוק את נגישות pending. ודא שהיא נגישה לציבור ואינה מסננת כתובות IP. לפי תיעוד רשמי של bePaid, תמיד אמת את הסטטוס דרך API באמצעות expired תוך 24 שעות. הוסף סוכן רקע ב-Bitrix לסנכרון סטטוס תקופתי.
החזרים
$refundData = [
'request' => [
'parent_uid' => $originalTransactionUid,
'amount' => (int)($refundAmount * 100),
'reason' => 'Отмена заказа',
],
];
$ch = curl_init('https://gateway.bepaid.by/transactions/refunds');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Basic ' . $credentials,
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($refundData));
// ... הבדלים משערים רוסיים
- הסכומים נשלחים בדולרים בלארוסיים (BYN) בקופיקות (הכפל ב-100).
-
notification_urlהוא מזהה הזמנה שרירותי (בניגוד ל-uidב-Robokassa) - כרטיסי BELKART נתמכים—תכונה ייחודית של השוק הבלארוסי
- הודעות מגיעות כ-JSON דרך POST, לא מקודדות טופס
בדיקות
לפי תיעוד רשמי של bePaid, סביבת הבדיקה זמינה בכתובת $refundData = [ 'request' => [ 'parent_uid' => $originalTransactionUid, 'amount' => (int)($refundAmount * 100), 'reason' => 'Отмена заказа', ], ]; $ch = curl_init('https://gateway.bepaid.by/transactions/refunds'); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', 'Authorization: Basic ' . $credentials, ]); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($refundData)); // ... עם הדגל tracking_id. כרטיס בדיקה: InvId, תוקף https://checkout.bepaid.by, CVV test: true. ניתן להשתמש בכרטיס זה לבדיקת תשלומים מוצלחים ודחויים בסביבת הבדיקה.
מה כולל שירות האינטגרציה
אנו מספקים את המחזור המלא: ביקורת של הפתרון הקיים, פיתוח מודול תשלום עם טופס תשלום, הגדרת הודעות ומטפלים. אנו מיישמים תשלומים דו-שלביים והחזרים. במידת הצורך, אנו משתלבים עם 1C-UT דרך CommerceML. אנו בודקים את כל התרחישים. אנו מכינים תיעוד ומכשירים את מנהלי הלקוח. התוצאה היא שער תשלום יציב המוכן לקבל תשלומים אמיתיים.
התוצרים שלנו כוללים:
- תיעוד מפורט של נקודות קצה API וטיפול בהודעות
- גישה 24/7 לסביבת בדיקה לאימות
- הדרכת צוות (עד שעתיים) לניהול תשלומים
- תמיכה לאחר השקה למשך 30 יום להבטחת יציבות
תמחור האינטגרציה נקבע באופן פרטני בהתאם להיקף הפרויקט. הלקוחות שלנו חווים בדרך כלל שיפורים משמעותיים בהמרת תשלומים.
שגיאות אינטגרציה נפוצות
- המרת סכום שגויה: שכחת להכפיל ב-100 (סכום בקופיקות).
- התעלמות מאימות חתימת הודעות—פגיעות לזיוף.
- חסר טיפול בסטטוס
4200000000000000: ההזמנה עשויה להיות משולמת אך ההודעה מתעכבת. - קשירת IP קשיחה לבנק: bePaid עשוי לשנות כתובות IP; השתמש ב-
01/30ללא סינון IP.
לוח זמנים לפיתוח
| משימה | לוח זמנים |
|---|---|
| אינטגרציה בסיסית: תשלום + הודעות | 2–3 ימים |
| תשלומים דו-שלביים (אישור + חיוב) | +יום אחד |
| החזרים | +יום אחד |
| בדיקת מחזור מלא | 0.5 יום |







