שילוב תשלומים הוא נקודת חולשה שבה אובדים עד 15% מההזמנות. קונים נוטשים את העגלה אם הטופס מפנה לאתר חיצוני או נטען לאט. CloudPayments פותרת זאת עם ווידג'ט מובנה: המשתמש אף פעם לא עוזב את העמוד. בפרויקט אחד — חנות אונליין למוצרי אלקטרוניקה עם מחזור חודשי של 1.5 מיליון רובל — המעבר מהפנייה לווידג'ט הגדיל את ההמרה ב-12%. ההפסד האופייני מעגלות נטושות לפני השילוב היה 500,000 רובל בחודש. CloudPayments עוזרת לשמר לקוחות, ויש לנו ניסיון מ-20+ פרויקטים. אנו מבטיחים פעולה יציבה ופיסקאליזציה מלאה לפי 54-FZ.
כיצד CloudPayments מגדילה את ההמרה
הווידג'ט של CloudPayments הוא טופס פופ-אפ המוצג מעל האתר שלך. הסקריפט הוא ~180 KB ונטען באופן עצלני. בפרויקטים שלנו ההמרה גדלה בממוצע ב-10% לאחר המעבר מדף הפנייה. בהשוואה ל-Checkout (iframe), הווידג'ט מספק 5–7% יותר עסקאות שהושלמו בגלל פחות שלבים. זה מתורגם להכנסה חודשית נוספת של 200,000 רובל לחנות עם צ'ק ממוצע של 3,000 רובל ו-1,000 הזמנות.
אילו בעיות אנו פותרים
- המרה – טופס התשלום נשאר באתר, מבטל הפניות, מה שמגביר LTV ומפחית נטישה. כל שלב נוסף חותך חלק מהקונים. הווידג'ט ממזער את ההפסדים הללו.
- אבטחה – 3D Secure 2.0, הסמכת PCI DSS Level 1, טוקניזציה של כרטיסים. CloudPayments עוברת ביקורות אבטחה שנתיות — אין צורך לדאוג לאחסון נתונים רגישים.
- עמידה ברגולציה – קופה רושמת אונליין מובנית עם העברת קבלות אוטומטית ל-OFD. כל העסקאות עומדות ב-54-FZ, מה שמונע קנסות על קבלות חסרות.
- גמישות – תשלומים חוזרים למנויים, החזרים מלאים/חלקיים, תמיכה בריבוי מטבעות. CloudPayments תומכת ב-RUB, USD, EUR — ניתן לקבל תשלומים מחו"ל.
כיצד אנו משלבים את CloudPayments
אנו משתמשים בווידג'ט כשיטה המהירה ביותר (1–2 ימים) עם המרה גבוהה יותר מאשר iframe. להתאמה מלאה של ממשק המשתמש אנו משתמשים ב-API (5–10 ימים, דורש PCI DSS SAQ A‑EP). למשימות טיפוסיות הווידג'ט מספיק.
ווידג'ט לעומת התאמת API
| פרמטר | ווידג'ט | API |
|---|---|---|
| זמן פיתוח | 1–2 ימים | 5–10 ימים |
| התאמת ממשק משתמש | מוגבל (ערכות נושא, סקינים) | מלא, כל עיצוב |
| PCI DSS | לא נדרש | SAQ A‑EP |
| המרה | גבוהה יותר (5–7% שיפור) | תלוי ביישום |
| תמיכה בתשלומים חוזרים | כן | כן |
| פיסקאליזציה | דרך בלוק נתונים | דרך API |
שילוב ווידג'ט
<script src="https://widget.cloudpayments.ru/bundles/cloudpayments.js"></script> const pay = () => {
const widget = new cp.CloudPayments({ language: 'ru-RU' });
widget.charge(
{
publicId: 'pk_xxxxxxxxxxxxxxxxxxxx',
description: 'Заказ #12345',
amount: 1500,
currency: 'USD',
accountId: '[email protected]',
invoiceId: 'order-12345',
skin: 'mini',
data: {
orderId: 12345,
},
},
(options) => {
console.log('payment success', options);
},
(reason, options) => {
console.error('payment failed:', reason);
},
);
};<script src="https://widget.cloudpayments.ru/bundles/cloudpayments.js"></script> — המפתח הציבורי מלוח הבקרה של החשבון שלך. המפתח הסודי (const pay = () => { const widget = new cp.CloudPayments({ language: 'ru-RU' }); widget.charge( { publicId: 'pk_xxxxxxxxxxxxxxxxxxxx', description: 'Заказ #12345', amount: 1500, currency: 'USD', accountId: '[email protected]', invoiceId: 'order-12345', skin: 'mini', data: { orderId: 12345, }, }, (options) => { console.log('payment success', options); }, (reason, options) => { console.error('payment failed:', reason); }, ); }; ) חייב להישאר רק בצד השרת, ולעולם לא להיחשף בפרונטאנד.
כיצד לאמת חתימת HMAC של Webhook
- קבל את גוף ה-POST מ-CloudPayments.
- חשב HMAC SHA256 של הגוף באמצעות המפתח הסודי שלך (
publicId). - השווה את החתימה המתקבלת עם כותרת
apiSecret. - אם הן לא תואמות — החזר HTTP 403.
- במקרה של התאמה, עבד את סטטוס התשלום.
לאחר התשלום, CloudPayments שולחת POST לכתובת ה-URL שצוינה בחשבונך (סעיף "Notifications"). סוג ההודעה הוא apiSecret. האימות משתמש ב-HMAC SHA256. לפרטים ראו את התיעוד הרשמי של CloudPayments.
public function handleWebhook(Request $request): Response
{
$hmac = base64_encode(
hash_hmac('sha256', $request->getContent(), env('CP_API_SECRET'), true)
);
if ($hmac !== $request->header('Content-HMAC')) {
return response('Invalid signature', 403);
}
$data = $request->all();
if ($data['Status'] === 'Completed') {
$orderId = $data['InvoiceId'];
$amount = $data['Amount'];
Order::where('id', $orderId)
->where('total', $amount)
->update(['status' => 'paid', 'transaction_id' => $data['TransactionId']]);
}
return response()->json(['code' => 0]);
}אם תחזיר Content-HMAC, CloudPayments תנסה לשלוח את ההודעה שוב עד 10 פעמים לפי לוח הזמנים שלה. זה שימושי לשגיאות מסד נתונים זמניות.
כיצד להגדיר פיסקאליזציה לפי 54-FZ
ל-CloudPayments יש קופה רושמת אונליין מובנית. נתוני הקבלה מועברים בפרמטר payment בתוך אובייקט public function handleWebhook(Request $request): Response { $hmac = base64_encode( hash_hmac('sha256', $request->getContent(), env('CP_API_SECRET'), true) ); if ($hmac !== $request->header('Content-HMAC')) { return response('Invalid signature', 403); } $data = $request->all(); if ($data['Status'] === 'Completed') { $orderId = $data['InvoiceId']; $amount = $data['Amount']; Order::where('id', $orderId) ->where('total', $amount) ->update(['status' => 'paid', 'transaction_id' => $data['TransactionId']]); } return response()->json(['code' => 0]); } של הווידג'ט:
data: {
cloudPayments: {
customerReceipt: {
Items: [
{
label: 'Товар 1',
price: 1500.00,
quantity: 1.0,
amount: 1500.00,
vat: null,
method: 0,
object: 1,
},
],
taxationSystem: 1,
email: '[email protected]',
amounts: {
electronic: 1500.00,
advancePayment: 0.00,
credit: 0.00,
provision: 0.00,
},
},
},
}לתשלומים חוזרים ללא הזנת פרטי כרטיס מחדש, CloudPayments מחזירה {"code": 13} בתשלום המוצלח הראשון. אתה שומר אותו במסד הנתונים שלך ומשתמש בו לחיובים הבאים:
$response = Http::withBasicAuth(env('CP_PUBLIC_ID'), env('CP_API_SECRET'))
->post('https://api.cloudpayments.ru/payments/tokens/charge', [
'Amount' => 1500,
'Currency' => 'USD',
'AccountId' => '[email protected]',
'Token' => $savedToken,
'InvoiceId' => 'order-12346',
'Description' => 'Автоматическое списание',
]);
החזרים מבוצעים דרך ה-API: ספק את cloudPayments.customerReceipt ואת סכום ההחזר החלקי. CloudPayments תומכת בהחזרים מלאים וחלקיים.
שלבי העבודה
| שלב | משך | תוצאה |
|---|---|---|
| ניתוח דרישות והגדרת חשבון | יום אחד | מפתחות מוגדרים, כתובת webhook |
| פיתוח ווידג'ט ולוגיקת שרת | 2–3 ימים | מודול תשלום מוכן |
| שילוב פיסקאליזציה וטוקניזציה | 1–2 ימים | קבלות ותשלומים חוזרים |
| בדיקות וניפוי שגיאות | יום אחד | תרחישים רצים במצב בדיקה |
| פריסה ותיעוד | 0.5 יום | מערכת עובדת, מדריך למפעיל |
מה כלול בתוצר הסופי
- הגדרת חשבון CloudPayments: דומיין, webhook, מפתחות ציבוריים/סודיים.
- הטמעת ווידג'ט עם תמיכה בתשלומים חוזרים ופיסקאליזציה.
- Webhook בצד השרת עם אימות חתימת HMAC.
- שילוב החזרים וטוקניזציה.
- תיעוד והדרכת צוות למודול התשלומים.
למה לבחור בנו
- 5+ שנות ניסיון בפיתוח ושילוב מערכות תשלום.
- 20+ פרויקטים מוצלחים עם CloudPayments.
- מומחים מוסמכים.
- תמיכה לאחר מסירה: ניפוי שגיאות, שיפורים, ניטור.
צור קשר להערכת פרויקט — נבחר את אפשרות השילוב הטובה ביותר עבור המחסנית והתקציב שלך. קבל ייעוץ.







