מוצרים דיגיטליים ב-1C-Bitrix: הגדרת הגנה ומשלוח

מוצרים דיגיטליים ב-1C-Bitrix: הגדרת הגנה ומשלוח לעתים קרובות אנו נתקלים במצב: לקוח מוכר ספרים אלקטרוניים, רישיונות או מדריכי וידאו, אך לאחר התשלום המייל עם הקובץ אינו מגיע. או שקישור ההורדה עובד ללא הגבלת זמן, או שהקובץ נגיש ללא תשלום דרך ד
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
מוצרים דיגיטליים ב-1C-Bitrix: הגדרת הגנה ומשלוח
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1460
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1019
  • פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    764
  • פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    882
  • פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    809
  • פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1165

מוצרים דיגיטליים ב-1C-Bitrix: הגדרת הגנה ומשלוח

לעתים קרובות אנו נתקלים במצב: לקוח מוכר ספרים אלקטרוניים, רישיונות או מדריכי וידאו, אך לאחר התשלום המייל עם הקובץ לא מגיע. או שקישור ההורדה עובד ללא הגבלת זמן, או שהקובץ נגיש ללא תשלום דרך ניחוש כתובת URL ישירה. כל שלוש הבעיות הן תוצאה של הגדרות שגויות של סוג המוצר והגנת הקבצים. עם ניסיון של למעלה מ-10 שנים עם Bitrix, עבדנו על עשרות מקרים כאלה ופיתחנו גישה אמינה שאנו מיישמים בכל פרויקט. לדוגמה, בפרויקט אחד עם קורסים מקוונים, צמצמנו את זמן משלוח הקבצים מ-5 דקות ל-30 שניות לאחר התשלום — פי 10 מהר יותר ממנגנון המייל הסטנדרטי.

בעיות שאנו פותרים

הגנת הקבצים המוגדרת כברירת מחדל אינה מספיקה

כברירת מחדל, קבצים מועלים ל-TYPE_ELECTRONICAL ונגישים לכל מי שיודע את כתובת ה-URL הישירה. זו פגיעות קריטית עבור חומרים בתשלום. הרכיב הסטנדרטי 5 אינו משנה זאת. הפתרון הוא להעביר קבצים לספרייה מוגנת וליצור קישורים זמניים. בפרויקט אחד, גילינו ש-15% מתעבורת הקבצים הגיעה ממשתמשים שלא שילמו — לאחר יישום ההגנה, הדליפה נפסקה לחלוטין.

משלוח איטי לאחר תשלום

המנגנון הסטנדרטי משתמש במטפל האירועים TYPE כדי לשלוח מייל עם קישורי הורדה. אך אם יש הזמנות רבות, תורי מיילים עלולים לגרום לעיכובים. אנו ממליצים בנוסף להציג את הקישור בחשבון האישי מיד לאחר התשלום, מה שמאיץ את המשלוח.

קישורי הורדה ללא הגבלת זמן או לא מוגנים

ללא ניהול נכון של טוקנים, קישורים יכולים להיות משותפים ללא הגבלה או להישאר תקפים לנצח. קישורים זמניים עם תפוגה ומגבלת מספר הורדות הם חיוניים.

איך אנחנו עושים זאת

סוג המוצר וצירוף הקובץ

מוצר דיגיטלי ב-Bitrix הוא מוצר עם סוג b_catalog_product (ערך FILE) בשדה b_catalog_product של הטבלה FILE_ID. הקובץ להורדה מצורף דרך מאפיין אינפובלוק מסוג "קובץ" (b_file) או דרך השדה המיוחד \Bitrix\Catalog\ProductTable::update($productId, [ 'TYPE' => \Bitrix\Catalog\ProductTable::TYPE_ELECTRONICAL, ]); // Прикрепление файла через свойство инфоблока \CIBlockElement::SetPropertyValuesEx($productId, $iblockId, [ 'DIGITAL_FILE' => [ 'VALUE' => \CFile::MakeFileArray('/path/to/file.zip'), ], ]); ב-/upload/.

הגדרת הסוג והקובץ:

\Bitrix\Catalog\ProductTable::update($productId, [ 'TYPE' => \Bitrix\Catalog\ProductTable::TYPE_ELECTRONICAL, ]); // Прикрепление файла через свойство инфоблока \CIBlockElement::SetPropertyValuesEx($productId, $iblockId, [ 'DIGITAL_FILE' => [ 'VALUE' => \CFile::MakeFileArray('/path/to/file.zip'), ], ]); 

הגנה על קבצים מגישה ישירה

קבצי מוצרים דיגיטליים לא צריכים להיות מאוחסנים ב-bitrix:sale.personal.order עם גישת HTTP ישירה. המנגנון הסטנדרטי של Bitrix משתמש בתיקיית /upload/ עם כלל ב-/upload/protected/ או ב-nginx שמונע גישה ישירה. ההורדה מתבצעת דרך כתובת URL מוגנת שנוצרת על ידי המערכת.

הגדרת nginx להגנה על הספרייה:

location /upload/protected/ { deny all; return 403; } 

הגישה לקובץ ניתנת דרך הרכיב .htaccess או מטפל נפרד שבודק את סטטוס התשלום של ההזמנה ומייצר כתובת URL זמנית.

האצת משלוח הקבצים לאחר תשלום

הגישה הסטנדרטית משתמשת באירוע location /upload/protected/ { deny all; return 403; } במודול bitrix:sale.personal.order. עם התשלום, המערכת עוברת על פריטי העגלה, מוצאת מוצרים עם OnSaleOrderPaid, ושולחת קישור הורדה למייל הלקוח. כדי למנוע עיכובים, אנו גם מציגים את הקישור מיד בחשבון האישי.

מגבלות מספר הורדות ותפוגת קישורים מנוהלות דרך מאפייני המוצר. למודול הקטלוג הסטנדרטי אין מונה הורדות מובנה — אנו מיישמים זאת בהתאמה אישית באמצעות טבלה נפרדת או מאפייני הזמנה.

דוגמה למטפל הורדת קבצים עם בדיקת הרשאות:

// В обработчике запроса на скачивание $orderId = (int)$_GET['order']; $productId = (int)$_GET['product']; $hash = $_GET['hash']; // Проверить токен $expected = md5($orderId . $productId . $userId . SITE_ID . $_SERVER['HTTP_HOST']); if ($hash !== $expected) { die('Access denied'); } // Проверить оплаченность заказа $order = \Bitrix\Sale\Order::load($orderId); if (!$order || $order->isPaid() !== true) { die('Order not paid'); } // Выдать файл $fileId = getDigitalFileByProduct($productId); $file = \Bitrix\Main\IO\File::createInstance(\CFile::GetPath($fileId)); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($file->getPath()) . '"'); $file->readFile(); 

תפוגת טוקן

קישור זמני חייב לפוג. גישה פשוטה היא לכלול חותמת זמן בחתימה ולדחות בקשות ישנות מ-N שעות:

$timestamp = (int)$_GET['ts']; if (time() - $timestamp > 86400) { // 24 часа die('Link expired'); } $expected = md5($orderId . $productId . $userId . $timestamp . SITE_KEY); 

כדי להגביל את מספר ההורדות, אנו יוצרים טבלה עם רשומות sale. כל הורדה מגדילה את המונה; בחריגה מהמגבלה, הגישה נחסמת.

הגדרות מלאי למוצרים דיגיטליים

למוצרים דיגיטליים בדרך כלל אין מלאי פיזי. ב-TYPE = 5, אנו מגדירים catalog ו-// В обработчике запроса на скачивание $orderId = (int)$_GET['order']; $productId = (int)$_GET['product']; $hash = $_GET['hash']; // Проверить токен $expected = md5($orderId . $productId . $userId . SITE_ID . $_SERVER['HTTP_HOST']); if ($hash !== $expected) { die('Access denied'); } // Проверить оплаченность заказа $order = \Bitrix\Sale\Order::load($orderId); if (!$order || $order->isPaid() !== true) { die('Order not paid'); } // Выдать файл $fileId = getDigitalFileByProduct($productId); $file = \Bitrix\Main\IO\File::createInstance(\CFile::GetPath($fileId)); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($file->getPath()) . '"'); $file->readFile(); — כך שהמלאי לא מנוטר והמוצר תמיד זמין. אם $timestamp = (int)$_GET['ts']; if (time() - $timestamp > 86400) { // 24 часа die('Link expired'); } $expected = md5($orderId . $productId . $userId . $timestamp . SITE_KEY); עם מלאי אפס, החנות תחסום רכישות, מה שאין בו היגיון עבור מוצרים דיגיטליים.

השוואה בין הגישה הסטנדרטית לגישה המותאמת אישית

תכונה גישה סטנדרטית הגישה המותאמת אישית שלנו
זמן משלוח קובץ 2-5 דקות (מייל) מיידי (חשבון אישי)
הגנה מגישה ישירה לא קישורים זמניים + nginx
מגבלת הורדות לא נתמך מונה מותאם אישית
עלות יישום כלול ברישיון נקבע באופן פרטני

בעיות נפוצות ופתרונות

בעיה פתרון
הורדת קבצים ללא תשלום הגן על הספרייה עם nginx, צור קישורים זמניים
קישור הורדה עובד ללא הגבלת זמן הוסף חותמת זמן לטוקן, בדוק זמן חיים
מייל עם קובץ מגיע באיחור הצג קישור מיד בחשבון האישי לאחר התשלום

מה כלול בהגדרת הגנת המוצרים הדיגיטליים שלנו

  • ביקורת קטלוג נוכחית: בדיקת סוגי מוצרים ומיקומי קבצים.
  • יצירת ספריית (order_id, product_id, user_id, downloads_count, max_downloads) מוגנת עם הגדרת nginx.
  • הגדרת מטפל התשלום b_catalog_product.
  • יישום יצירת קישורים זמניים עם אימות הרשאות.
  • אינטגרציה עם חשבון אישי — הצגת קישור מיד לאחר התשלום.
  • בדיקת כל התרחישים (תשלום, תפוגה, חריגה ממגבלה).
  • תיעוד לתחזוקה שוטפת.
פרטים טכניים של יישום הטוקן

הטוקן נוצר כחותך באמצעות הנוסחה QUANTITY_TRACE = 'N'. ה-secret_key מאוחסן בקובץ התצורה והוא ייחודי לכל אתר. אורך חיי הטוקן מוגדר בהגדרות המודול — בדרך כלל 24 שעות עבור רוב הפרויקטים.

הערכות זמנים

ההתקנה בדרך כלל אורכת בין 2 ל-5 ימי עסקים, תלוי בגודל הקטלוג ובדרישות ההתאמה האישית. אנו תמיד מתחילים עם ביקורת טכנית חינמית כדי לספק הערכה מדויקת.

למה לסמוך עלינו?

אנו מתמחים ב-Bitrix מאז 2012 (למעלה מ-10 שנים). השלמנו יותר מ-50 פרויקטים הכוללים מוצרים דיגיטליים למסחר אלקטרוני, פלטפורמות חינוכיות ושירותי הפצת תוכן. עיבדנו למעלה מ-500,000 הורדות ללא דליפה אחת. אנו משתמשים רק ב-API רשמיים (CommerceML, REST) ואיננו פוגעים בארכיטקטורה. אנו מספקים אחריות על הפונקציונליות המיושמת.

קבלו ייעוץ חינמי על הגדרת הגנה למוצרים הדיגיטליים שלכם — נעזור לכם ליישם פתרון אמין לפרויקט שלכם. צרו קשר כדי לדון בפרטים ובזמנים.