2011-06-13 4 views
3

저는 몇 시간 동안 벽에 머리를 대고있었습니다. 그리고 내가 놓친 부분이 정말 분명합니다!CURL 사용 - 헬프 게시 및 재전송

저는 CURL을 사용하여 결제 서비스 제공 업체 (PSP)에 연결하고 데이터를 게시하고 사용자가 실제로 PSP 사이트에서 끝내도록 게시물을 따르려고합니다.

다음 사용 :

이 성공적으로 연결
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://psp.com/theirpage'); 
curl_setopt($ch, CURLOPT_REFERER, "http://mysite.com/mypage"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS,$params); 
curl_setopt($ch, CURLOPT_POST, 1); 
$result=curl_exec($ch); 
curl_close($ch); 

, 나는 통과 한 데이터를 확인, 대신 PSP로 사용자를 리디렉션, 그것은 단지 내 사이트에 HTML을로드합니다. 안전 모드가 꺼져 있고 open_basedir은 비어 있습니다.

내가 뭘 잘못하고 있니?

+0

어떤 종류의 리디렉션이 발생할 것으로 예상됩니까? 그들에 의해 발행 된 헤더 리다이렉션은 사용자의 브라우저가 아닌 말려서 만 볼 수 있습니다. –

+0

컬은 HTML 페이지 컨텐츠를 읽습니다. 어떤 대안을 찾을 필요가 있습니다 – praneeth

+0

(제공하는 경우) API 사용을 고려해야합니다. – Vamsi

답변

0

CURL은 내부 리디렉션을 수행하며 사용자의 컬 스크립트를 보는 사용자에게는 아무런 영향을 미치지 않습니다. 지불은 사용자 컴퓨터가 아닌 서버에서 이루어 졌으므로 세션이 사용자에 대해 작동 할 것으로 기대하는 것은 잘못되었습니다. cURL은 브라우저입니다. '

cURL을 통해 지불 한 후 리디렉션 만하려면 header()을 사용하거나 window.location과 같은 일부 JS를 사용해야합니다.

0

curl 요청은 서버에서 이루어 지므로 서버에서 응답 페이지를 수신하고 있습니다. 서버에서 요청을 시작하고 클라이언트가 응답을받을 수있는 방법이 없습니다. 사이트에서 사용자에게 HTML을 반환하거나 자바 스크립트를 사용하여 클라이언트의 브라우저에서 요청하십시오. 희망이 도움이됩니다