2013-01-09 3 views
0

Grails 2.1.1 버전에서 paypal을 사용하고 있습니다. Paypal에서 결제가 성공적으로 처리 된 후 자동 완성과 같은 URL에 대한 수동 반환 버튼이 구성된 성공 페이지가 표시됩니다. 사용자가 돌아 가기 버튼을 클릭하지 않으면 모든 것이 정상입니다. 그러나 사용자가 Return 버튼을 클릭하면 동일한 요청이 내 작업에 두 번 표시됩니다 (자동 회신도 동일한 요청을 보냅니다). 수동 반환 클릭 요청에 대해 이미 진행 중이므로 컨트롤러의 작업에 아무런 작업도하지 않으려면이 중복 요청을 필터링하거나 수동 반환 버튼을 클릭하면 해당 지불에 대한 자동 반품 요청을 보내지 않도록 paypal을 설정할 수 있습니까? 또는이 문제를 해결할 수있는 더 좋은 방법입니다.페이팔 자동 반품 (수동 반품 버튼 포함)

답변

0

결제 데이터 전송을 활성화하여 거래 ID를 얻을 수 있습니다. 에서 워드 프로세서

는 : https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/howto_html_paymentdatatransfer

고객이 당신을 지불, 페이팔 계정 프로필에 지정한 URL에 트랜잭션 ID를 추가하여 당신에게 지불 트랜잭션 ID를 전송합니다. 이 정보는 다음 이름/값 쌍으로 HTTP GET을 통해 전송됩니다. tx = transactionID

그런 다음 transactionID가 이미 처리되었는지 여부를 확인할 수 있습니다.

또한 위 매개 변수에 설명 된대로 이러한 매개 변수를 paypal로 돌려 보내 결제 완료를 완료 할 수도 있습니다.

+0

감사합니다. 나는 이미 그것을 구현했다. 내 문제는 또 다른 문제입니다. 성공 페이지에는 Return 버튼과 Return url을 포함한 Auto return이 있습니다. 사용자가 자동 ​​반환을 기다리는 경우 모든 항목이 정상입니다 (반환 값 trnxID를 기준으로 지불을 확인하고 성공을 기준으로 결제 완료로 업데이트). 그러나 사용자가 수동 복귀 버튼을 클릭하면 몇 초 내에 같은 요청이 서버에 두 번옵니다. 사용자가 돌아 가기 버튼을 클릭하면 어떻게 자동 리턴을 멈출 수 있습니까? –

+0

Paypal이 중복 조건을 처리하지 않는 것 같습니다. paypal docs : "고객이 페이지를 새로 고칠 수 있으므로 레코드를 데이터베이스에 삽입하는 경우 중복 여부를 확인해야합니다." 따라서 첫 번째 요청에서 db에 레코드를 삽입하고 동일한 txId 및 지불 상태 (db가 이미 처리되었는지 여부를 확인해야 함)로 더 많은 요청을받는 경우 추가 처리/표시로 무시할 수 있습니다. 사용자. – user1509437