הגדרת SBP ב-1C-Bitrix: קבלת תשלומים מיידיים

אחרי מאות אינטגרציות של סליקת כרטיסים לחנויות על 1C-Bitrix, שמנו לב לדפוס: בעלים חוזרים אחרי חצי שנה עם בקשה ל-SBP. הסיבה ברורה — **עמלה של 0.4–0.7%** לעומת הממוצע של 2% לכרטיסים. **SBP זול פי 3–5 מכרטיסים** — עבור חנות עם מחזור
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
הגדרת SBP ב-1C-Bitrix: קבלת תשלומים מיידיים
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1460
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    763
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    882
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1164

אחרי מאות אינטגרציות של רכישת כרטיסים לחנויות על 1C-Bitrix, שמנו לב לדפוס: בעלים חוזרים אחרי חצי שנה עם בקשה ל-SBP. הסיבה ברורה — עמלה של 0.4–0.7% לעומת 2% בממוצע לכרטיסים. SBP זול פי 3–5 מכרטיסים — עבור חנות עם מחזור של $9k–13k בחודש, החיסכון מגיע עד $160–230. וזה עוד לפני שמדברים על כך שהכסף מגיע תוך שניות, לא ביום הבא. היישום הטכני פשוט יותר ממה שנדמה: הכנו אינטגרציה עם שני ספקים פופולריים — Tinkoff ו-YooKassa. שניהם מספקים APIs פשוטים והטמעה מהירה. זמן חיבור ממוצע הוא 1-2 ימים.

מה זה SBP ואיך זה עובד

SBP היא מערכת תשלומים מיידית בין-בנקאית של הבנק המרכזי של רוסיה, שהושקה ב-2019. זהו העברה ישירה בין חשבון הקונה לחשבון המוכר ללא מערכות תשלום מתווכות. הקונה סורק קוד QR או לוחץ על קישור — התשלום עובר ללא הזנת פרטי כרטיס. עבור חנויות מקוונות, SBP מספקת יתרון של הפחתת עמלות פי 3–5 בהשוואה לכרטיסים.

השוואה בין SBP לרכישת כרטיסים

פרמטר SBP רכישת כרטיסים
עמלה 0.4% – 0.7% 1.5% – 2.5%
מהירות הסדר כמה שניות יום עסקים הבא
החזרים העברה חוזרת פשוטה דרך הסליקה, 3–30 ימים

יתרון נוסף הוא הגדלת המרה: לפי ההערכות שלנו, עד 15% מהמשתמשים נוטשים את העגלה כשהם רואים את טופס הזנת הכרטיס. SBP מסירה את המחסום הזה.

אינטגרציה של SBP דרך Tinkoff

Tinkoff מספקת שני פורמטים: קישור (למובייל) וקוד QR (לדסקטופ). שלבי החיבור:

  1. קבל מפתח טרמינל בחשבון האישי שלך ב-Tinkoff.
  2. צור סשן תשלום דרך ה-Init API.
  3. בקש קוד QR דרך GetQr.
  4. הצג למשתמש בהתאם למכשיר.

דוגמה ליצירת סשן תשלום וקבלת QR:

// Создание платёжной сессии $params = [ 'TerminalKey' => TINKOFF_TERMINAL, 'Amount' => (int)($order->getPrice() * 100), 'OrderId' => $order->getAccountNumber(), 'Description' => 'Заказ #' . $order->getAccountNumber(), 'NotificationURL' => 'https://shop.ru/bitrix/tools/sale_ps_result.php', 'PayType' => 'O', ]; $params['Token'] = tinkoffSign($params, TINKOFF_SECRET); $init = tinkoffPost('/v2/Init', $params); $paymentId = $init['PaymentId']; // Получение QR для СБП $qrParams = [ 'TerminalKey' => TINKOFF_TERMINAL, 'PaymentId' => $paymentId, 'DataType' => 'PAYLOAD', ]; $qrParams['Token'] = tinkoffSign($qrParams, TINKOFF_SECRET); $qr = tinkoffPost('/v2/GetQr', $qrParams); $sbpLink = $qr['Data']; 

תצוגה אדפטיבית של QR וקישורים

השלב הבא הוא להציג למשתמש את הממשק הנכון. במכשירים ניידים, עדיף לפתוח את אפליקציית הבנק דרך קישור, בדסקטופ — קוד QR. בדוק את ה-user-agent והצג את האלמנט המתאים:

const isMobile = /Mobi|Android/i.test(navigator.userAgent); if (isMobile) { const btn = document.getElementById('sbp-btn'); btn.href = sbpLink; btn.style.display = 'block'; } else { const qr = new QRCode(document.getElementById('sbp-qr'), { text: sbpLink, width: 200, height: 200, }); document.getElementById('sbp-qr-block').style.display = 'block'; } // Polling статуса const poll = setInterval(async () => { const status = await fetch('/api/sbp-status.php?orderId=' + orderId) .then(r => r.json()); if (status.paid) { clearInterval(poll); location.href = '/payment/success/'; } }, 2000); 

אינטגרציה דרך YooKassa

YooKassa תומכת גם ב-SBP. דוגמה ליצירת תשלום:

$payment = $client->createPayment([ 'amount' => ['value' => number_format($sum, 2, '.', ''), 'currency' => 'USD'], 'payment_method_data' => ['type' => 'sbp'], 'confirmation' => ['type' => 'qr'], 'capture' => true, 'description' => 'Заказ #' . $orderId, 'metadata' => ['order_id' => $orderId], ], uniqid('', true)); 

טיפול בהודעות callback מהבנק

לאחר התשלום, הבנק שולח בקשת POST אל // Создание платёжной сессии $params = [ 'TerminalKey' => TINKOFF_TERMINAL, 'Amount' => (int)($order->getPrice() * 100), 'OrderId' => $order->getAccountNumber(), 'Description' => 'Заказ #' . $order->getAccountNumber(), 'NotificationURL' => 'https://shop.ru/bitrix/tools/sale_ps_result.php', 'PayType' => 'O', ]; $params['Token'] = tinkoffSign($params, TINKOFF_SECRET); $init = tinkoffPost('/v2/Init', $params); $paymentId = $init['PaymentId']; // Получение QR для СБП $qrParams = [ 'TerminalKey' => TINKOFF_TERMINAL, 'PaymentId' => $paymentId, 'DataType' => 'PAYLOAD', ]; $qrParams['Token'] = tinkoffSign($qrParams, TINKOFF_SECRET); $qr = tinkoffPost('/v2/GetQr', $qrParams); $sbpLink = $qr['Data']; . הודעה זו מכילה את סטטוס התשלום ויש לטפל בה כראוי:

// Получение уведомления $json = file_get_contents('php://input'); $data = json_decode($json, true); // Проверка подписи $token = hash('sha256', $json . TINKOFF_SECRET); if ($token !== $_SERVER['HTTP_X_SIGNATURE']) { http_response_code(400); echo 'bad signature'; exit; } // Обновление статуса платежа в Битрикс if ($data['Status'] === 'CONFIRMED') { \Bitrix\Sale\PaymentCollection::setPaid($data['OrderId'], 'Y'); } 

חשוב: לעולם אל תסתמך רק על callbacks. יישם בדיקת סטטוס (כמו בדוגמה למעלה) — ייתכן שה-callback לא יגיע עקב תקלות רשת, אבל התשלום כבר עבר.

נקודות חשובות: עמלה ופיסקליזציה

כדי לעבוד עם SBP, יש צורך במוצר נפרד מהבנק — "קבלת תשלומים דרך SBP". תעריפים למסחר אלקטרוני: 0.4% ליחידים, עד 0.7% לחברות, מה שמפחית משמעותית את העלויות התפעוליות בהשוואה לרכישת כרטיסים. הפיסקליזציה של תשלומי SBP עוברת דרך המנגנון הסטנדרטי: אתה שולח const isMobile = /Mobi|Android/i.test(navigator.userAgent); if (isMobile) { const btn = document.getElementById('sbp-btn'); btn.href = sbpLink; btn.style.display = 'block'; } else { const qr = new QRCode(document.getElementById('sbp-qr'), { text: sbpLink, width: 200, height: 200, }); document.getElementById('sbp-qr-block').style.display = 'block'; } // Polling статуса const poll = setInterval(async () => { const status = await fetch('/api/sbp-status.php?orderId=' + orderId) .then(r => r.json()); if (status.paid) { clearInterval(poll); location.href = '/payment/success/'; } }, 2000); עם התכונה $payment = $client->createPayment([ 'amount' => ['value' => number_format($sum, 2, '.', ''), 'currency' => 'USD'], 'payment_method_data' => ['type' => 'sbp'], 'confirmation' => ['type' => 'qr'], 'capture' => true, 'description' => 'Заказ #' . $orderId, 'metadata' => ['order_id' => $orderId], ], uniqid('', true)); ל-OFD. אין צורך בקופה רושמת נפרדת — משתמשים באותה קופה כמו לכרטיסים. עם הגדרה נכונה ב-Bitrix, קבלות נשלחות אוטומטית עם אישור התשלום דרך webhook מהבנק.

החזרים וביטולים

בעת החזר של תשלום SBP, הכסף מוחזר לחשבון הקונה באופן מיידי (בניגוד לכרטיסים, שבהם עשוי להיות עיכוב). ב-Bitrix, יישם את ההחזר דרך נקודת הקצה NotificationURL של הבנק:

$refund = tinkoffPost('/v2/Refund', [ 'PaymentId' => $paymentId, 'TerminalKey' => TINKOFF_TERMINAL, ]); 

החזרים חלקיים נתמכים גם כן — העבר את סכום ההחזר בנפרד מסכום התשלום הכולל.

עוד על SBP בוויקיפדיה

הניסיון שלנו וזמן החיבור

יישמנו מעל 50 אינטגרציות של מערכות תשלום על 1C-Bitrix בשנים האחרונות. מומחי Bitrix מוסמכים מבטיחים פעולה יציבה תחת עומס. זמנים ממוצעים:

משימה זמן
SBP דרך Tinkoff או YooKassa 1–2 ימים
תצוגה אדפטיבית של QR/קישור 0.5 יום
בדיקת סטטוס 0.5 יום
הגדרת רכישת כרטיסים בנקאית 3–10 ימי עסקים

אם אתה רוצה לחבר SBP לפרויקט שלך, צור איתנו קשר — נעריך את היקף העבודה בחינם ונציע את הפתרון האופטימלי. קבל ייעוץ על יישום SBP עוד היום.