示例#1
0
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults(array(
            'payum.template.layout' => '@PayumCore/layout.html.twig',

            'buzz.client' => ClientFactory::createCurl(),
            'twig.env' => TwigFactory::createGeneric(),

            'payum.action.get_http_request' => new GetHttpRequestAction(),
            'payum.action.capture_order' => new CaptureOrderAction(),
            'payum.action.execute_same_request_with_model_details' => new ExecuteSameRequestWithModelDetailsAction(),
            'payum.action.render_template' => function (ArrayObject $config) {
                return new RenderTemplateAction($config['twig.env'], $config['payum.template.layout']);
            },
            'payum.extension.endless_cycle_detector' => new EndlessCycleDetectorExtension(),

            'payum.prepend_actions' => array(),
            'payum.prepend_extensions' => array(),
            'payum.prepend_apis' => array(),
            'payum.default_options' => array(),
            'payum.required_options' => array(),
        ));

        return (array) $config;
    }
 /**
  * @test
  */
 public function shouldRenderObtainCheckoutTokenTemplate()
 {
     $twig = TwigFactory::createGeneric();
     $result = $twig->render('@PayumStripe/Action/obtain_checkout_token.html.twig', array('publishable_key' => 'theKey'));
     $this->assertContains('data-key="theKey"', $result);
     $this->assertContains('https://checkout.stripe.com/checkout.js', $result);
 }
示例#3
0
 /**
  * @param \Klarna_Checkout_ConnectorInterface $connector
  *
  * @return \Payum\Core\Payment
  */
 public static function create(\Klarna_Checkout_ConnectorInterface $connector, ActionInterface $renderTemplateAction = null, $layoutTemplate = null, $captureTemplate = null)
 {
     $layoutTemplate = $layoutTemplate ?: '@PayumCore/layout.html.twig';
     $captureTemplate = $captureTemplate ?: '@PayumKlarnaCheckout/Action/capture.html.twig';
     $renderTemplateAction = $renderTemplateAction ?: new RenderTemplateAction(TwigFactory::createGeneric(), $layoutTemplate);
     $payment = new Payment();
     $payment->addApi($connector);
     $payment->addAction(new CaptureAction($captureTemplate));
     $payment->addAction(new NotifyAction());
     $payment->addAction(new StatusAction());
     $payment->addAction(new CreateOrderAction());
     $payment->addAction(new UpdateOrderAction());
     $payment->addAction($renderTemplateAction);
     return $payment;
 }
示例#4
0
 /**
  * @param Keys $keys
  *
  * @return PaymentInterface
  */
 public static function createCheckout(Keys $keys, ActionInterface $renderTemplateAction = null, $layoutTemplate = null, $obtainTokenTemplate = null)
 {
     $layoutTemplate = $layoutTemplate ?: '@PayumCore/layout.html.twig';
     $obtainTokenTemplate = $obtainTokenTemplate ?: '@PayumStripe/Action/obtain_checkout_token.html.twig';
     $renderTemplateAction = $renderTemplateAction ?: new RenderTemplateAction(TwigFactory::createGeneric(), $layoutTemplate);
     $payment = new Payment();
     $payment->addApi($keys);
     $payment->addExtension(new EndlessCycleDetectorExtension());
     $payment->addAction(new CaptureAction());
     $payment->addAction(new StatusAction());
     $payment->addAction(new ExecuteSameRequestWithModelDetailsAction());
     $payment->addAction($renderTemplateAction);
     $payment->addAction(new ObtainTokenAction($obtainTokenTemplate));
     $payment->addAction(new CreateChargeAction());
     return $payment;
 }
示例#5
0
    /**
     * @test
     */
    public function shouldRenderExpectedResult()
    {
        $twig = TwigFactory::createGeneric();
        $actualResult = $twig->render('@PayumKlarnaCheckout/Action/capture.html.twig', array('snippet' => 'theSnippet'));
        $expectedResult = <<<HTML
<!DOCTYPE html>
<html>
    <head>
            </head>
    <body>
            theSnippet
            </body>
</html>
HTML;
        $this->assertEquals($expectedResult, $actualResult);
    }
示例#6
0
 /**
  * @test
  */
 public function shouldRenderCheckoutTokenWithDollarsIfNoCurrencySet()
 {
     $twig = TwigFactory::createGeneric();
     $result = $twig->render('@PayumStripe/Action/obtain_checkout_token.html.twig', array('model' => array('currency' => '')));
     $this->assertContains('data-currency="USD"', $result);
 }