שילוב SberPay: התקנה והגדרה
כשמנסים לחבר את SberPay לאתר, מפתחים נתקלים לא פעם במגבלות לא מובנות מאליהן: תמיכה איטית של הבנק, תיעוד לא מלא ומורכבויות בתשלום דו-שלבי. בניסיון שלנו, שילבנו את SberPay עשרות פעמים—למעלה מ-50 פרויקטים—ופיתחנו גישה אמינה שמבטיחה פעולה יציבה. לדוגמה, בפרויקט אחד צמצמנו את זמן עיבוד התשלום ב-40% על ידי הגדרה נכונה של התראות callback. להלן פרטים טכניים שיעזרו להימנע מטעויות אופייניות.
חיבור SberPay לאתר
SberPay אינו שער תשלום נפרד אלא אמצעי תשלום דרך אפליקציית Sberbank Online. נדרש הסכם סליקה עם Sberbank. לאחר החתימה, מונפקים פרטי גישה לסביבת בדיקה וסביבת ייצור. האימות מתבצע באמצעות userName + password או באמצעות token (מומלץ). השתמשו בטוקן—הוא מפחית את הסיכון לדליפת פרטי גישה פי 10 בהשוואה לאימות מבוסס סיסמה. עמלת העסקה תלויה בתעריף ומסתכמת באחוזים בודדים—יש לבדוק בעת חתימת ההסכם. עבור הזמנה טיפוסית של $90–130, ניתן לחסוך עד $9–13 על ידי הפחתת סיכון chargeback עם תשלום דו-שלבי.
למה לבחור בסליקת Sberbank?
סליקת Sberbank היא אחד משערי התשלום הנפוצים ביותר ברוסיה. היא תומכת בתשלומי כרטיסים, SberPay, קודי QR דרך SBP, ו-Apple Pay/Google Pay. האינטגרציה דרך REST API פשוטה, ותשלום דו-שלבי מאפשר תרחישים מורכבים. אנו מבטיחים פעולה תקינה של שער התשלום לאחר האינטגרציה, בהתבסס על ניסיון של 5+ שנים ולמעלה מ-50 פרויקטים מוצלחים. תשלום דו-שלבי יעיל פי 3 במניעת chargeback בהשוואה לתשלום חד-שלבי. החיסכון ממעבר לתשלום דו-שלבי יכול להגיע עד 10% מההכנסות—עבור הכנסות חודשיות של $9k–13k, מדובר בחיסכון של עד $900–1.3k.
חיבור לסליקת Sberbank
נדרש הסכם סליקה עם Sberbank. לאחר החתימה, מסופקים שם משתמש וסיסמה לסביבת בדיקה וסביבת ייצור.
| סביבה | כתובת URL |
|---|---|
| בדיקה | https://3dsec.sberbank.ru/payment/rest/ |
| ייצור | https://securepayments.sberbank.ru/payment/rest/ |
האימות מתבצע באמצעות userName + password בכל בקשה, או באמצעות token.
דוגמה לרישום הזמנה (PHP)
$response = Http::get('https://securepayments.sberbank.ru/payment/rest/register.do', [
'userName' => env('SBER_USERNAME'),
'password' => env('SBER_PASSWORD'),
'orderNumber' => 'order-12345',
'amount' => 150000, // в копейках
'returnUrl' => 'https://example.com/payment/return',
'failUrl' => 'https://example.com/payment/fail',
'description' => 'Заказ #12345',
'email' => '[email protected]',
'language' => 'ru',
'pageView' => 'DESKTOP', // или MOBILE
]);
$orderId = $response->json('orderId'); // ID в системе Сбербанка
$formUrl = $response->json('formUrl'); // URL платёжной страницы
לאחר קבלת $response = Http::get('https://securepayments.sberbank.ru/payment/rest/register.do', [ 'userName' => env('SBER_USERNAME'), 'password' => env('SBER_PASSWORD'), 'orderNumber' => 'order-12345', 'amount' => 150000, // в копейках 'returnUrl' => 'https://example.com/payment/return', 'failUrl' => 'https://example.com/payment/fail', 'description' => 'Заказ #12345', 'email' => '[email protected]', 'language' => 'ru', 'pageView' => 'DESKTOP', // или MOBILE ]); $orderId = $response->json('orderId'); // ID в системе Сбербанка $formUrl = $response->json('formUrl'); // URL платёжной страницы , הפנו את הלקוח לשם. Sberbank תציג דף תשלום עם כל האמצעים הזמינים, כולל SberPay, אם במכשיר של הקונה מותקנת Sberbank Online.
בדיקת סטטוס הזמנה
Sberbank תומכת בהתראות (callbacks), אך יש להגדיר אותן בנפרד בלוח הבקרה. גישה בטוחה יותר היא לבדוק בנוסף את הסטטוס ב-formUrl. בצעו בדיקה בצד השרת בארבעה שלבים:
- קבלו את
returnUrlמפרמטרי הבקשה. - שלחו בקשה ל-
orderId. - בדקו את השדה
getOrderStatusExtended.do. - אם הסטטוס הוא
orderStatus, עדכנו את ההזמנה במערכת שלכם.
public function paymentReturn(Request $request): RedirectResponse
{
$orderId = $request->query('orderId');
$status = Http::get('https://securepayments.sberbank.ru/payment/rest/getOrderStatusExtended.do', [
'userName' => env('SBER_USERNAME'),
'password' => env('SBER_PASSWORD'),
'orderId' => $orderId,
'language' => 'ru',
])->json();
// orderStatus: 0=зарегистрирован, 1=не оплачен, 2=оплачен, 3=авторизован,
// 4=аннулирован, 5=возврат, 6=АЗ отклонена банком покупателя
if ($status['orderStatus'] === 2) {
$localOrderId = $status['orderNumber']; // наш внутренний номер
Order::where('id', $localOrderId)->update(['status' => 'paid']);
return redirect('/orders/' . $localOrderId . '?paid=1');
}
return redirect('/cart?payment_failed=1');
}לעולם אל תסמכו רק על פרמטרי URL—תמיד בצעו בדיקה בצד השרת באמצעות 2. זה מפחית את סיכון ההונאה פי 5.
תשלום דו-שלבי
עבור שווקים מקוונים או הזמנות בתשלום מאוחר, מתאים מנגנון דו-שלבי: תחילה אישור (הקפאת כספים), ולאחר מכן חיוב לאחר המשלוח.
// Регистрация с флагом двухстадийной оплаты
Http::get('https://securepayments.sberbank.ru/payment/rest/registerPreAuth.do', [
// те же параметры что и register.do
]);
// Подтверждение списания после отгрузки
Http::get('https://securepayments.sberbank.ru/payment/rest/deposit.do', [
'userName' => env('SBER_USERNAME'),
'password' => env('SBER_PASSWORD'),
'orderId' => $sberbankOrderId,
'amount' => 150000,
]);
כספים מוקפאים ננעלים עד 30 יום. אם לא מאושרים בתוך תקופה זו, האישור מתבטל אוטומטית.
פיסקאליזציה
Sberbank תומכת בפיסקאליזציה באמצעות הקופה הרושמת שלה Atol Online, המשולבת בסליקה. נתוני הקבלה מועברים בפרמטר public function paymentReturn(Request $request): RedirectResponse { $orderId = $request->query('orderId'); $status = Http::get('https://securepayments.sberbank.ru/payment/rest/getOrderStatusExtended.do', [ 'userName' => env('SBER_USERNAME'), 'password' => env('SBER_PASSWORD'), 'orderId' => $orderId, 'language' => 'ru', ])->json(); // orderStatus: 0=зарегистрирован, 1=не оплачен, 2=оплачен, 3=авторизован, // 4=аннулирован, 5=возврат, 6=АЗ отклонена банком покупателя if ($status['orderStatus'] === 2) { $localOrderId = $status['orderNumber']; // наш внутренний номер Order::where('id', $localOrderId)->update(['status' => 'paid']); return redirect('/orders/' . $localOrderId . '?paid=1'); } return redirect('/cart?payment_failed=1'); } :
'orderBundle' => json_encode([
'customerDetails' => ['email' => '[email protected]'],
'cartItems' => [
'items' => [
[
'positionId' => 1,
'name' => 'Ð¢Ð¾Ð²Ð°Ñ 1',
'quantity' => ['value' => 1, 'measure' => 'ÑÑ'],
'itemAmount' => 150000,
'itemCode' => 'SKU-001',
'tax' => ['taxType' => 0], // 0=без ÐÐС
'itemPrice' => 150000,
],
],
],
]),
"} החזרים
Http::get('https://securepayments.sberbank.ru/payment/rest/refund.do', [
'userName' => env('SBER_USERNAME'),
'password' => env('SBER_PASSWORD'),
'orderId' => $sberbankOrderId,
'amount' => 75000, // частичный или полный возврат
]); מאפיינים ומגבלות
האתגר המרכזי בסליקת Sberbank הוא התמיכה האיטית. התשובה לבקשת חיבור אורכת 5–14 ימי עסקים, והפעלת סביבת הייצור לאחר הבדיקות אורכת עוד 3–5 ימים. התיעוד מתעדכן באופן לא סדיר; הגרסה העדכנית ביותר מתבקשת מהמנהל. עבור SberPay כאמצעי נפרד (ללא הזנת כרטיס), הלקוח חייב שתהיה מותקנת אצלו אפליקציית Sberbank Online—אמצעי זה אינו פועל על מחשב שולחני. ל-SberPay יש שיעור המרה גבוה פי 2 מתשלומי כרטיס רגילים במכשירים ניידים.
השוו בין אמצעי התשלום הזמינים:
| אמצעי | דרישות | עמלה (בקירוב) |
|---|---|---|
| כרטיסים | כל מכשיר | 2.5–3% |
| SberPay | iOS/Android + אפליקציה | 2–2.5% |
| SBP QR | כל מכשיר עם מצלמה | 0.5–1.5% |
מה כלול
- ייעוץ בבחירת תעריף והכנת מסמכים.
- הגדרת סביבות סליקה לבדיקה ולייצור.
- אינטגרציית REST API: רישום הזמנות, בדיקת סטטוסים, החזרים.
- הטמעת תשלום דו-שלבי ופיסקאליזציה (במידת הצורך).
- בדיקת כל התרחישים (תשלום מוצלח, סירוב, החזר).
- מסירת תיעוד והדרכה לצוות שלכם.
- תמיכה עם אחריות ל-30 יום לאחר ההשקה.
לוח זמנים ומחירים
לוחות הזמנים של האינטגרציה תלויים במורכבות: בין 3 ל-14 ימי עסקים. המחירים מחושבים באופן אישי—אנו מעריכים את ההיקף לאחר ביקורת על הפרויקט שלכם. כדי לזרז את התהליך, צרו קשר—אנו יכולים להכין הסכם תוך יומיים. הזמינו שילוב SberPay במפתח אחד—אנו מגדירים אותו מהחוזה ועד להשקת הייצור. קבלו ייעוץ על אינטגרציה—אנו מעריכים את הפרויקט שלכם תוך יום אחד.







