/** * @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; }
/** * 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; }