Введение в программирование на PHP5


Отправка информации о заказе


Страница shopcart.php содержит кнопку "Checkout" в отдельной форме, отличной от той, которая используется для обновления покупаемого количества товара. Это связано с тем, что форма оформления передается компании по обслуживанию кредитных карт, в то время как форма обновления снова соединяется со страницей shopcart.php.

Пример I.15.

(html, txt)

Для целей этого примера ACTION URL формы будет

../php/ecommerce/creditcheck.php

Этот адрес соединяется с модельной компанией обслуживания кредитных карт, которая является просто страницей в каталоге сайта. Но можно точно так же просто соединиться с реальной компанией.

Обычный метод взаимодействия с компанией по обслуживанию кредитных карт состоит в передаче информации, связанной с текущей покупкой с помощью множества скрытых полей формы. Как минимум компании необходимо знать: 1) общую стоимость покупки, 2) идентификатор сайта, присылающего информацию (ID счета в компании по обслуживанию кредитных карт), и 3) URL страницы, на которую будет возвращено подтверждение о выполнении транзакции. Сайту продаж необходимо также отправить 4) идентификатор заказчика, который может возвращаться вместе с подтверждением. Эти четыре скрытых поля содержатся в форме с кнопкой "Checkout".

Поле ReturnURL используется для предоставления адреса, в который возвращается информация компании кредитных карт. В данном примере информация возвращается на страницу ordercapture.php по адресу

../php/ecommerce/ordercapture.php

Заказчик возвращается из компании кредитных карт на эту промежуточную страницу, прежде чем попасть на страницу salesorder.php, на которой представляется окончательный заказ на покупку и подтверждающее сообщение. На этой странице ordercapture.php мы получаем возвращаемую из компании кредитных карт информацию для создания записи о заказе на продажу и очистки корзины покупателя. Заказчик не видит эту страницу. Она содержит только сценарий PHP для обработки возвращаемой информации и затем автоматически переадресуется на страницу salesorder.php для вывода заказчику. Позже мы рассмотрим это подробнее.

Поле CompanyID содержит идентификатор счета сайта, отправившего заказ. В качестве такого идентификатора мы применяем "Webwarehouse.com". При использовании этого URL для проверки кредитных карт можно ввести в это поле любую текстовую строку.

Поле CustomerID содержит идентификатор заказчика. Это значение возвращается компанией кредитных карт, чтобы мы знали, какому заказчику или какому заказу соответствует возвращаемая информация. Здесь для идентификации заказчика используется значение $_SESSION[OrderNo].

Поле Amount содержит общую стоимость заказа. Значение этого поля задается с помощью переменной OrderTotal, которая доступна на этой странице.

После отправки формы остается только подождать. Компания кредитных карт выполняет в это время обработку. Когда компания завершит обработку, она автоматически создает адрес ReturnURL для возврата на страницу ordercapture.php, где продолжается обработка.


../php/ecommerce/ordercapture.php

Заказчик возвращается из компании кредитных карт на эту промежуточную страницу, прежде чем попасть на страницу salesorder.php, на которой представляется окончательный заказ на покупку и подтверждающее сообщение. На этой странице ordercapture.php мы получаем возвращаемую из компании кредитных карт информацию для создания записи о заказе на продажу и очистки корзины покупателя. Заказчик не видит эту страницу. Она содержит только сценарий PHP для обработки возвращаемой информации и затем автоматически переадресуется на страницу salesorder.php для вывода заказчику. Позже мы рассмотрим это подробнее.

Поле CompanyID содержит идентификатор счета сайта, отправившего заказ. В качестве такого идентификатора мы применяем "Webwarehouse.com". При использовании этого URL для проверки кредитных карт можно ввести в это поле любую текстовую строку.

Поле CustomerID содержит идентификатор заказчика. Это значение возвращается компанией кредитных карт, чтобы мы знали, какому заказчику или какому заказу соответствует возвращаемая информация. Здесь для идентификации заказчика используется значение $_SESSION[OrderNo].

Поле Amount содержит общую стоимость заказа. Значение этого поля задается с помощью переменной OrderTotal, которая доступна на этой странице.

После отправки формы остается только подождать. Компания кредитных карт выполняет в это время обработку. Когда компания завершит обработку, она автоматически создает адрес ReturnURL для возврата на страницу ordercapture.php, где продолжается обработка.


Содержание раздела