Forum Webscript.Ru
Программирование => Perl => Тема начата: Phoinix от 25 Февраля 2005, 16:14:56
-
Перевожу один интернет магазин с PHP на Perl.
Все хорошо, но нужен совет:
При подтверждении окончательной формы в которую заносится номер кредитной карточки, запрос идет не на платежную систему, а на отдельный скрипт, который пересобирает заново запрос и отправляет куда нужно.
Единственно, чем примечателен скрипт, так принудительным указанием HTTP_REFERER.
Сама платежная система переадресует на другой (результирующий) скрипт магазина. В итоге, в качестве результата запроса первого скрипта выводится результат запроса второго скрипта после переадресации платежной системы.
IMHO довольно гемморно сделано. Тем более, что мне не нравится, так это возможность дублирования запроса к платежной системе.
Неужели настолько часто отсутсвует в заголовке HTTP_REFERER, что приходится делать подобную рокировку? (Платежная система не принимает запросы при отсутсвии рефера или его не соостветсвия)
-
Может стоит работать через 2checkout (http:////http://www.2checkout.com/cgi-bin/aff.2c?affid=153179)?
[OFF]Ссылку поправил[/OFF]
-
Kwazar
Ссылка битая...
Платежную систему выбираю не я...
...
use LWP::UserAgent;
...
# Подготовка пакета
my $pack = \'blablabla\';
...
my $ua = new LWP::UserAgent;
...
# Установка рефера
my $header = new HTTP::Headers;
$header->referer(\'https://my_host/cgi-bin/this_script.pl\');
...
my $req = new HTTP::Request POST => \'https://transact_system_address\', $header;
$req->content($pack);
my $res = $ua->request($req);
...
Смысл скрипта, только в $header, остальное можно передать спокойно и с помощью формы.
Я, до этого, не использовал такой алгоритм, поэтому и спрашиваю вопрос его целесообразности, тем более я чуть-ли не подделываю заголовок...
-
Вообще стандартная практика такая: покупатель заполняет форму, она идет в локальный скрипт, локальный скрипт формирует запрос в платежную систему, система обрабатывает его и возвращает результат локальному скрипт, а тот – клиенту. Локальный скрипт - тот, который стоит на сервере с магазином.
-
2NetFly:
Вообще стандартная практика такая
Это в идеале. По своему опыту, в платежных системах полнейшая анархия.
-
NeoNox
По своему опыту, в платежных системах полнейшая анархия
Вот и я про то же... каждый раз новое открытие...
2NetFly
покупатель заполняет форму, она идет в локальный скрипт...
С точки зрения покупателя, не особо хочется, что бы твои данные проходили где-то еще, кроме как в платежной ситеме...
В общем, как я понял, это не принципиально... где-то находишь, где-то теряешь...
-
Когда я работал над биллингом, мы были подключены к нескольким платежным системам и выбор конкретной системы производился на основе данных, веденных пользователем (страна, тип кредитной карты etc.). Кроме того, подобный способ позволяет не светить платежную систему, что очень часто бывает довольно полезно =)
А насчет анархии - согласен. Лично мне чаще всего встречались системы, которым данные отдавались постом и они тут же возвращали результат, но были и такие, которые возвращали результат на определенный урл, а одна из система вообще требовала установки дополнительного софта на сервер и обмен xml запросами производился посредством этого софта