Хранение и выдача электронных товаров после их оплаты

sonya2003

Создатель
Регистрация
6 Окт 2007
Сообщения
25
Реакции
2
Понадобилось написать модуль для продажи электронных товаров (архивы текстовых файлов). Возникли проблемы с организацией хранения таких товаров и мгновенной продажей после оплаты. Как хранить ценные файлы на сервере, как происходит пометка заказа что он оплачен и т.д.? Для оплаты наверное надо использовать секретный ключ, иначе можно было бы попросту подделать переход с сайта системы оплаты и получить товар. Подскажите пожалуйста где можно найти материал на эту тему, или готовый скрипт но открытый, что бы там можно было подсмотреть организацию хранения и оплаты цифровых товаров. Да и вообще подскажите все что будет полезно в этом плане, уверен где то же есть статьи или примеры модулей.
 
Здесь подробная информация с примерами о оплате, почитай на досуге.
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Схема работы того же плати ру - оплатили и получили на почту, файлы хранятся у вас на сервере и путь никому не известен, так же для доп защиты кладёте в папку с файлами .htaccess файл и запрещаете доступ к ней, создаете скрипт оплаты и проверки оплаты, если оплачено посылаете файлик на указаный майл
 
Здесь подробная информация с примерами о оплате, почитай на досуге.

Почитала на досуге )) Вопрос был немного в другом, по взаимодействию с платежными системами информации много, а вот по безопасному хранению файлов и их передаче покупателям после оплаты информации не нашла (( в приведенном вами примере покупателям направляется текстовая информация из базы данных, меня интересует передача файлов.
 
Схема работы того же плати ру - оплатили и получили на почту, файлы хранятся у вас на сервере и путь никому не известен, так же для доп защиты кладёте в папку с файлами .htaccess файл и запрещаете доступ к ней, создаете скрипт оплаты и проверки оплаты, если оплачено посылаете файлик на указаный майл

А в случае если у покупателя нет майла, как сделать временные ссылки на файлы после оплаты
 
А в случае если у покупателя нет майла, как сделать временные ссылки на файлы после оплаты
Как он тогда в платёжных системах зарегистрировался?)
Генерировать ссылку через htaccess/php, сверять ip, сессию/кукисы, браузер итд
 
Почитала на досуге )) Вопрос был немного в другом, по взаимодействию с платежными системами информации много, а вот по безопасному хранению файлов и их передаче покупателям после оплаты информации не нашла (( в приведенном вами примере покупателям направляется текстовая информация из базы данных, меня интересует передача файлов.

Ну а кто вам мешает вместо выдачи текстовой информации выдавать ссылку на скачивания?

Вот небольшой пример как можно организовать выдачу файла. Переделать под любой случай без проблем будет.

Генерируем ссылку на скачивание
PHP:
$filedata = rawurlencode (base64_encode ($member_id['login'] . "||" . $member_id['email'] . "||" . $license['product_name'] . "||" . $license['product_version'] . "||" . md5 (md5 ($member_id['login'] . $member_id['email'] . DB_HOST . DB_NAME . DB_PASS))));
$filelink = "/index.php?module=download&id=" . $filedata;


PHP:
if (isset ($_REQUEST['id'])) {
    $id = trim (strip_tags ($_REQUEST['id']));
    $data_arr = explode ("||", base64_decode (@rawurldecode ($id)));

    $member_login = $data_arr[0];
    $member_email = $data_arr[1];
    $product_name = $data_arr[2];
    $product_version = $data_arr[3];

    if (md5 (md5 ($member_id['login'] . $member_id['email'] . DB_HOST . DB_NAME . DB_PASS)) != $data_arr[4]) die ('ID not valid!');

    $sql = "SELECT user_id FROM clients_users WHERE login = '$member_login' AND email = '$member_email'";
    $result = $db->query ($sql) or die ($db->error);
    $row = $result->fetch_assoc();

    if ($row['user_id']) {

        $filefolder = ROOT_DIR . "/files/" . $product_name . "/";
        $filename = $product_name . "_v" . $product_version . ".zip";
        $file = $filefolder . $filename;

        if (file_exists ($file)) {

            header ("Content-Disposition: attachment; filename=" . basename ($file) . ";");
            echo file_get_contents ($file);

        }  else {

            $infomessage .= msgbox ("Ошибка<br>", "Запрошеный файл не найден! <a href=\"/panel.html\">Вернуться назад</a>", 1);

        }

    } else {

        die ('USER not valid!');

    }

} else {

    header ('Location: /panel.html');
    exit;

}
 
Последнее редактирование:
Назад
Сверху