Когда клиент щелкнет по кнопке Купить, с помощью сценария process.php обрабатываются данные, касающиеся платежа.
Результаты успешного выполнения операции показаны на рисунке.
process.php — сценарий обработки платежа и ввода его результатов
<?php
// Включить наш набор функций
require_once ('book_sc_fns.php');
// Для покупательской тележки необходимо запустить сеанс
session_start();
$pagename = "Окончательный расчет";
$keywords= "";
$description="Интернет-магазин ABC-Book. Книги традиционные и на электронных носителях";
do_html_header($pagename, $keywords, $description);
echo "<section class=blok>";
echo "<div class=col1>";
echo "<header>";
echo "<h5>Категория книг</h5>";
echo "</header>";
echo "<nav>";
// Извлечь категории из базы данных
$cat_array = get_categories();
display_categories($cat_array);
echo "</nav>";
echo "</div>";
echo "<div class=col2>";
echo "<header>";
echo "<h2>$pagename</h2>";
echo "</header>";
// Создать короткие имена переменных
$card_type = $_POST['card_type'];
$card_number = $_POST['card_number'];
$card_month = $_POST['card_month'];
$card_year = $_POST['card_year'];
$card_name = $_POST['card_name'];
if($_SESSION['cart']&&$card_type&&$card_number&&
$card_month&&$card_year&&$card_name )
{
// Вывести тележку без изображений товара и не разрешая изменения
display_cart($_SESSION['cart'], false, 0);
display_shipping(calculate_shipping_cost());
if(process_card($_POST))
{
// Очистить покупательскую тележку
session_destroy();
echo 'Спасибо за то, что воспользовались нашим сайтом для совершения
покупок. Ваш заказ размещен.';
display_button('index.php', 'continue-shopping', 'Продолжить покупки');
}
else
{
echo 'Невозможно обработать вашу кредитную карточку.';
echo 'Пожалуйста, свяжитесь с выдавшей ее организацией либо
повторите ввод.';
display_button('purchase.php', 'back', 'Назад');
}
}
else
{
echo 'Вы заполнили не все поля. Пожалуйста, повторите попытку.<hr />';
display_button('purchase.php', 'back', 'Назад');
}
echo "</div>";
echo"</section>";
do_html_footer();
?>
Мы обрабатываем данные по кредитной карточке, предоставленной клиентом, и в случае, если все завершается успешно, уничтожаем сеанс клиента.
В нашем упрощенном примере функция обработки данных кредитной карточки просто возвращает значение true. Если быть точнее, сначала необходимо предусмотреть набор проверок на допустимость(в том числе, проверку, не истек ли срок действия кредитной карточки, а также корректность введенного номера карточки), и только затем переходить к совершению платежа.
В реальном сайте потребуется принять решение, какой механизм транзакций будет использоваться.
Существуют следующие возможности:
- Заключить договор с поставщиком расчетных (клиринговых) транзакций. Здесь имеется множество альтернатив, зависящих от региона, в котором вы проживаете. Некоторые поставщики предлагают клиринговые услуги в реальном времени. Необходимость таких операций зависит от услуг, предлагаемых вашим сайтом. Если вы осуществляете обслуживание в онлайновом режиме, то, скорее всего, возможность совершения платежей в реальном времени вам понадобится. В этом случае, если вы обеспечиваете только продажу и доставку некоторых товаров, это менее важно. В любом случае, поставщики клиринговых транзакций освобождают вас от довольно-таки неприятной ответственности за хранение номеров кредитных карточек.
- Отправлять номера кредитных карточек себе самому в зашифрованных сообщениях электронной почты, например, с использованием PGP или GPG. После получения и дешифрации таких сообщений транзакции можно обрабатывать вручную.
- Хранить номера кредитных карточек в своей базе данных. Использовать этот метод настоятельно не рекомендуется, если вы не уверены, что должным образом обеспечили высочайшую степень защищенности своей системы.
На этом обзор модулей, реализующих концепции покупательской тележки и платежей, завершен
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться