Beispiel #1
0
 /**
  * @param \PayPal\Ipn\Message $ipnMsg
  * @return IpnEntity
  */
 public function processRequest(Message $ipnMsg)
 {
     $this->verifier->setIpnMessage($ipnMsg);
     $ipn = new IpnEntity($ipnMsg, $this->listener->getReport());
     $this->validIpn = $this->skipVerification ? true : $this->listener->processIpn();
     if ($this->validIpn) {
         $this->respondToValidIpn($ipn);
     } else {
         $this->respondToInvalidIpn($ipn);
     }
     return $ipn;
 }
Beispiel #2
0
 /**
  * Validates the IPN request returns the IPN data on success
  *
  * @return array $ipnMessage
  */
 public function verifyIpn()
 {
     $listener = new Listener();
     $verifier = new CurlVerifier();
     $ipnMessage = Message::createFromGlobals();
     // uses php://input
     $verifier->setIpnMessage($ipnMessage);
     $verifier->forceSSLv3(FALSE);
     $verifier->setEnvironment('production');
     // can either be sandbox or production
     $listener->setVerifier($verifier);
     // If IPN does not validate
     if (!$listener->processIpn()) {
         throw new InvalidIpnException($listener->getReport());
     }
     // On verified IPN
     return $ipnMessage;
 }