2012-06-18 1 views
1

콜백 요청을하는 지불 게이트웨이 API를 사용하고 있습니다. 콜백 요청이 이루어지면 게이트웨이는 "OK"로 응답 할 것으로 예상합니다. 더 많거나 적은 것은 없습니다. 그리고 이것이 html로 렌더링 된 응답을 의미하지는 않습니다. 이 두 문자로 된 콜백 파일 일뿐입니다. 그것은 HTTP Status Code 200/OK를 원한다는 것을 의미하는 것이 아니라 "OK"라는 단어에 대한 실제 데이터 (헤더가 아님)를 원한다는 것을 의미합니다.PHP HTTP 요청에 응답하고 처리를 계속하는 방법?

그래서이 작동하지 않습니다

<html><body>OK</body></html> 

이 작동합니다

<?php echo "OK"; ?> 

을하지만, 나는 다시 확인을 보낸 후, 나는 서버 측에서 몇 가지 물건을 할 다음 리디렉션 할 필요가 다른 페이지로 브라우저 페이지. 그러나 나는 할 때 :

<?php 
echo "OK"; 
header('Location: http://www.store.com/success.php'); 
exit; 
?> 

게이트웨이는 "OK"에코을 무시하고 대신에 I가 리디렉션 success.php 페이지 떨어져 HTML을 읽습니다.

그럼 다시 확인을 보낼 수는 있지만 계속해서 내 일을 처리 할 수 ​​있습니까?

감사합니다.

+0

먼저'Location :'헤더를 보내면 어떻게 될까요? – Crontab

+0

본문에서 뭔가를 보내면 HTTP 헤더를 변경하거나 추가 할 수 없습니다. – powtac

+0

같은 결과가 나타납니다. 그것은 여전히 ​​리디렉션 페이지의 HTML을 가져옵니다 – Dss

답변

1

콘텐츠를 보내지 못하고 리디렉션 할 수 없습니다. 리디렉션 헤더 설정은 단독으로 수행해야합니다.

+0

대답 해 주셔서 감사합니다. 나는 이것을 두려워 했어요. 좋아. 나는 관문과 이야기하고, 사람들이이 경우에해야 할 일이 무엇인지 물어 보려고 노력할 것이다. 감사합니다 – Dss

0

flush();을 사용하면 PHP에서 강제로 쓰기를 시도 할 수 있습니다.

+0

나는 제대로 작동하지 못했습니다 ... – powtac

+0

@powtac 이걸 찾아보세요 flush() : http://stackoverflow.com/questions/11072717/stop-looping-and-output-and-then-continue-php/11072848 # 11072848 – HBv6

+0

@PierpaoloBagnasco 감사합니다! – powtac

0

자바 스크립트 또는 메타 새로 고침 태그를 사용하여 리디렉션을 클라이언트 측으로 옮길 수 있습니까?

0

OK을 보내기 전에 명령 줄을 통해 PHP를 호출하여 PHP를 다중 처리 할 수 ​​있습니다.