2010-08-02 4 views
1

페이팔과 사이트를 통합하는 데 익숙하지 않아 사용 가능한 서비스에서 쉽게 이용할 수있는 방법이있을 수 있습니까? 내가하려는 것은 사용자가 "내 웹 사이트로 돌아 가기"를 클릭 할 때, 리퍼러가 페이팔이라는 사실을 알고 있기 때문에 웹 사이트로 자동 전송할 수 있습니다. 어떻게해야합니까?PHP에서 URL 리퍼러를 아는 방법?

나는 $_SERVER['HTTP_REFERER']을 시도했지만 아무 것도 포착하지 못했습니다. 나는 IPN 대화 중에 쿠키와 세션을 설정했으나 (IPN 대화 중에 IPN 대화를 제대로했는지 또는 해야할지 잘 모르겠지만), 내 웹 사이트로 돌아 가면 세션을 인식하지 못하는 것 같습니다.

$_SERVER['HTTP_REFERER']을 사용하여이 문제를 해결하면 보안 위험이 있습니다. 맞습니까? 그렇다면 누락 된 다른 방법이 있습니까? 도와주세요.

+0

Paypal에서 일부 쿼리 문자열 변수를 반환하지 않습니까? 뒤에서 그걸 기억하고있는 것 같습니다. – Wrikken

+0

$ _SERVER [ 'HTTP_REFERER']을 출력하여 그 결과를 확인 했습니까? 어쩌면 paypal.com을 잘 보여주고있는 것일 수도 있지만 귀하의 상태가 제대로 일치하지 않거나 뭔가 엉망입니다. 또한 보안 위험은 아닙니다. 예를 들어 사람들이이를 위장 할 수는 있지만 일반적으로 감사 페이지로 보낼지 여부를 결정할 때 반드시 피해야하는 것은 아닙니다. –

+0

예, sendmail()을 통해 했어요. 아무것도 보내지 않습니다. 나는 그것을 return URL 인 login.php에 넣었다. 그러나 등록되지 않은 계정을 사용하여 의도적으로 로그인하면 my.domain.com/login.php가 전송됩니다. $ _SERVER [ 'HTTP_REFERER']가 맞지 않을 수 있습니다. – adred

답변

1

정말 리퍼러를 알아야합니까? PayPal 반환 URL을 항상 홈페이지로 리디렉션되는 '비밀'URL로 설정합니다. 누군가가 PayPal에서 오지 않고 리디렉션되면 어떻게됩니까? 그것은 문제가되어서는 안됩니다.

또한 PayPal을 사용하지 않았지만 사용자가 아닌 PayPal의 서버에서 직접 요청한 IPN 알림을 상상해 볼 수 있습니다. 따라서 쿠키 나 세션을 설정하면 많은 도움이되지 않습니다.

+0

홈페이지는 제한 구역입니다. 등록 된 사용자 만 입력 할 수 있습니다. 이 시나리오는 사용자가 가입을 지불 한 후에 발생하므로 모든 서버 통신이 부재합니다. – adred

0

사용자에게 다시 게시 될 사용자 지정 값이있는 숨겨진 필드를 새로 추가 할 수 있습니다. 원하는 필드를 사용할 수 있습니다. 해당 필드 이름을 custom으로 지정해야합니다.

Paypal은 해당 필드로 돌아가서 일단 페이팔에서 온 것인지 확인해야합니다.

+0

예, 구독하려는 사용자의 존재를 확인할 때 비슷한 설정을했습니다. 그러나 내 처리기와 IPN 간의 통신은 "반환"을 클릭하기 바로 전에 백그라운드에서 발생합니다. 클릭 버튼 이벤트가 IPN 권한을 포함하지 않기 때문에 아무 것도 실제로 발생하지 않습니다. – adred

관련 문제