בדיקת אינטגרציות 1C-Bitrix עם מערכות תשלום
שער התשלום אישר את העסקה, ה-webhook הגיע, אך ההזמנה נשארת בסטטוס "ממתין לתשלום". או גרוע מכך—אותו webhook עובד פעמיים, ונוצרו שתי הזמנות ששולמו. בדיקות סטנדרטיות לרוב מפספסות תרחישים אלה. במשך שנים של עבודה עם 1C-Bitrix ואינטגרציות מערכות תשלום (YooKassa, Sber, Tinkoff, Robokassa), למדנו לתפוס בעיות כאלה לפני העלייה לאוויר. המתודולוגיה שלנו מכסה את כל האירועים האסינכרוניים: הפנייה לשער התשלום, הודעות webhook (כולל מעוכבות וכפולות), טיפול בסטטוסים, ופיסקאליזציה לפי 54-FZ. לפי סטטיסטיקות, 80% מתקלות התשלום מתרחשות עקב עיבוד webhook שגוי—אנו מבטלים סיכונים אלה במהלך הבדיקות.
אילו סיכונים הבדיקות מכסות?
התרחישים העיקריים שאנו תמיד בודקים:
- תשלום מוצלח – זרימה רגילה: עגלה → קופה → הפנייה → תשלום → חזרה לאתר → שינוי סטטוס הזמנה.
- תשלום שנדחה – כרטיס נדחה, סטטוס ההזמנה צריך להישאר "ממתין לתשלום", לא "בוטל".
- תרחיש סגירת דפדפן – הלקוח עזב לאחר ההפנייה מבלי להשלים תשלום; webhook לא התקבל; יש לטפל בהזמנה כראוי בביקור חוזר.
- Webhook מעוכב – webhook מגיע 10–20 דקות לאחר התשלום (נפוץ עם Robokassa, Sber); סטטוס ההזמנה חייב להתעדכן כראוי.
- Webhook כפול – אותה הודעה מגיעה פעמיים; עיבוד חוזר לא אמור להכפיל את סטטוס "שולם".
- החזר חלקי – 1–2 ימים לאחר התשלום, אנו בודקים POST /refunds ואת קבלת ההחזר.
- החזר מלא – עם אימות קבלה פיסקלית (אם קופה רושמת מחוברת לפי 54-FZ).
איך אנו בודקים: גישת מומחים
אנו משתמשים בשילוב של בדיקות אוטומטיות וידניות. לדוגמה, בפרויקט מסחר אלקטרוני גדול, גילינו ש-webhook כפול גרם ליצירת הזמנה כפולה. לאחר יישום מטמון עם מזהה תשלום ייחודי, לא התרחשו כפילויות. זה צמצם את זמן התגובה לאירועים ב-40% וחסך ללקוח אובדן הכנסות (מוערך ב-$5,000 לכל אירוע שנמנע). הערימה הטכנולוגית שלנו כוללת:
- Playwright לתרחישי end-to-end עם כרטיסי בדיקה אמיתיים.
- ngrok או localtunnel לחשיפת סביבה מקומית למשלוח webhook.
- שאילתות SQL מותאמות אישית לאימות מצבי מסד הנתונים.
אנו מדמים webhooks מעוכבים על ידי הכנסת השהיות מלאכותיות לפני העברת ההודעה, ומוודאים שהמטפל יכול לעבד הגעות מאוחרות כראוי.
איך להתגונן מפני Webhooks כפולים?
לפי התיעוד הרשמי, המטפל חייב להיות עמיד בפני הודעות כפולות. כתובת ה-URL הסטנדרטית ב-Bitrix: /bitrix/tools/sale_ps_result.php. במהלך הבדיקות, אנו תמיד בודקים אידמפוטנטיות—הגנה מפני עיבוד חוזר של כפילויות. אנו משתמשים במטמון:
$cache = Cache::createInstance();
$cacheId = 'payment_processed_' . $paymentId;
if ($cache->initCache(86400, $cacheId, '/sale/payment')) {
return;
}
$cache->startDataCache();
$cache->endDataCache(['processed' => true]);ללא מטמון כזה, webhooks כפולים יכולים להוביל לתשלום כפול. אנו גם בודקים הודעות מעוכבות—בעיה נפוצה.
למה חשוב לבדוק Webhooks מעוכבים?
עיכובים במשלוח webhook הם התנהגות סטנדרטית עבור מערכות תשלום רבות. אם המטפל לא מתוכנן לקבל הודעה 15–30 דקות לאחר התשלום, ההזמנה עלולה להישאר בסטטוס "ממתין לתשלום". הלקוח עוזב, אך הכסף כבר נוכה. אנו מדמים עיכובים כאלה באמצעות כלים כמו $cache = Cache::createInstance(); $cacheId = 'payment_processed_' . $paymentId; if ($cache->initCache(86400, $cacheId, '/sale/payment')) { return; } $cache->startDataCache(); $cache->endDataCache(['processed' => true]); ומוודאים שהסטטוס מתעדכן כראוי גם עם השהיה.
נקודות אימות טכניות
הטבלאות המרכזיות לבדיקת סטטוסים הן ngrok ו-b_sale_pay_system_action. לאחר כל עסקה, אנו מריצים:
SELECT o.account_number, p.paid, p.date_paid, p.ps_status, p.ps_status_message
FROM b_sale_order_payment p
JOIN b_sale_order o ON o.id = p.order_id
WHERE o.account_number = '12345'
ORDER BY p.date_paid DESC;אנו בודקים ש-b_sale_order_payment מכיל את הסטטוס המקורי ממערכת התשלום, לא רק כן/לא. זה קריטי לאבחון לאחר תקלה.
ערכת כלים
לבדיקת הודעות webhook בסביבה מקומית, אנו משתמשים ב-SELECT o.account_number, p.paid, p.date_paid, p.ps_status, p.ps_status_message FROM b_sale_order_payment p JOIN b_sale_order o ON o.id = p.order_id WHERE o.account_number = '12345' ORDER BY p.date_paid DESC; או ps_status—הם מעבירים כתובת URL חיצונית לשרת המקומי. ללא זה, בדיקת הודעות אסינכרוניות ממערכות תשלום היא בלתי אפשרית.
לאוטומציה, אנו משתמשים ב-Playwright או Cypress עם כרטיסי בדיקה אמיתיים. Playwright מהיר פי 3 מ-Selenium ויציב יותר לתרחישים אסינכרוניים. כרטיסי בדיקה למערכות שונות:
| מערכת תשלום | הצלחה | דחייה |
|---|---|---|
| YooKassa | ngrok |
localtunnel |
| Tinkoff | 5555555555554477 |
5555555555554444 |
| Robokassa | — | מצב בדיקה בהגדרות |
| Sber | 4300000000000777 |
4300000000000885 |
מה כלול בעבודה
אנו מספקים חבילה מלאה: תוכנית בדיקות עם תיאורי תרחישים, תיעוד ליקויים שנמצאו, סביבת בדיקה מוגדרת לבדיקות חוזרות, הדרכה למהנדסים שלכם על טיפול בשגיאות אופייניות, ותמיכה ל-30 יום לאחר המסירה. השירותים שלנו מבטיחים זיהוי של 95% משגיאות התשלום לפני שהן משפיעות על הלקוחות שלכם. זה מבטיח שהאינטגרציה תישאר יציבה לאחר המסירה שלנו.
לוח זמנים ועלות
| היקף | משך | עלות (החל מ-) |
|---|---|---|
| בדיקת מערכת תשלום אחת (תרחישים סטנדרטיים) | 1–2 ימים | $500 |
| בדיקת 2–3 מערכות + החזרים | 3–5 ימים | $1,500 |
| מחזור מלא עם 54-FZ ובדיקות אוטומטיות | 6–10 ימים | $3,000 |
העלות מחושבת באופן אישי לפי מורכבות האינטגרציה, מספר המערכות והצורך בפיתוח בדיקות אוטומטיות. הבדיקות משתלמות בכך שמונעות הפסדים מתקלות—תקלה אחת בלילה יכולה לעלות יותר מכל הפרויקט. הזמינו בדיקת אינטגרציה—זה חוסך זמן וכסף.
הניסיון שלנו
הצוות שלנו הוא שותף Bitrix מוסמך עם מומחיות מוכחת. בדקנו מעל 100 פרויקטים, כולל אינטגרציות עם YooKassa, Sber, Tinkoff, Robokassa, PayPal ואחרות. הלקוחות שלנו חוסכים עד 30% מתקציבי התמיכה בזכות זיהוי מוקדם של בעיות. אנו מבטיחים אינטגרציות תשלום ללא תקלות ומספקים אחריות להחזר כספי על שירותי הבדיקה שלנו.
קבלו ייעוץ
אם יש לכם שאלות על בדיקת אינטגרציות תשלום ב-Bitrix, צרו קשר. אנו נעריך את הפרויקט שלכם ונציע תוכנית בדיקות אופטימלית.

