2013-02-27 1 views
2

페이팔로 맞춤 웹 사이트를 통합 할 수있었습니다.이 웹 사이트에 계정을 만들 때 수수료, 저울 페이팔을 지불해야합니다 ... 등록 후 사용자를 리디렉션하여 페이팔에 지불합니다. 그는 내 웹 사이트의 성공 페이지로 리디렉션됩니다. 매개 변수로 URL에 토큰 키가 있습니다 (판매자 계정에서 성공 페이지에 입력). 유일한 질문은이 토큰 키를 사용하여 paypal 응답에서 방금 등록하고 지불 한 고객의 전자 메일을 얻는 방법입니다.맞춤 PHP 웹 사이트를 페이팔과 통합 하시겠습니까?

 <form id="paypalForm" method="POST" action="https://www.paypal.com/cgi-bin/webscr"> 
     <input type="hidden" name="cmd" value="_notify-synch"> 
     <input type="hidden" name="tx" value="<?php echo $tokenKey; ?>"> 
     <input type="hidden" name="at" value="<?php echo $merchantPayPalltoken; ?>"> 
     <input type="submit"> 
    </form> 

내가 클릭 제출하면, 나는 내가 원하는 정보 나열을 얻을 paypall 화면으로 리디렉션하고있다 : 나는 다음과 같은 사용자 지정 양식을 만들 경우

.

하지만 난이 다음과 같이,이 게시물 통화 트로프 jQuery.ajax를 만들려고 :

var postVars = jQuery('#paypalForm').serialize(); 
    var url = 'https://www.paypal.com/cgi-bin/webscr'; 
    jQuery.ajax({ 
     type: "POST", 
     url: url, 
     data: postVars, 
     success: function(data){ 
       alert("success email = "+data.payer_email); 

      }, 

     error:function(xhr, ajaxOptions, thrownError){ 

       alert('status = '+xhr.status+' thrownError = '+thrownError+ ' response = '+xhr.responseText); 


      } 
    }); 

하지만 항상하지 성공, 응답의 오류 부분에 들어갑니다.

그가 돈을 지불 한 후에 pay-pal의 전자 메일 정보를 내 웹 사이트에서 활성화해야합니다.

또는 지불을 위해 페이팔로 리디렉션하기 직전에 사용자 이메일로 세션 변수를 생성하고 사용자가 세션에서 이메일을 수신하기 위해 성공 페이지로 리디렉션 될 때이 부분을 만들어야합니다. 이것이 안전한 방법일까요?

많은 감사합니다.

답변

4

정보를 사이트로 다시 가져올 수있는 방법은 2 가지가 있습니다. PDT 또는 IPN을 사용할 수 있습니다. 둘 다 귀하의 사이트로 다시 정보를 반환합니다. IPN은 구매자가 반환하는지 여부에 관계없이 귀하의 사이트에 정보를 다시 게시합니다. 구매자가 브라우저가 작동하지 않거나 창을 닫을 때와 같은 반환 방법을 사용하지 않는 것이 좋습니다. 이렇게하면 시스템이 여전히 업데이트됩니다. 다른 방법 PDT는 사용하려고하는 것처럼 보이는데, 구매자가 사이트로 다시 돌아 오는 경우에 따라 달라집니다. 사이트로 리디렉션되면 일부 정보와 함께 다시 전송됩니다. PayPal을 사용하여 정보의 유효성을 검사하기 위해 포스트 백을 수행 한 다음 PayPal이 모든 정보로 응답합니다.

PDT (https://www.x.com/developers/paypal/documentation-tools/ipn/integration-guide/IPNPDTAnAlternativetoIPN)에서 자세한 정보를 찾을 수 있습니다. 해당 페이지에 문서와 샘플이 있습니다. IPN에 대한 자세한 내용은 해당 페이지에서 링크를 찾을 수도 있고 https://www.x.com/developers/paypal/documentation-tools/ipn/integration-guide/IPNOperations으로 이동할 수도 있습니다. 어떤 방법을 사용하는지는 사용자가 결정합니다. 나는 보통 둘을 서로 사용한다. IPN 및 PDT 스크립트를 사용하여 데이터베이스에 쓰기 전에 다른 스크립트의 게시물을 아직받지 않았는지 확인합니다. 만약 그렇다면 두 번째 게시물을 무시합니다. 동적 인 영수증을 만들기 위해 PDT 리턴 페이지를 더 사용하고 IPN에 더 의존하여 시스템에서 업데이트를 수행합니다.

IPN의 좋은 점은 원래 또는 네트워크 문제를 받았을 때 어떤 이유로 오류가 발생하면 시스템에 게시물을 다시 보낼 수 있다는 것입니다. PDT를 사용하면이 정보를 재전송 할 수 없습니다. 따라서 데이터베이스를 수동으로 업데이트해야합니다.

희망이 도움이됩니다! :)

+0

귀하의 의견은 많은 도움이되었습니다 .... 필자가 제안한 것처럼 IPN과 PDT를 모두 관리 할 수 ​​있었고 둘 다 잘되었습니다. 많은 감사 :) –

관련 문제