אינטגרציה של 1C-Bitrix עם מערכת התשלומים CloudPayments
בעלי חנויות מקוונות על 1C-Bitrix נתקלים לעיתים קרובות בירידה בהמרות במהלך התשלום: הפנייה לדף הבנק מרתיעה עד 20% מהקונים. CloudPayments פותרת זאת עם Checkout Widget — נתוני הכרטיס מוזנים ישירות באתר, מה שמעלה את ההמרה ב-15–25%. אנו מבצעים אינטגרציה מלאה עם CloudPayments: ווידג'ט ללא הפנייה, תשלומים חוזרים, פיסקליזציה לפי 54-FZ. אינטגרציה בסיסית מתחילה מ-50,000 RUB והחיסכון האופייני לעומת חלופות מגיע ל-30%. על סמך הנתונים שלנו, העלות נקבעת לאחר ניתוח היקף הפרויקט.
CloudPayments מעלה את ההמרה ב-Bitrix
CloudPayments מציעה שתי שיטות תשלום. Checkout Widget — ווידג'ט JS, הטופס נפתח בחלון קופץ או מוטבע. נתוני הכרטיס עוברים ישירות לשער (PCI DSS), ורק ה-token של העסקה עובר לשרת שלך. זה מאובטח ואינו דורש הסמכה. ה-API ללא הפנייה דורש מהחנות לאסוף נתוני כרטיס בעצמה ולהעבירם דרך REST — גישה זו כמעט ואינה בשימוש בשל דרישות PCI DSS.
המרה אופיינית עם הפנייה היא 2–3%, עם הווידג'ט היא 4–6%. ההבדל בולט במיוחד במכשירים ניידים. CloudPayments נותנת המרה גבוהה פי 2.5 משימוש בהפנייה. הווידג'ט מוגדר תוך 2–3 ימים, כולל קריאות חוזרות מהשרת. לשם השוואה, אינטגרציה עם Sberbank דרך API אורכת 5–7 ימים, עם המרה נמוכה יותר. יתרה מכך, אינטגרציית הווידג'ט של CloudPayments מהירה פי 2 מההתקנה של T-Cassa.
CloudPayments משתלמת יותר מחלופות
| פרמטר | CloudPayments | Sberbank | T-Cassa |
|---|---|---|---|
| ווידג'ט ללא הפנייה | כן (מובנה) | דורש שינוי | כן |
| הסמכת PCI DSS | לא נדרשת | נדרשת ל-API | לא נדרשת |
| זמן אינטגרציה (בסיסי) | 2–3 ימים | 5–7 ימים | 3–4 ימים |
| תשלומים חוזרים | מובנה | דרך מנויים | תוספת |
| פיסקליזציה 54-FZ | מובנה | התקנה נפרדת | מובנה |
CloudPayments מספקת פיסקליזציה מוכנה — אין צורך לכתוב מודול משלך ל-OFD. זה חוסך עד 40% מזמן הפיתוח.
הוראות שלב-אחר-שלב להגדרת ווידג'ט CloudPayments ב-Bitrix
- קבל מפתחות ציבוריים וסודיים בחשבון CloudPayments שלך.
- בתבנית ההזמנה (רכיב
bitrix:sale.order.checkout), הוסף קישור לסקריפט הווידג'ט:
<script src="https://widget.cloudpayments.ru/bundles/cloudpayments.js"></script> - אתחל את הווידג'ט עם פרמטרי ההזמנה (סכום, תיאור, invoiceId).
- טפל בקריאות החוזרות
<script src="https://widget.cloudpayments.ru/bundles/cloudpayments.js"></script>ו-onSuccess— ב-onFailשלח בקשה לשרת לאישור התשלום. - הגדר מטפלי שרת
onSuccessו-checkעם אימות חתימת HMAC. - בדוק תרחישים: תשלום מוצלח, ביטול, שגיאה.
חיבור הווידג'ט
בדף התשלום של Bitrix (רכיב pay), הוסף את הסקריפט ואתחל את הווידג'ט:
<script src="https://widget.cloudpayments.ru/bundles/cloudpayments.js"></script>
<script>
var widget = new cp.CloudPayments({language: 'ru-RU'});
widget.pay('auth', // 'auth' — двухстадийная, 'charge' — одностадийная
{
publicId: 'pk_XXXXX',
description: 'Оплата заказа #<?= $orderId ?>',
amount: <?= $amount ?>,
currency: 'USD',
invoiceId: '<?= $orderId ?>',
accountId: '<?= $userId ?>',
skin: 'mini',
data: {
orderId: '<?= $orderId ?>',
csrfToken: '<?= bitrix_sessid() ?>',
}
},
{
onSuccess: function(options) {
// Платёж прошёл — уведомить сервер
fetch('/bitrix/tools/sale_ps_result.php', {
method: 'POST',
body: JSON.stringify({ orderId: options.invoiceId }),
});
},
onFail: function(reason, options) {
console.error('Payment failed:', reason);
}
}
);
</script>ב-Bitrix, הווידג'ט מחובר בתבנית הרכיב או ב-bitrix:sale.order.checkout. אנו מעבירים <script src="https://widget.cloudpayments.ru/bundles/cloudpayments.js"></script> <script> var widget = new cp.CloudPayments({language: 'ru-RU'}); widget.pay('auth', // 'auth' — двухстадийная, 'charge' — одностадийная { publicId: 'pk_XXXXX', description: 'Оплата заказа #<?= $orderId ?>', amount: <?= $amount ?>, currency: 'USD', invoiceId: '<?= $orderId ?>', accountId: '<?= $userId ?>', skin: 'mini', data: { orderId: '<?= $orderId ?>', csrfToken: '<?= bitrix_sessid() ?>', } }, { onSuccess: function(options) { // Платёж прошёл — уведомить сервер fetch('/bitrix/tools/sale_ps_result.php', { method: 'POST', body: JSON.stringify({ orderId: options.invoiceId }), }); }, onFail: function(reason, options) { console.error('Payment failed:', reason); } } ); </script> — מספר ההזמנה, שלפיו אנו מאשרים מאוחר יותר את התשלום.
עיבוד בצד השרת: הודעות check ו-pay
CloudPayments שולחת שתי בקשת POST לנקודת הקצה שלך: Check — לפני החיוב, החנות חייבת להגיב עם result_modifier.php אם ההזמנה קיימת; Pay — לאחר חיוב מוצלח, אישור תשלום.
מטפל (invoiceId):
$data = json_decode(file_get_contents('php://input'), true);
// Проверка HMAC подписи
$hmac = base64_encode(hash_hmac('sha256', file_get_contents('php://input'), $apiSecret, true));
if ($hmac !== $_SERVER['HTTP_CONTENT_HMAC']) {
http_response_code(403);
exit;
}
$invoiceId = $data['InvoiceId']; // наш orderId
$status = $data['Status']; // 'Completed', 'Cancelled' и т.д.
if ($status === 'Completed') {
// Найти платёж по orderId, подтвердить
$order = \Bitrix\Sale\Order::loadByAccountNumber($invoiceId);
$paymentCollection = $order->getPaymentCollection();
foreach ($paymentCollection as $payment) {
if ($payment->getPaySystem()->getField('CODE') === 'cloudpayments') {
$payment->setPaid('Y');
}
}
$order->save();
}
header('Content-Type: application/json');
echo json_encode(['code' => 0]);אימות חתימה הוא חובה. CloudPayments מעבירה HMAC SHA-256 בכותרת {"code":0}. ללא אימות, תוקף יכול לאשר תשלום עם POST מזויף. פרטים נוספים: ויקיפדיה: HMAC.
שגיאה נפוצה היא HMAC שגוי. כדי לתקן, ודא שאתה משתמש במפתח הסודי (לא הציבורי) וקח את גוף הבקשה הגולמי (local/payment/cloudpayments/callback.php). חשב HMAC לפני פענוח JSON.
תשלומים חוזרים
CloudPayments תומכת במנויים: בתשלום הראשון נוצר token לכרטיס ($data = json_decode(file_get_contents('php://input'), true); // Проверка HMAC подписи $hmac = base64_encode(hash_hmac('sha256', file_get_contents('php://input'), $apiSecret, true)); if ($hmac !== $_SERVER['HTTP_CONTENT_HMAC']) { http_response_code(403); exit; } $invoiceId = $data['InvoiceId']; // наш orderId $status = $data['Status']; // 'Completed', 'Cancelled' и т.д. if ($status === 'Completed') { // Найти платёж по orderId, подтвердить $order = \Bitrix\Sale\Order::loadByAccountNumber($invoiceId); $paymentCollection = $order->getPaymentCollection(); foreach ($paymentCollection as $payment) { if ($payment->getPaySystem()->getField('CODE') === 'cloudpayments') { $payment->setPaid('Y'); } } $order->save(); } header('Content-Type: application/json'); echo json_encode(['code' => 0]); ), וחיובים הבאים מתבצעים ללא השתתפות הקונה:
// Первый платёж с сохранением токена — через виджет с параметром createReceipt
// Последующие платежи через API
$response = $this->apiRequest('payments/tokens/charge', [
'Amount' => 999,
'Currency' => 'USD',
'InvoiceId' => $subscriptionId,
'AccountId' => $userId,
'Token' => $savedToken,
'Description' => 'Подписка за февраль',
]);ה-token נשמר במסד הנתונים (למשל, ב-HL-block), ומקושר למשתמש Bitrix. העמלה עבור תשלומים חוזרים זהה לזו של תשלומים רגילים.
דרישות פיסקליזציה
CloudPayments משתלבת עם קופות רושמות מקוונות דרך הפרמטר Content-HMAC בבקשת הווידג'ט. אתה מעביר מערך של פריטי הזמנה, שיעור מע"מ, מערכת מיסוי. CloudPayments עצמה יוצרת את הקבלה דרך הקופה המחוברת ושולחת אותה למייל או ל-SMS של הקונה.
דוגמה להעברת נתונים לווידג'ט:
var receipt = {
Items: [
{
label: 'Товар 1',
price: 500.00,
quantity: 1,
amount: 500.00,
vat: 20,
}
],
taxationSystem: 0, // ОСН
email: '[email protected]',
phone: '+71234567890',
};
widget.pay('charge', {
...,
cloudPayments: {
customerReceipt: receipt
}
}); מה כלול בעבודה
בהזמנת אינטגרציה, אתה מקבל:
- הגדרת הווידג'ט בדף התשלום.
- מטפל להודעות check/pay עם אימות חתימה.
- אינטגרציה של תשלומים חוזרים (אופציונלי).
- פיסקליזציה עם העברת קבלות (אופציונלי).
- בדיקת כל התרחישים: הצלחה, ביטול, שגיאה.
- תיעוד על אינטגרציה וגישה (לוגים, פאנל ניהול).
- ייעוץ בהגדרת הקופה המקוונת ב-CloudPayments.
- הדרכה לצוות שלך ותמיכה שוטפת.
לוח זמנים לפיתוח
| משימה | משך |
|---|---|
| אינטגרציה בסיסית: ווידג'ט + קריאות check/pay | 2–3 ימים |
| תשלומים דו-שלביים (auth + confirm) | +יום אחד |
| תשלומים חוזרים | +2–3 ימים |
| פיסקליזציה | +1–2 ימים |
| בדיקות וניפוי שגיאות | יום אחד |
לצוות שלנו ניסיון של למעלה מ-5 שנים עם Bitrix ומערכות תשלום, עם 50+ אינטגרציות מוצלחות. אנו מבטיחים יישום תקין ומספקים תיעוד מלא ותמיכה. קבל ייעוץ בהגדרת CloudPayments. צור קשר — נחשב את לוח הזמנים המדויק תוך יום אחד. להערכה מדויקת, פנה למהנדסים שלנו.

