/** * {@inheritdoc} */ public function verifyIpnMessage(Message $message) { $requestBody = array_merge(['cmd' => '_notify-validate'], $message->getAll()); try { $response = $this->httpClient->post($this->serviceEndpoint, array('form_params' => $requestBody)); } catch (\Exception $e) { throw new ServiceException($e->getMessage()); } return new ServiceResponse((string) $response->getBody()); }
/** * Stores the IPN contents and returns the IpnOrder object. * * @param Mdb\PayPal\Ipn\Message $data * * @return IpnOrder */ private function store(\Mdb\PayPal\Ipn\Message $data) { if ($data->get('txn_id')) { $order = IpnOrder::firstOrNew(['txn_id' => $data->get('txn_id')]); $order->fill($data->getAll()); } else { $order = new IpnOrder($data->getAll()); } $order->full_ipn = json_encode(Input::all()); $order->save(); $this->storeOrderItems($order, $data->getAll()); return $order; }
function it_should_throw_a_service_exception_when_a_request_fails(ClientStub $httpClient, Message $message) { $httpClient->post(Argument::type('string'), Argument::type('array'))->willThrow('Exception'); $message->getAll()->willReturn(['foo' => 'bar']); $this->shouldThrow('Mdb\\PayPal\\Ipn\\Exception\\ServiceException')->during('verifyIpnMessage', array($message)); }