protected function check($receipt, $url = null) { $url = empty($url) ? self::PRODUCTION_API : $url; $request = new URLRequest($url); $response = $request->postJSON(array('receipt-data' => $receipt), false); if (isset($response->status) === false) { throw new NonFatalException('invalid receipt', 400); } else { if ($response->status != 0) { if ($response->status === 21007) { $response = $this->check($receipt, self::SANDBOX_API); } else { throw new NonFatalException('invalid receipt - ' . $response->status, 400); } } } return $response; }