שילבנו את ERIP (מרחב הסדרים ומידע אחיד) בעשרות אתרים—מחנויות מקוונות ועד שירותי תשלום. ללא מערכת זו, אתם מפסידים עד 40% מהקונים מבלארוס: הם פשוט לא יכולים לשלם בדרך המועדפת עליהם. ERIP היא מערכת תשלומים ממשלתית המכסה מעל 99% מהבנקים והמסופים (נתונים רשמיים מהבנק הלאומי של הרפובליקה של בלארוס). משתמשים משלמים דרך בנקאות אינטרנט (SDBO של Sberbank, Belaruskbank), כספומטים ואפליקציות מובייל. אנו מבטיחים עיבוד נכון של כל תשלום ותמיכה מלאה בכל שלבי האינטגרציה: מבחירת סוכן בנק ועד השקה בייצור.
עם ניסיון של למעלה מ-7 שנים ו-15 פרויקטים שהושלמו, אנו מבטיחים אינטגרציית ERIP אמינה. עלויות אינטגרציה טיפוסיות נעות בין 500 ל-2000 דולר, עם פוטנציאל חיסכון של עד 20% בעמלות עסקה בהשוואה לשיטות תשלום חלופיות.
מדוע אינטגרציית ERIP היא חובה?
ללא ERIP, אתם מאבדים נתח משמעותי מהקהל שלכם. על פי סטטיסטיקות, מעל 60% מהמשתמשים הבלארוסים מעדיפים לשלם דרך ERIP, במיוחד דרך SDBO של Sberbank ו-Belaruskbank. אם האתר שלכם לא תומך במערכת זו, הלקוחות עוברים למתחרים. יתרה מכך, עבור סוגי עסקים רבים (חנויות מקוונות, שירותי דיור ושירותים, ביטוח), קיום ERIP הוא דרישה חוקית.
ארכיטקטורת ERIP
ישנן שתי דרכים להתחבר:
- דרך סוכן בנק — הבנק (Belaruskbank, Priorbank, BSG Bank וכו') מספק API של ERIP עבור בקשות Check ו-Pay. הסכם עם בנק אחד, API בנקאי.
- ישירות דרך OSMP/FTOS — דורש הסכם נפרד עם מפעיל ERIP, תשתית מורכבת יותר.
עבור רוב הפרויקטים, נבחר המסלול של סוכן בנק. הבה נבחן אינטגרציה דרך האפשרויות הנפוצות ביותר.
איך לבחור סוכן בנק?
| סוכן בנק | סוג API | זמן תגובה ממוצע | מורכבות אינטגרציה |
|---|---|---|---|
| BSG Bank | WSCP (XML) | ~200 אלפיות השנייה | בינונית |
| Belaruskbank | שירות Web (SOAP) | ~500 אלפיות השנייה | גבוהה |
| Priorbank | REST (JSON) | ~150 אלפיות השנייה | נמוכה |
ה-API של WSCP של BSG Bank מעבד בקשות בכ-200 אלפיות השנייה בממוצע, מהיר פי 2.5 משירות ה-web של Belaruskbank (500 אלפיות השנייה). Priorbank מציע API מודרני מסוג REST עם זמן השהיה מינימלי. בחירת הבנק האופטימלי תלויה במשימות שלכם—אנו עוזרים בבחירה ובתיעוד.
איך זה עובד
ERIP פועל במצב Pull: זו לא סכמת הפנייה. הקונה מזין את מספר השירות שלכם ב-ERIP (לדוגמה, 'חנויות מקוונות → החנות שלכם → הזן מספר הזמנה'). ERIP מבקש מידע על ההזמנה מהשרת שלכם (בקשת Check), ולאחר התשלום שולח הודעה (בקשת Pay).
השרת שלכם חייב ליישם מטפל בבקשות XML מ-ERIP.
דוגמת קוד PHP למטפל ERIP
class EripController extends Controller
{
public function handle(Request $request): Response
{
$xml = simplexml_load_string($request->getContent());
$command = (string)$xml->command['type'];
return match ($command) {
'check' => $this->check($xml),
'pay' => $this->pay($xml),
default => $this->error('Unknown command'),
};
}
private function check(\SimpleXMLElement $xml): Response
{
$accountNo = (string)$xml->customer->account;
$order = Order::where('erip_account', $accountNo)
->where('status', 'pending')
->first();
if (!$order) {
return $this->xmlResponse(200, 'Услуга не найдена');
}
$responseXml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<response>
<result>
<errorCode>0</errorCode>
<errorDescription>Успешно</errorDescription>
</result>
<customer>
<account>{$accountNo}</account>
</customer>
<fields>
<field tag="250" tagName="Сумма к оплате" value="{$order->total}"/>
<field tag="251" tagName="Номер заказа" value="{$order->id}"/>
</fields>
<amount>{$order->total}</amount>
<currency>933</currency>
<info>Заказ #{$order->id} от {$order->created_at->format('d.m.Y')}</info>
</response>
XML;
return response($responseXml, 200)
->header('Content-Type', 'application/xml; charset=utf-8');
}
private function pay(\SimpleXMLElement $xml): Response
{
$accountNo = (string)$xml->customer->account;
$transId = (string)$xml->transaction['id'];
$amount = (float)$xml->transaction->amount;
$paymentDate = (string)$xml->transaction['date'];
$order = Order::where('erip_account', $accountNo)
->where('status', 'pending')
->lockForUpdate()
->first();
if (!$order) {
return $this->xmlResponse(100, 'Счёт не найден');
}
if (abs($amount - $order->total) > 0.01) {
return $this->xmlResponse(200, 'Неверная сумма');
}
// Идемпотентность — не обрабатывать повторно
if (EripTransaction::where('transaction_id', $transId)->exists()) {
return $this->xmlResponse(0, 'Уже обработан');
}
DB::transaction(function () use ($order, $transId, $amount, $paymentDate) {
EripTransaction::create([
'transaction_id' => $transId,
'order_id' => $order->id,
'amount' => $amount,
'paid_at' => $paymentDate,
]);
$order->update(['status' => 'paid']);
});
return $this->xmlResponse(0, 'Принято');
}
private function xmlResponse(int $code, string $message): Response
{
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<response>
<result>
<errorCode>{$code}</errorCode>
<errorDescription>{$message}</errorDescription>
</result>
</response>
XML;
return response($xml, 200)
->header('Content-Type', 'application/xml; charset=utf-8');
}
} מספר חשבון ERIP
לכל הזמנה מוקצה מספר חשבון ייחודי. בדרך כלל זהו מזהה ההזמנה עצמו, אך חלק מהבנקים דורשים פורמט ספציפי (לדוגמה, מספר בן 15 ספרות). מספר זה מוצג לקונה ומוזן במסוף ERIP.
יש ליצור את מספר החשבון מראש ולהציגו לקונה בעמוד התשלום:
// Генерация номера ЕРИП-счёта $order->erip_account = str_pad($order->id, 12, '0', STR_PAD_LEFT); קוד QR עבור ERIP
כדי לפשט תשלום דרך אפליקציות מובייל, ניתן ליצור קוד QR עם נתוני ERIP. פורמט ה-QR מוגדר על ידי סוכן הבנק; בדרך כלל מדובר בקישור עמוק כמו:
erip://pay?service_code=XXXXX&account=000000012345 use Endroid\QrCode\QrCode;
$qrCode = QrCode::create("erip://pay?service_code={$serviceCode}&account={$order->erip_account}")
->setSize(200); הגדרה בעץ השירותים של ERIP
השירות שלכם חייב להיות רשום בעץ השירותים של ERIP—זה נעשה דרך סוכן הבנק. ההליך כולל: מילוי בקשה, הסכמה על מיקום בעץ (לדוגמה, 'חנויות מקוונות → [אזור] → שם חנות'), בדיקות. רישום ובדיקות אורכים בין 5 ל-15 ימי עסקים. שינוי המיקום בעץ לאחר הרישום הוא בקשה נפרדת ועוד 5–10 ימים.
אבטחה
בקשות מ-ERIP חייבות להתקבל רק מכתובות ה-IP של סוכן הבנק. רשימת ה-IP מסופקת על ידי הבנק. בנוסף, השתמשו ב-HTTPS עם אימות הדדי (mutual TLS) או חתימת HMAC בהתאם לבנק.
// Middleware для проверки IP
public function handle(Request $request, Closure $next): Response
{
$allowedIps = explode(',', env('ERIP_ALLOWED_IPS'));
if (!in_array($request->ip(), $allowedIps)) {
return response('Forbidden', 403);
}
return $next($request);
} מה כלול בעבודה?
- ניתוח תשתית התשלומים הנוכחית
- בחירה וחיבור סוכן בנק (סיוע במסמכים)
- יישום מטפל בבקשות Check/Pay ב-PHP
- יצירת קודי QR לאפליקציות מובייל
- רישום בעץ השירותים של ERIP (תמיכה)
- בדיקות בסביבות בדיקה וייצור
- הדרכת הצוות שלכם על המערכת
- תמיכה לאחר ההשקה (חודש חינם)
הזמינו ביקורת על מערכת התשלומים הנוכחית שלכם להתאמה ל-ERIP. אנו נעזור לכם לחבר תשלומים במהירות וללא שגיאות.







