Описание интеграции API
API нуждается в форме для публикации в URL-адресе API с некоторыми полями ввода и токеном клиента. API обрабатывает, а затем отправляет ответ на файл callback.php на моем сервере (он исправлен в соответствии с документацией, и мы не можем сказать, что мы хотим, чтобы ответ отправлялся в какой-либо другой файл). Я могу получить доступ к опубликованным vals, используя $ _POST в этом файле. Это все о существующем методе, и он отлично работает.
Теперь я хочу знать, можно ли получить весь ответ через curl в качестве возвращаемого значения функции curl_exec () ?. Я не испытываю завихрения.
Я выполнил следующий код:
$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);
line, значение $ resp echo 1 вместо массива ($ _POST), как я ожидал. Означает ли это 1, что успешная обработка API была обнаружена?
Если это невозможно, сообщите мне, как изменить приведенное выше, чтобы хотя бы получить ответ в файле callback.php как $ _POST, как это было раньше.
Больше описания текущего состояния и того, что я хотел
Я хотел получить ответ в качестве возвращаемого значения curl_exec (), чтобы я мог использовать ответ ajax для перенаправления страницы в frontend на страницу успеха (я хотел вызвать curl-сообщение через ajax при отправке формы из frontend, сохраняя одну и ту же страницу в пока не появится ответ API).
В настоящее время я делаю это, отправляя форму API через скрытый iframe (чтобы отображать одну и ту же страницу), начиная счетчик javascript для обнаружения переменной session ['api_success'] и установки сеанса ['api_success'] в обратном вызове .php-файл (после успешного ответа от API). Я хотел отказаться от этого метода, так как он может сломаться в любое время, и он не работает в linux firefox 2.
Обновления
Согласился, что с таким видом асинхронного API нет другого выбора, кроме как частое опроса, чтобы установить флаг состояния. Поэтому, пожалуйста, помогите мне изменить вышеуказанный код, чтобы получить ответ в файле обратного вызова. В настоящее время этого не происходит.
Благодарю, Sandeepan