Получение ответа API через curl curl_exec () вместо обычного файла обратного вызова - PullRequest
0 голосов
/ 31 августа 2010

Описание интеграции API
API требуется форма для публикации на URL API с некоторыми полями ввода и токеном клиента.API обрабатывает и затем отправляет ответ в файл callback.php на моем сервере (это исправлено в соответствии с документацией, и мы не можем упомянуть, что хотим, чтобы ответ был отправлен в какой-то другой файл).Я могу получить доступ к опубликованным значениям, используя $ _POST в этом файле.Это все о существующем методе, и он прекрасно работает.

Теперь я хочу знать, возможно ли получить полный ответ через curl как возвращаемое значение функции curl_exec () ?.У меня нет опыта работы с curl.

Я выполнил следующий код: -

$ch = curl_init(API_URL);
$encoded = '';
$_postArray['customer_token'] = API_CUSTOMER_TOKEN;

foreach($_postArray as $name => $value) 
{
     $encoded .= urlencode($name).'='.urlencode($value).'&';
}

// chop off last ampersand
$encoded = substr($encoded, 0, strlen($encoded)-1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,  $encoded);
$resp = curl_exec($ch);
curl_close($ch);
echo $resp;

Ответа нет, но если я закомментирую строку curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);, значение $ resp отображает 1вместо массива ($ _POST), как я ожидал.Означает ли это 1, что была обнаружена успешная обработка API?

Если это невозможно, скажите мне, как изменить вышеприведенное, чтобы хотя бы получить ответ в файле callback.php в виде $ _POST, как это былопроисходит раньше.

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

В настоящее время я делаю это, отправляя форму API через скрытый iframe (чтобы продолжать отображать ту же страницу), запуская счетчик javascript для определения переменной сеанса ['api_success'] и устанавливая сеанс ['api_success '] в файле callback.php (после успешного ответа от API).Я хотел отказаться от этого метода, так как он может сломаться в любой момент и в Linux Linux Firefox 2 не работает.но делать частые опросы, чтобы установить флаг статуса.Поэтому, пожалуйста, помогите мне изменить приведенный выше код, чтобы получить ответ в файле обратного вызова.В настоящее время это не идет.

Спасибо, Sandeepan

1 Ответ

0 голосов
/ 31 августа 2010

Теперь я хочу знать, возможно ли получить полный ответ через curl как возвращаемое значение функции curl_exec ()?

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

...