/** * {@inheritDoc} */ public function execute($request) { /** @var $request ObtainTokenRequest */ if (false == $this->supports($request)) { throw RequestNotSupportedException::createActionNotSupported($this, $request); } $model = ArrayObject::ensureArrayObject($request->getModel()); if ($model['card']) { throw new LogicException('The token has already been set.'); } $getHttpRequest = new GetRequestRequest(); $this->payment->execute($getHttpRequest); if ($getHttpRequest->method == 'POST' && isset($getHttpRequest->request['stripeToken'])) { $model['card'] = $getHttpRequest->request['stripeToken']; return; } $this->payment->execute($renderTemplate = new RenderTemplateRequest($this->templateName, array('model' => $model, 'publishable_key' => $this->keys->getPublishableKey()))); throw new ResponseInteractiveRequest($renderTemplate->getResult()); }
/** * @test */ public function shouldAllowGetResultPreviouslySet() { $request = new RenderTemplateRequest('aTemplate', array()); $request->setResult('theResult'); $this->assertEquals('theResult', $request->getResult()); }