Я пишу форму для отправки данных в paypal, и это отлично работает, я создаю форму со скрытыми полями, а затем получаю кнопку отправки, которая отправляет все на paypal.Авто Отправка формы (cURL)
Однако, когда пользователь нажимает на эту кнопку, есть еще что я хочу сделать, например, изменить статус своей корзины в базе данных. Таким образом, я хочу, чтобы иметь возможность выполнять некоторый код, когда они нажимают кнопку «Отправить», а затем публикуют данные в paypal.
Я не хочу использовать javascript для этого.
Мой метод на данный момент использует cURL, форма отправляется обратно на текущую страницу, затем проверяю данные $ _POST, выполняю ли другие мои команды, такие как обновление статуса корзины, а затем создаю команду curl и отправьте данные формы в paypal. Теперь он получает сообщение успешно, но браузер не переходит к paypal.
Сначала я только что вернул результат в строку, а затем повторил ее, и я мог видеть, что сообщение прошло успешно, а затем я установил CURLOPT_FOLLOWLOCATION в 1, предполагая, что это позволит браузеру перейти на paypal, но это не так, то, что кажется, это захватить некоторые вещи из PayPal и положить его на мою страницу.
Использует ли cURL правильную вещь для этого? и если да, то как мне обойти эту проблему? Я хочу держаться подальше от javascript, так как только пользователи с включенным javascript обновили бы свою корзину.
Код im, используемый для curl, приведен ниже, 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);
спасибо, я надеялся, что мне не придется делать это в обратном вызове от paypal, я хотел установить статус корзины, поскольку он уходит на paypal, а другой, когда он возвращается, так что можно точно отслеживать прогресс и помогать с исправлением любых ошибок, попробуйте установить некоторые заголовки http и посмотреть, но мне просто нужно сделать это в обратном вызове. Я просто предположил, что автоматическое распознавание формы и последующее действие будут проще. – cast01
Я думаю, вы все равно можете сделать и для тех пользователей, у которых включен javascript.Для тех, у кого не включен javascript, используется только обратный вызов, но для тех (большинство), у которых включен javascript, вы можете установить флаг «going-to-paypal» в вызове ajax и установить «полный», флаг в обратном вызове. –