/**
     * {@inheritDoc}
     */
    public function execute($request)
    {
        /** @var $request ObtainToken */
        RequestNotSupportedException::assertSupports($this, $request);

        $model = ArrayObject::ensureArrayObject($request->getModel());

        if ($model['card']) {
            throw new LogicException('The token has already been set.');
        }

        $getHttpRequest = new GetHttpRequest();
        $this->payment->execute($getHttpRequest);
        if ($getHttpRequest->method == 'POST' && isset($getHttpRequest->request['stripeToken'])) {
            $model['card'] = $getHttpRequest->request['stripeToken'];

            return;
        }

        $this->payment->execute($renderTemplate = new RenderTemplate($this->templateName, array(
            'model' => $model,
            'publishable_key' => $this->keys->getPublishableKey(),
        )));

        throw new HttpResponse($renderTemplate->getResult());
    }
Beispiel #2
0
 /**
  * @test
  * @expectedException InvalidArgumentException
  */
 public function shouldThrowExceptionIfParameterExistsOnAddParameter()
 {
     $request = new RenderTemplate('aTemplate', array());
     $request->addParameter('foo', 'fooVal');
     $request->addParameter('foo', 'barVal');
 }
 /**
  * @test
  */
 public function shouldAllowGetResultPreviouslySet()
 {
     $request = new RenderTemplate('aTemplate', array());
     $request->setResult('theResult');
     $this->assertEquals('theResult', $request->getResult());
 }