Переадресация на платежный шлюз вместе с данными POST с использованием cURL (или любого другого решения на стороне сервера PHP) - PullRequest
4 голосов
/ 18 января 2011

Я играл с cURL, пытаясь передать данные POST на страницу шлюза оплаты страниц ...

Я не смог эмулировать действие формы отправки ... Я хотел бы перенаправить клиента на страницу шлюза платежей (вместе с данными POST), но не могу найти способ сделать это ...

Мне удается передать данные POST, но получившаяся страница загружается в моем домене (вместо пересылки пользователя на платежный шлюз).

$connection = curl_init("https://paymentgateway.com/script");
curl_setopt($connection, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($connection, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($connection, CURLOPT_POST, 1);
curl_setopt($connection, CURLOPT_POSTFIELDS, $postdata);
curl_exec($connection);
curl_close($connection);

Как это сделать?

1 Ответ

5 голосов
/ 18 января 2011

Практически все бюджетные шлюзы низкого уровня ожидают, что вы фактически проведете POST на их сервере, после чего они получат платежные реквизиты от конечного пользователя до возвращения пользователя на назначенные страницы снекоторая информация о статусе.Таким образом, использование CURL может вызвать проблемы.

Что вам, вероятно, нужно сделать, - вывести соответствующую форму через PHP на (очень) минимальную HTML-страницу, которая автоматически приводит к отправке формы с использованиемonload.

Например, если ваша форма имеет идентификатор «checkoutform», вы можете использовать:

<body onload="document.getElementById(\'checkoutform\').submit();">

Это, конечно, довольно плохо.(Но, к сожалению, неизбежно.)

...