2017-10-29 7 views
0

PayPal을 사용하여 내 웹 사이트를 통한 지불을 허용하려고합니다. Smart Payment 버튼 옵션을 살펴 보았습니다. 지불이 성공하면 내 웹 사이트 DB에서 무언가를 업데이트해야합니다. 지불이 성공적 이었는지 여부를 어떻게 알 수 있습니까? 나는 API 문서를 볼 수 없다.결제가 성공 또는 실패 여부를 확인하십시오.

또한 PHP 세션 ID로 사용자 컨텍스트를 유지해야합니다. 어떻게 페이팔 사이트로 전달하고 성공/실패 표시기와 함께 반환되는지 확인하십시오.

답변

1

Paypal IPN을 사용하면 결제 알림을받을 수 있습니다. IPN 요청에 응답하고 DB 등을 업데이트하기 위해 서버 엔드 포인트를 설정하십시오.

상태를 유지하려면 스마트 지불 버튼에 숨겨진 입력 내용을 custom으로 입력하고 원하는 값을 입력해야합니다 (세션 ID).

IPN 엔드 포인트 ie :/checkout/ipn을 설정하면 Paypal 알림을받을 수 있습니다. $ _POST [ 'custom'];로 세션 ID를 캡처하십시오.

+0

감사의 말씀. IPN은 유용한 옵션 일 수 있습니다. 나는 고객 ID에 지불 방법을 보내고 IPN에서 동일한 고객 ID를받는 방법을 아직 분명하지 않습니다. 마찬가지로 결제 페이지에 게시 된 숨겨진 입력 필드가 지불 결과와 함께 어떻게 반환 될지 잘 모르겠습니다. (PayPal 문서의이 부분은별로 좋지 않습니다.) 나는 Braintree API에 찬성하여 간단한 PayPal 버튼 방식을 포기할 수 있습니다. 그것은 지불이 성공하면 내 서버 사이드 코드로 페이팔 서버에서 유효성을 검사 할 수있는 클라이언트 사이드 자바 스크립트로 지불 Nonce를 반환합니다. –

+0

사용자 세션이 손실되는 측면에서 다른 사용자가 문제가 있음을 알 수 있습니다. PayPal 버튼을 사용하면 완전히 새로운 URL로 이동하므로 세션 컨텍스트를 잃어 버리기 쉽습니다. 이것이 내가 클라이언트 사이드 js와 서버 사이드 코드 (Braintree API를 통해)의 콤보가 최상이라고 생각하는 이유입니다. 그렇지 않으면이 솔루션과 같은 쿠키를 사용해야합니다. https://stackoverflow.com/questions/31069675/paypal-payment-destroys-session-on-return?rq=1 –