שילוב MIR Pay עם 1C-Bitrix
בשוק הנוכחי, MIR Pay הפך לכלי התשלום ללא מגע היחיד עבור לקוחות רוסים עם כרטיסי MIR — למעלה מ-170 מיליון כרטיסים נמצאים במחזור. שילוב מערכת התשלומים MIR לתוך 1C-Bitrix נעשה דרך בנק רכישה שעובד עם NSPK. אין API נפרד לחיבור ישיר ללא בנק. אנו משלבים מערכות תשלום לתוך 1C-Bitrix כבר מספר שנים, ושילוב MIR Pay הוא אחת הבקשות הנפוצות ביותר. נקודת הכאב העיקרית: אתם רוצים שתשלומים יעברו במהירות וללא שגיאות, אבל בלי להמציא את הגלגל מחדש. בואו נראה לכם איך לעשות זאת על סמך ניסיון אמיתי.
איך לבחור את שיטת שילוב MIR Pay?
דרך רכישה קיימת של MIR — אם יש לכם Tinkoff, CloudPayments או YooKassa מחוברים, MIR Pay בדרך כלל עובד ללא פיתוח נוסף. בנק הרכישה קובע את סוג הכרטיס לפי BIN ומנתב את העסקה דרך NSPK. T-Pay SDK מ-Tinkoff כולל את MIR Pay ומציע אותו אוטומטית לבעלי כרטיסי MIR. Payment Request API הוא תקן דפדפן W3C הנתמך ב-Chrome, Yandex Browser, Firefox ו-Safari.
השוואת גישות
| שיטה | מורכבות | זמן שילוב | תמיכת דפדפנים |
|---|---|---|---|
| דרך רכישה קיימת | נמוכה | 0.5–1 יום | לא תלוי |
| T-Pay SDK | בינונית | 1–2 ימים | Android + iOS WebView |
| Payment Request API | גבוהה | 2–4 ימים | Chrome, Yandex, Firefox, Safari |
Payment Request API מנצח ברוחב הכיסוי: הוא מכסה פי 1.5 יותר דפדפנים מאשר T-Pay SDK ואינו דורש התקנת SDK נוספת. שילוב דרך רכישה מהיר פי 2-3 מיישום מותאם אישית. בחירת השיטה משפיעה על התקציב: דרך רכישה — עלות מינימלית, יישום מותאם אישית יקר יותר. צרו קשר כדי לבחור את האפשרות הטובה ביותר.
למה כדאי לבחור ב-Payment Request API?
Payment Request API הוא תקן W3C הנתמך על ידי כל הדפדפנים המודרניים (מעל 90% מהמשתמשים). בניגוד ל-T-Pay SDK, הוא אינו דורש התקנת ספרייה ועובד זהה בכל המכשירים. אם האתר שלכם משרת משתמשים עם דפדפנים שונים, אפשרות זו עדיפה. עם זאת, זכרו שעבור דפדפנים ישנים יש צורך בגיבוי לטופס תשלום סטנדרטי. בחירת שיטה נכונה יכולה לחסוך עד 30% מעלויות העסקאות.
איך לחבר את MIR Pay דרך Tinkoff?
שילוב דרך Tinkoff: צד שרת
// Создание платёжной сессии $params = [ 'TerminalKey' => TINKOFF_TERMINAL, 'Amount' => (int)($order->getPrice() * 100), 'OrderId' => $order->getAccountNumber(), 'Description' => 'Заказ #' . $order->getAccountNumber(), 'SuccessURL' => 'https://shop.ru/payment/success/', 'FailURL' => 'https://shop.ru/payment/fail/', 'NotificationURL' => 'https://shop.ru/bitrix/tools/sale_ps_result.php', 'PayType' => 'O', ]; $params['Token'] = generateTinkoffToken($params, TINKOFF_SECRET); $response = tinkoffRequest('/v2/Init', $params); // Тинькофф показывает МИР Pay на странице $response['PaymentURL'] // автоматически, если карта покупателя — МИР Payment Request API: כפתור MIR Pay באתר
// Проверяем поддержку Payment Request API if (!window.PaymentRequest) { return; // fallback к стандартной форме } const mirMethod = { supportedMethods: 'https://pay.mir.ru/', }; const pr = new PaymentRequest( [mirMethod], { total: { label: 'Итого', amount: { currency: 'RUB', value: orderAmount.toFixed(2) }, }, } ); pr.canMakePayment().then(canPay => { if (canPay) { document.getElementById('mir-pay-btn').style.display = 'flex'; } }); document.getElementById('mir-pay-btn').addEventListener('click', async () => { const response = await pr.show(); const result = await fetch('/api/mir-pay-confirm.php', { method: 'POST', body: JSON.stringify({ details: response.details, orderId }), }); const data = await result.json(); response.complete(data.success ? 'success' : 'fail'); }); PHP Handler עבור MIR Pay Token
// local/api/mir-pay-confirm.php $input = json_decode(file_get_contents('php://input'), true); $token = $input['details']['token'] ?? ''; $orderId = (int)($input['orderId'] ?? 0); // Передаём в Тинькофф (поддерживает МИР Pay токены) $charge = tinkoffRequest('/v2/FinishAuthorize', [ 'TerminalKey' => TINKOFF_TERMINAL, 'PaymentId' => getPaymentIdByOrderId($orderId), 'CardData' => base64_encode($token), 'Token' => generateTinkoffToken([...], TINKOFF_SECRET), ]); if ($charge['Success']) { $payment = getBitrixPayment($orderId); $payment->setPaid('Y'); $payment->save(); echo json_encode(['success' => true]); } ניסיון מפרויקט אמיתי
עבור קמעונאית מקוונת גדולה עם 50,000 הזמנות בחודש, יישמנו MIR Pay דרך Payment Request API. בעבר, לתהליך התשלום היה שיעור נטישה גבוה בשל אפשרויות מוגבלות ללא מגע. לאחר השילוב, תהליך התשלום הפך מהיר ב-30% עבור בעלי כרטיסי MIR, וההמרה במובייל עלתה ב-15%. האתגר הטכני העיקרי היה טיפול בפגיית ה-token; פתרנו זאת על ידי יישום זרימת תשלום חד-שלבית עם פסק זמן של 10 דקות ל-token.
אילו קשיים טכניים מתעוררים?
הבעיה הנפוצה ביותר היא טיפול שגוי ב-MIR Pay token בעת שימוש ברכישה מותאמת אישית. לדוגמה, הבנק עשוי שלא לתמוך ב-// Создание платёжной сессии $params = [ 'TerminalKey' => TINKOFF_TERMINAL, 'Amount' => (int)($order->getPrice() * 100), 'OrderId' => $order->getAccountNumber(), 'Description' => 'Заказ #' . $order->getAccountNumber(), 'SuccessURL' => 'https://shop.ru/payment/success/', 'FailURL' => 'https://shop.ru/payment/fail/', 'NotificationURL' => 'https://shop.ru/bitrix/tools/sale_ps_result.php', 'PayType' => 'O', ]; $params['Token'] = generateTinkoffToken($params, TINKOFF_SECRET); $response = tinkoffRequest('/v2/Init', $params); // Тинькофф показывает МИР Pay на странице $response['PaymentURL'] // автоматически, если карта покупателя — МИР עם // Проверяем поддержку Payment Request API if (!window.PaymentRequest) { return; // fallback к стандартной форме } const mirMethod = { supportedMethods: 'https://pay.mir.ru/', }; const pr = new PaymentRequest( [mirMethod], { total: { label: 'Итого', amount: { currency: 'RUB', value: orderAmount.toFixed(2) }, }, } ); pr.canMakePayment().then(canPay => { if (canPay) { document.getElementById('mir-pay-btn').style.display = 'flex'; } }); document.getElementById('mir-pay-btn').addEventListener('click', async () => { const response = await pr.show(); const result = await fetch('/api/mir-pay-confirm.php', { method: 'POST', body: JSON.stringify({ details: response.details, orderId }), }); const data = await result.json(); response.complete(data.success ? 'success' : 'fail'); }); . במקרה זה, יש לעבור ל-T-Pay SDK או להגדיר תשלום דו-שלבי. הקושי השני הוא זיהוי נכון של סוג הכרטיס לפי BIN: לא כל הבנקים שולחים את ה-BIN ב-callback. אנו ממליצים לחבר כרטיסי MIR לבדיקה במהלך הפיתוח (סימולטור רשמי של NSPK בויקיפדיה).
מה כלול בעבודה
- ניתוח התשתית הנוכחית ובחירת שיטת השילוב האופטימלית.
- הגדרת שער התשלום ב-1C-Bitrix (חיבור מודול, הגדרת רכישה).
- יישום כפתור MIR Pay בצד הלקוח דרך Payment Request API או SDK.
- פיתוח צד שרת לעיבוד token ועמידה ב-54-FZ.
- בדיקות עם כרטיסי MIR לבדיקה בסביבה דמוית ייצור.
- תיעוד ופרטי גישה (לוח ניהול, קבצי לוג).
- אחריות ל-30 יום על עיבוד תשלומים תקין.
שגיאות שילוב אופייניות: BIN לא מזוהה — בדקו את רשימת הבנקים הנתמכים; token פג — השתמשו בתשלום חד-שלבי או הגדילו את פסק הזמן; מסגרת לא מוצגת — השביתו חוסמי פרסומות או בדקו את מדיניות אבטחת התוכן (Content Security Policy).
לוחות זמנים
| משימה | משך |
|---|---|
| הפעלה דרך רכישה קיימת | 0.5–1 יום |
| יישום מותאם אישית עם Payment Request API | 2–4 ימים |
| בדיקות עם כרטיסי MIR לבדיקה | 0.5–1 יום |
| מחזור מלא (ניתוח + יישום + בדיקות) | 3 עד 7 ימים |
מיתוג MIR Pay
NSPK מסדירה את עיצוב כפתור MIR Pay. משאבים רשמיים ולוגואים נמצאים בmironline.ru. אסור לשנות את שם הכפתור או את ערכת הצבעים שלו באופן שרירותי.
הזמינו שילוב MIR Pay עם 1C-Bitrix מאיתנו. קבלו ייעוץ לפרויקט שלכם — נעריך את התשתית הנוכחית שלכם ונציע פתרון מפתח אופטימלי.







