Olmer
Новичок
перенаправление POST запросов.
Здравствуйте.
Подскажите, пожалуйста, как можно реализовать следующую задачу:
есть сайт, на нем есть функция пополнения счета через еголд. Задача состоит в том, чтобы принимать ответ еголда о статусе платежа через скрипт-посредник, находящийся на другом хостинге. Т.е схема должна быть такая:
site1->через скрипт-редирект передает данные на мерчант e-gold.com. в поле "STATUS_URL стоит" значение "http://site2/status.php" скрипт status.php через сокеты передает параметры, полученные от сайта e-gold методом POST скрипту status.php на site1. Т.е site2 выступает в роли своеобразного посредника между e-gold и сайтом.
Собственно вопрос: возможно ли полностью перенаправить POST запрос на другой скрипт через сокеты?
Я не знаю как это реализовать, поэтому, принимал каждый параметр по отдельности и отправлял на нужный скрипт. Но мой код не работает(счет в системе на site1 не пополняется. Пожалуйста, подскажите, в чем ошибка, или подскажите, как это можно реализовать иначе. Возможно ли полсностью просто перенаправить POST запрос на другой скрипт, без разбора переменных в запросе?
Вот код скрипта - посредника status.php на site2(он должен принимать ответ e-gold.com и передавать его другому скрипту на site1, где происходит обработка):
Заранее благодарен.
-~{}~ 23.04.08 17:52:
спасибо, уже сам нашел ошибку: код рабочий, просто из за бессонной ночи накосячил тут:
"Host: site1\r\n"; - тут забыл заменить значение и оставил localhost, чтоб ему убиццо об стену, вымазанную йадом=)
Остался только вопрос: можно ли полностью перенаправить данные полученные скриптом через POST запрос на другой скрипт, не зная заранее переменных, находящихся в нем, по тому же принципу(через сокеты)? Это бы существенно облегчило задачу.
Здравствуйте.
Подскажите, пожалуйста, как можно реализовать следующую задачу:
есть сайт, на нем есть функция пополнения счета через еголд. Задача состоит в том, чтобы принимать ответ еголда о статусе платежа через скрипт-посредник, находящийся на другом хостинге. Т.е схема должна быть такая:
site1->через скрипт-редирект передает данные на мерчант e-gold.com. в поле "STATUS_URL стоит" значение "http://site2/status.php" скрипт status.php через сокеты передает параметры, полученные от сайта e-gold методом POST скрипту status.php на site1. Т.е site2 выступает в роли своеобразного посредника между e-gold и сайтом.
Собственно вопрос: возможно ли полностью перенаправить POST запрос на другой скрипт через сокеты?
Я не знаю как это реализовать, поэтому, принимал каждый параметр по отдельности и отправлял на нужный скрипт. Но мой код не работает(счет в системе на site1 не пополняется. Пожалуйста, подскажите, в чем ошибка, или подскажите, как это можно реализовать иначе. Возможно ли полсностью просто перенаправить POST запрос на другой скрипт, без разбора переменных в запросе?
Вот код скрипта - посредника status.php на site2(он должен принимать ответ e-gold.com и передавать его другому скрипту на site1, где происходит обработка):
PHP:
<?
$PAYMENT_ID=$_POST['PAYMENT_ID'];
$PAYEE_ACCOUNT=$_POST['PAYEE_ACCOUNT'];
$PAYMENT_AMOUNT=$_POST['PAYMENT_AMOUNT'];
$PAYMENT_UNITS=$_POST['PAYMENT_UNITS'];
$PAYMENT_METAL_ID=$_POST['PAYMENT_METAL_ID'];
$PAYMENT_BATCH_NUM=$_POST['PAYMENT_BATCH_NUM'];
$PAYER_ACCOUNT=$_POST['PAYER_ACCOUNT'];
$ACTUAL_PAYMENT_OUNCES=$_POST['ACTUAL_PAYMENT_OUNCES'];
$USD_PER_OUNCE=$_POST['USD_PER_OUNCE'];
$FEEWEIGHT=$_POST['FEEWEIGHT'];
$TIMESTAMPGMT=$_POST['TIMESTAMPGMT'];
$u = sprintf ('%d', $_POST['u']);
$h = sprintf ('%d', $_POST['h']);
$c = sprintf ('%d', $_POST['c']);
$a = 'check';
$V2_HASH=$_POST['V2_HASH'];
$data="PAYMENT_ID=".$PAYMENT_ID."&PAYEE_ACCOUNT=".$PAYEE_ACCOUNT."&PAYMENT_AMOUNT=".$PAYMENT_AMOUNT."&PAYMENT_UNITS=".$PAYMENT_UNITS."&PAYMENT_METAL_ID=".$PAYMENT_METAL_ID."&PAYMENT_BATCH_NUM=".$PAYMENT_BATCH_NUM."&PAYER_ACCOUNT=".$PAYER_ACCOUNT."&ACTUAL_PAYMENT_OUNCES=".$ACTUAL_PAYMENT_OUNCES."&USD_PER_OUNCE=".$USD_PER_OUNCE."&FEEWEIGHT=".$FEEWEIGHT."&TIMESTAMPGMT=".$TIMESTAMPGMT."&u=".$u."&h=".$h."&c=".$c."&a=".$a."&V2_HASH=".$V2_HASH."&addi=cb";
$fp = fsockopen("site1", 80, $errno, $errstr, 30);
$out = "POST /status.php HTTP/1.0\r\n";
$out .= "Host: site1\r\n";
$out .= "Referer: site1\r\n";
$out .= "User-Agent: Opera\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: ".strlen($data)."\r\n\r\n";
$out .= $data."\r\n\r\n";
fputs($fp, $out);
fclose($fp);
print '1';
exit ();
?>
-~{}~ 23.04.08 17:52:
спасибо, уже сам нашел ошибку: код рабочий, просто из за бессонной ночи накосячил тут:
"Host: site1\r\n"; - тут забыл заменить значение и оставил localhost, чтоб ему убиццо об стену, вымазанную йадом=)
Остался только вопрос: можно ли полностью перенаправить данные полученные скриптом через POST запрос на другой скрипт, не зная заранее переменных, находящихся в нем, по тому же принципу(через сокеты)? Это бы существенно облегчило задачу.
