2017-02-08 5 views
0

많은 읽기 끝에 결국 I는 IPN 방식으로 PayPal을 통합했습니다.PayPal IPN : 부당한 통지로 대응하는 방법

  1. 확인 txn_id은 (누군가는 페이팔 문서로 작성까지로, 확인 된 상태를 반환하는 오래된 확인 트랜잭션 ID를 사용할 수있는 DB에없는 경우 : 나는 있습니다 listener.php 3 검사를 수행)
  2. 확인하면 판매자 이메일로 receiver_email 일치
  3. 확인하고 주문 ID가 custom 일치
  4. 체크 경우 가격 mc_gross 일치

모든 검사가 제대로 끝나면 모든 데이터를 db에 삽입합니다. 내가 놓친 부분은 이러한 매개 변수 중 하나라도 일치하지 않으면 어떻게해야합니까? PayPal에 "헤이 PayPal, 잘못된 것 : 거래를 삭제하고 오류 메시지를 표시하고 결국 구매자가 다시 시도하게하십시오"라는 코드 메시지를 다시 보낼 수 있습니까? 그렇지 않다면이 상황을 어떻게 처리할까요?

답변

0

아니요. PayPal은 IPN 프로세스 중에 사용자를 대기 상태로 두지 않으므로 사용자가 더 이상 오류를 읽지 않거나 재 시도하지 않습니다.

해당 조치는 아마도 환불입니다. 나는 상점 관리자에게 정당화되지 않은 지불을 받고 문제를 처리하기 위해 그것을 인간에게 남겨 두라는 통지를 발동합니다. 모든 것이 잘 구성된 경우 드문 것보다 더 중요한 경우입니다.

통화의 진위 여부를 확인하기 위해 PayPal에 전화하는 것을 언급하지 않았습니다. 정말로 먼저 그렇게해야합니다.

+0

'$ fp = fsockopen ('ssl : //www.sandbox.paypal.com', 443, $ errno, $ errstr, 30);과 같은 PayPal에 대한 소켓 연결을 여는 것을 의미합니까? 내 질문은 페이지 하단의 [PayPal 설명서] (https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/formbasics/)에있는 그림에서 가져온 것입니다. 포인트 3은 다음과 같이 말합니다 : '귀하의 서버는 합법적임을 보장하기 위해 통지를 검증해야합니다.' 이 문장이 의미하는 바는 "귀하의 서버가 통보 (통보) 트랜잭션의 유효성을 확인해야만하는 경우"입니까? 감사! – Brigo

+1

먼저해야 할 일은 방금받은 모든 데이터가 들어있는 PayPal (서버 대 서버)에 http 호출을하는 것입니다. PayPal은 "VERIFIED"또는 "INVALID"(또는 그와 비슷한 것) 중 하나에 응답합니다. 아이디어는 PayPal에 요청하는 것입니다. "이 지불 통지서를 받았는데, 보내셨습니까, 아니면 가짜입니까?" – Rad80