/** * Listens for and stores PayPal IPN requests. * * @return IpnOrder * @throws InvalidIpnException * @throws UnexpectedResponseBodyException * @throws UnexpectedResponseStatusException */ public function getOrder() { $request = $this->getRequestHandler(); $listener = new PayPalListener($request); $listener->setMode($this->getEnvironment()); if ($listener->verifyIpn()) { return $this->store($request->getData()); } else { throw new InvalidIpnException("PayPal as responded with INVALID"); } }