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

קונים נוטשים יותר ויותר עגלות בתשלום בכרטיס, ועמלות הסליקה פוגעות ברווחי החנות. אנו מגדירים קבלת תשלומים דרך SBP ב-1C-Bitrix, ומשלבים את מערכת התשלומים המהירה עם ספקים פופולריים. הצוות שלנו מספק אינטגרציה מלאה—מההתקנה ועד לתמיכה שוטפת—כך שתקבלו העברות מיידיות באופן אמין וללא עיכובים.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
הגדרת SBP ב-1C-Bitrix: קבלת תשלומים מיידיים
פשוט
~1 יום

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

שאלות נפוצות

אחרי מאות אינטגרציות של רכישת כרטיסים לחנויות על 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;
}

// Обновление статуса платежа в Bitrix
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 עוד היום.