private function _verifyGatewayResponse($response) { if (isset($response['response']['merchant'])) { // return a populated instance of merchant return new Result\Successful([Merchant::factory($response['response']['merchant']), OAuthCredentials::factory($response['response']['credentials'])]); } else { if (isset($response['apiErrorResponse'])) { return new Result\Error($response['apiErrorResponse']); } else { throw new Exception\Unexpected("Expected merchant or apiErrorResponse"); } } }