ФОНОВЫЕ ДЕТАЛИ:
У меня есть собственная корзина покупок, в которой для обработки платежей используется PayPal. У меня есть промежуточная страница между корзиной и PayPal, которая добавляет заказ в базу данных и отправляет электронные письма с подтверждением.
До сих пор у меня была страница посредника, настроенная для включения всех необходимых данных в качестве скрытых полей формы и отправки формы в PayPal onload
.
Теперь я экспериментирую с использованием cURL в PHP для отправки данных POST в PayPal.
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.paypal.com/cgi-bin/webscr');
//curl_setopt($ch, CURLOPT_URL, 'http://localhost/postecho.php');
// ^ this one is a simple page that echoes all POST data using print_r
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $poststring);
// Some options that didn't seem to help
//curl_setopt($ch, CURLOPT_HEADER, 1);
//curl_setopt($ch, CURLOPT_POST, 1);
//curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
// User agent spoofing which also didn't seem to help
//$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
//curl_setopt($ch, CURLOPT_USERAGENT, $agent);
$result=curl_exec($ch);
curl_close($ch);
$poststring
содержит все данные POST, которые я ранее передавал в формате param1=value¶m2=value
. Выполнение этого через тестовую страницу postecho.php
показывает, что с данными POST все в порядке.
ПРОБЛЕМА:
«Извините - ваше последнее действие не может быть выполнено»
Это то, что PayPal сообщает мне, когда я пытаюсь сделать что-то в стиле CURL. Это действительно не дает мне никакой полезной информации относительно решения этой проблемы. Я полагаю, что в заголовках должно быть что-то или что-то, что ему не нравится. Как заставить PayPal и cURL работать вместе?