Автоматическое Представление формы (ЗАВИХРЕНИЕ)

Я пишу форму для регистрации данных прочь на PayPal, и это хорошо работает, я создаю форму со скрытыми полями и затем имею кнопку отправки, которая отправляет все PayPal.

Однако, когда пользователь нажимает ту кнопку, существует больше, что я хочу сделать, например, изменить их состояние корзины в базе данных. Так, я хочу смочь выполнить некоторый код, когда они нажимают, отправляют и затем отправляют данные на PayPal.

Я не хочу использовать JavaScript для этого.

Мой метод в данный момент использует ЗАВИХРЕНИЕ, сообщения формы назад к текущей странице, я затем проверяю на $ _POST данные, делаю мои другие команды как обновление состояния корзины, и затем создаю вихревую команду и отправляю данные формы на PayPal. Теперь, это отправляется успешно, но браузер не уходит в PayPal.

Сначала я был просто retirieving результатом в строке и затем повторении его, и я видел, что сообщение было успешно, затем я установил CURLOPT_FOLLOWLOCATION на 1 предположение, что это позволит браузеру уйти в PayPal, но это не делает, что это, кажется, делает, захватить некоторый материал из PayPal и поместить его на моей странице.

Использование является ЗАВИХРЕНИЕМ правильная вещь для этого? и если так, как я обхожу эту проблему? Я хочу избегать JavaScript для этого как, только пользователи с JavaScript включили, обновят их корзину.

Код, который я использую для завихрения, ниже, post_data является массивом, который я создал, и затем считайте пары "ключ-значение" в post_string.

//Set cURL Options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, false);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_connection, CURLOPT_MAXREDIRS, 20);

//Set Data to be Posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

//Execute Request
curl_exec($curl_connection);
5
задан cast01 7 April 2010 в 11:56
поделиться

2 ответа

Возможно, попробуйте объединить CURL с оператором заголовка

<?php
header ("Location: https://www.paypal.com/"); 

Это может сработать в зависимости от того, нужно ли браузеру передавать информацию о состоянии (сеансе) в PayPal. Эта информация о сеансе собирается в вашем вызове CURL, но, к сожалению, нет способа передать ее браузеру. Так что если нужно поддерживать состояние, то это не сработает.

Curl работает на стороне сервера. Это не повлияет на ваш браузер. CURLOPT_FOLLOWLOCATION просто инструктирует CURL подчиняться, когда, например, PayPal отправляет ему заголовок, подобный упомянутому выше. Единственный способ указать браузеру что-то сделать - это ответить HTTP-заголовком, как указано выше, или каким-то метатегом в вашем HTML-ответе, например.

<META HTTP-EQUIV="refresh" CONTENT="10;URL=https://www.paypal.com/">

В качестве альтернативы, PayPal не предоставляет функцию перенаправления, которая после завершения транзакции будет перенаправлять обратно на ваш сервер. Если да, то просто измените статус карты во время этого обратного вызова и пропустите весь процесс curl?

2
ответ дан 15 December 2019 в 06:21
поделиться

После получения формы и выполнения необходимых действий вы должны представить другую форму только с кнопкой (все остальные данные в скрытых полях) для пользователь щелкнет и, наконец, отправится в PayPal.

1
ответ дан 15 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: