From 4027f7e39e591e8099ef9802c17690075588a125 Mon Sep 17 00:00:00 2001 From: eivydas Date: Fri, 1 Sep 2017 11:22:31 +0300 Subject: [PATCH 1/6] Symfony 3 update --- .travis.yml | 10 +- Controller/PaymentController.php | 36 +++++-- Form/CreditCardType.php | 8 +- Resources/config/services.yml | 107 +++++++++++---------- Tests/CardinityServiceClientTest.php | 14 ++- Tests/Controller/PaymentControllerTest.php | 2 +- composer.json | 12 +-- 7 files changed, 114 insertions(+), 75 deletions(-) diff --git a/.travis.yml b/.travis.yml index ce20954..0673c5f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,14 @@ language: php php: - - 5.4 - - 5.5 - 5.6 + - 7.0 env: - - SYMFONY_VERSION=2.6.* - - SYMFONY_VERSION=2.7.* - - SYMFONY_VERSION=2.8.* + - SYMFONY_VERSION=3.0.* + - SYMFONY_VERSION=3.1.* + - SYMFONY_VERSION=3.2.* + - SYMFONY_VERSION=3.3.* before_script: - composer self-update diff --git a/Controller/PaymentController.php b/Controller/PaymentController.php index 57548a6..baa277f 100644 --- a/Controller/PaymentController.php +++ b/Controller/PaymentController.php @@ -13,6 +13,7 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Session\SessionInterface; use Symfony\Component\Routing\RouterInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; class PaymentController { @@ -31,25 +32,31 @@ class PaymentController /** @var Client */ private $payment; + /** @var ContainerInterface */ + private $container; + /** * @param EngineInterface $templating * @param RouterInterface $router * @param FormFactoryInterface $formFactory * @param SessionInterface $session * @param Client $payment + * @param ContainerInterface $container */ public function __construct( EngineInterface $templating, RouterInterface $router, FormFactoryInterface $formFactory, SessionInterface $session, - Client $payment + //Client $payment, + ContainerInterface $container ) { $this->templating = $templating; $this->router = $router; $this->formFactory = $formFactory; $this->session = $session; - $this->payment = $payment; + //$this->payment = $payment; + $this->container = $container; } /** @@ -90,7 +97,14 @@ public function processAction(Request $request) $params['payment_instrument'] = $form->getData(); $method = new Payment\Create($params); + try { + // TODO use cardinity_client.service.client + $this->payment = Client::create([ + 'consumerKey' => $this->container->getParameter('cardinity_client.consumer_key'), + 'consumerSecret' => $this->container->getParameter('cardinity_client.consumer_secret'), + ]); + /** @var Cardinity\Method\Payment\Payment */ $payment = $this->payment->call($method); if ($payment->isPending()) { @@ -102,10 +116,12 @@ public function processAction(Request $request) } elseif ($payment->isApproved()) { return $this->successResponse($payment); } + } catch (Exception\ValidationFailed $e) { + return $this->errorResponse('Payment validation failed: ' . print_r($e->getErrors(), true)); } catch (Exception\Declined $e) { return $this->errorResponse('Payment declined: ' . print_r($e->getErrors(), true)); } catch (Exception\Runtime $e) { - return $this->errorResponse('Unexpected error occurred: ' . print_r($e, true)); + return $this->errorResponse('Unexpected error occurred: ' . print_r($e->getPrevious()->getMessage(), true)); }; } @@ -157,15 +173,23 @@ public function processAuthorizationAction(Request $request) $payment->getId(), $pares ); + // TODO use cardinity_client.service.client + $this->payment = Client::create([ + 'consumerKey' => $this->container->getParameter('cardinity_client.consumer_key'), + 'consumerSecret' => $this->container->getParameter('cardinity_client.consumer_secret'), + ]); + /** @var Cardinity\Method\Payment\Payment */ $payment = $this->payment->call($method); } - + if ($payment->isApproved()) { return new RedirectResponse($this->router->generate('cardinity_client.payment_success')); } + } catch (Exception\Declined $e) { + return $this->errorResponse('Payment declined: ' . print_r($e->getErrors(), true)); } catch (Exception\Runtime $e) { - return $this->errorResponse('Unexpected error occurred. ' . $e->getMessage() . ': ' . print_r($e->getErrors(), true)); + return $this->errorResponse('Unexpected error occurred. ' . $e->getMessage()); }; return $this->errorResponse('Unexpected response while finalizing payment'); @@ -198,7 +222,7 @@ private function renderForm(Form $form) private function createForm() { - return $this->formFactory->create(new CreditCardType(), null, [ + return $this->formFactory->create(CreditCardType::class, null, [ 'action' => $this->router->generate('cardinity_client.payment_process'), ]); } diff --git a/Form/CreditCardType.php b/Form/CreditCardType.php index f171e6e..7d0f7ed 100644 --- a/Form/CreditCardType.php +++ b/Form/CreditCardType.php @@ -3,6 +3,8 @@ use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; +use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Validator\Constraints\Luhn; class CreditCardType extends AbstractType @@ -14,14 +16,14 @@ public function buildForm(FormBuilderInterface $builder, array $options) ->add('pan', null, [ 'constraints' => new Luhn(), ]) - ->add('exp_year', 'choice', [ + ->add('exp_year', ChoiceType::class, [ 'choices' => $this->years() ]) - ->add('exp_month', 'choice', [ + ->add('exp_month', ChoiceType::class, [ 'choices' => $this->months() ]) ->add('cvc') - ->add('save', 'submit') + ->add('save', SubmitType::class) ; } diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 9ab4e40..5d86536 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -1,73 +1,74 @@ parameters: cardinity_client.controller.payment.class: Cardinity\ClientBundle\Controller\PaymentController cardinity_client.service.oauth_subscriber.class: GuzzleHttp\Subscriber\Oauth\Oauth1 - cardinity_client.service.log_subscriber.class: GuzzleHttp\Subscriber\Log - cardinity_client.service.emitter.class: GuzzleHttp\Event\Emitter - cardinity_client.service.http_client.class: GuzzleHttp\Client - cardinity_client.service.result_object_mapper.class: Cardinity\Method\ResultObjectMapper - cardinity_client.service.exception_mapper.class: Cardinity\Http\Guzzle\ExceptionMapper - cardinity_client.service.client_adapter.class: Cardinity\Http\Guzzle\ClientAdapter - cardinity_client.service.client.class: Cardinity\Client - cardinity_client.service.validator.class: Cardinity\Method\Validator - cardinity_client.parameters.url: 'https://api.cardinity.com/v1/' - cardinity_client.parameters.defaults: - auth: 'oauth' + # cardinity_client.service.log_subscriber.class: GuzzleHttp\Subscriber\Log + # cardinity_client.service.emitter.class: GuzzleHttp\Event\Emitter + # cardinity_client.service.http_client.class: GuzzleHttp\Client + # cardinity_client.service.result_object_mapper.class: Cardinity\Method\ResultObjectMapper + # cardinity_client.service.exception_mapper.class: Cardinity\Http\Guzzle\ExceptionMapper + # cardinity_client.service.client_adapter.class: Cardinity\Http\Guzzle\ClientAdapter + # cardinity_client.service.client.class: Cardinity\Client + # cardinity_client.service.validator.class: Cardinity\Method\Validator + # cardinity_client.parameters.url: 'https://api.cardinity.com/v1/' + # cardinity_client.parameters.defaults: + # auth: 'oauth' services: cardinity_client.controller.payment: - class: %cardinity_client.controller.payment.class% + class: '%cardinity_client.controller.payment.class%' arguments: - - '@templating' - - '@router' - - '@form.factory' - - '@session' - - '@cardinity_client.service.client' + - '@templating' + - '@router' + - '@form.factory' + - '@session' + # - '@cardinity_client.service.client' + - '@service_container' cardinity_client.service.oauth_subscriber: - class: %cardinity_client.service.oauth_subscriber.class% + class: '%cardinity_client.service.oauth_subscriber.class%' arguments: - config: + $config: consumer_key: '%cardinity_client.consumer_key%' consumer_secret: '%cardinity_client.consumer_secret%' - cardinity_client.service.log_subscriber: - class: %cardinity_client.service.log_subscriber.class% + # cardinity_client.service.log_subscriber: + # class: '%cardinity_client.service.log_subscriber.class%' - cardinity_client.service.emitter: - class: %cardinity_client.service.emitter.class% - calls: - - [attach, ['@cardinity_client.service.oauth_subscriber']] + # cardinity_client.service.emitter: + # class: '%cardinity_client.service.emitter.class%' + # calls: + # - [attach, ['@cardinity_client.service.oauth_subscriber']] - cardinity_client.service.http_client: - class: %cardinity_client.service.http_client.class% - arguments: - config: - base_url: %cardinity_client.parameters.url% - defaults: %cardinity_client.parameters.defaults% - emitter: '@cardinity_client.service.emitter' + # cardinity_client.service.http_client: + # class: '%cardinity_client.service.http_client.class%' + # arguments: + # $config: + # base_url: '%cardinity_client.parameters.url%' + # defaults: '%cardinity_client.parameters.defaults%' + # emitter: '@cardinity_client.service.emitter' - cardinity_client.service.result_object_mapper: - class: %cardinity_client.service.result_object_mapper.class% + # cardinity_client.service.result_object_mapper: + # class: '%cardinity_client.service.result_object_mapper.class%' - cardinity_client.service.exception_mapper: - class: %cardinity_client.service.exception_mapper.class% - arguments: - client: '@cardinity_client.service.result_object_mapper' + # cardinity_client.service.exception_mapper: + # class: '%cardinity_client.service.exception_mapper.class%' + # arguments: + # $resultMapper: '@cardinity_client.service.result_object_mapper' - cardinity_client.service.client_adapter: - class: %cardinity_client.service.client_adapter.class% - arguments: - client: '@cardinity_client.service.http_client' - mapper: '@cardinity_client.service.exception_mapper' + # cardinity_client.service.client_adapter: + # class: '%cardinity_client.service.client_adapter.class%' + # arguments: + # $client: '@cardinity_client.service.http_client' + # $mapper: '@cardinity_client.service.exception_mapper' - cardinity_client.service.validator: - class: %cardinity_client.service.validator.class% - arguments: - validator: '@validator' + # cardinity_client.service.validator: + # class: '%cardinity_client.service.validator.class%' + # arguments: + # $validator: '@validator' - cardinity_client.service.client: - class: %cardinity_client.service.client.class% - arguments: - client: '@cardinity_client.service.client_adapter' - validator: '@cardinity_client.service.validator' - mapper: '@cardinity_client.service.result_object_mapper' + # cardinity_client.service.client: + # class: '%cardinity_client.service.client.class%' + # arguments: + # $client: '@cardinity_client.service.client_adapter' + # $validator: '@cardinity_client.service.validator' + # $mapper: '@cardinity_client.service.result_object_mapper' diff --git a/Tests/CardinityServiceClientTest.php b/Tests/CardinityServiceClientTest.php index 19677e0..e4e37da 100644 --- a/Tests/CardinityServiceClientTest.php +++ b/Tests/CardinityServiceClientTest.php @@ -3,12 +3,24 @@ use GuzzleHttp\Subscriber\Oauth\Oauth1; use Symfony\Component\DependencyInjection\Container; +use Cardinity\Client; class CardinityServiceClientTest extends AbstractTestCase { + private $container; + + public function __construct() + { + $this->container = $this->getContainer(); + } + public function testCardinityClientInstance() { - $client = $this->getContainer()->get('cardinity_client.service.client'); + //$client = $this->getContainer()->get('cardinity_client.service.client'); + $client = Client::create([ + 'consumerKey' => $this->container->getParameter('cardinity_client.consumer_key'), + 'consumerSecret' => $this->container->getParameter('cardinity_client.consumer_secret'), + ]); $this->assertInstanceOf('\Cardinity\Client', $client); } } diff --git a/Tests/Controller/PaymentControllerTest.php b/Tests/Controller/PaymentControllerTest.php index 22c4d10..3c9a391 100644 --- a/Tests/Controller/PaymentControllerTest.php +++ b/Tests/Controller/PaymentControllerTest.php @@ -39,7 +39,7 @@ public function testDetails() */ public function testProcess($crawler) { - $csrfToken = $this->client->getContainer()->get('form.csrf_provider')->generateCsrfToken('credit_card'); + $csrfToken = $this->client->getContainer()->get('security.csrf.token_manager')->getToken('credit_card'); $form = $crawler->selectButton('Save')->form(); diff --git a/composer.json b/composer.json index 9f4f690..ac36983 100644 --- a/composer.json +++ b/composer.json @@ -1,17 +1,17 @@ { "name": "cardinity/client-bundle", - "description": "Cardinity Credit Card payments bundle for Symfony2", - "homepage": "http://www.cardinity.com", + "description": "Cardinity Credit Card payments bundle for Symfony3", + "homepage": "https://cardinity.com", "type": "library", "license": "MIT", "require": { - "php" : ">=5.4.0", + "php" : ">=5.5.9", "cardinity/cardinity-sdk-php" : "~1.0", - "symfony/validator" : "~2.6" + "symfony/validator" : "~3.0" }, "require-dev": { - "symfony/http-kernel" : "~2.8", - "symfony/dependency-injection" : "~2.8", + "symfony/http-kernel" : "~3.0", + "symfony/dependency-injection" : "~3.0", "phpunit/phpunit" : "~4.4", "matthiasnoback/symfony-config-test" : "~1.0" }, From 5b82d9f993330691d7c10f2d125dd5cbc6670e75 Mon Sep 17 00:00:00 2001 From: eivydas Date: Tue, 12 Jun 2018 11:49:38 +0300 Subject: [PATCH 2/6] Update to Symfony 3 --- .travis.yml | 3 + CardinityClientBundle.php | 1 + Controller/PaymentController.php | 23 ++-- .../CardinityClientExtension.php | 2 +- Form/CreditCardType.php | 6 +- README.md | 8 +- Resources/config/services.yml | 113 +++++++++--------- .../Payment/begin_authorization.html.twig | 34 +++--- Resources/views/Payment/details.html.twig | 8 +- Resources/views/Payment/error.html.twig | 4 +- Resources/views/Payment/index.html.twig | 4 +- Resources/views/Payment/success.html.twig | 10 +- Tests/AbstractTestCase.php | 3 +- Tests/CardinityServiceClientTest.php | 7 +- Tests/Controller/PaymentControllerTest.php | 6 +- composer.json | 20 ++-- phpunit.xml.dist | 25 ++-- 17 files changed, 136 insertions(+), 141 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0673c5f..f07f6b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,12 +3,15 @@ language: php php: - 5.6 - 7.0 + - 7.1 + - 7.2 env: - SYMFONY_VERSION=3.0.* - SYMFONY_VERSION=3.1.* - SYMFONY_VERSION=3.2.* - SYMFONY_VERSION=3.3.* + - SYMFONY_VERSION=3.4.* before_script: - composer self-update diff --git a/CardinityClientBundle.php b/CardinityClientBundle.php index abd9cc0..ccd4b95 100644 --- a/CardinityClientBundle.php +++ b/CardinityClientBundle.php @@ -1,4 +1,5 @@ templating = $templating; $this->router = $router; $this->formFactory = $formFactory; $this->session = $session; - //$this->payment = $payment; + $this->payment = $payment; $this->container = $container; } @@ -99,12 +101,6 @@ public function processAction(Request $request) $method = new Payment\Create($params); try { - // TODO use cardinity_client.service.client - $this->payment = Client::create([ - 'consumerKey' => $this->container->getParameter('cardinity_client.consumer_key'), - 'consumerSecret' => $this->container->getParameter('cardinity_client.consumer_secret'), - ]); - /** @var Cardinity\Method\Payment\Payment */ $payment = $this->payment->call($method); if ($payment->isPending()) { @@ -121,7 +117,7 @@ public function processAction(Request $request) } catch (Exception\Declined $e) { return $this->errorResponse('Payment declined: ' . print_r($e->getErrors(), true)); } catch (Exception\Runtime $e) { - return $this->errorResponse('Unexpected error occurred: ' . print_r($e->getPrevious()->getMessage(), true)); + return $this->errorResponse('Unexpected error occurred: ' . print_r($e->getMessage(), true)); }; } @@ -173,11 +169,6 @@ public function processAuthorizationAction(Request $request) $payment->getId(), $pares ); - // TODO use cardinity_client.service.client - $this->payment = Client::create([ - 'consumerKey' => $this->container->getParameter('cardinity_client.consumer_key'), - 'consumerSecret' => $this->container->getParameter('cardinity_client.consumer_secret'), - ]); /** @var Cardinity\Method\Payment\Payment */ $payment = $this->payment->call($method); @@ -187,7 +178,7 @@ public function processAuthorizationAction(Request $request) return new RedirectResponse($this->router->generate('cardinity_client.payment_success')); } } catch (Exception\Declined $e) { - return $this->errorResponse('Payment declined: ' . print_r($e->getErrors(), true)); + return $this->errorResponse('Payment declined: ' . print_r($e->getErrors(), true)); } catch (Exception\Runtime $e) { return $this->errorResponse('Unexpected error occurred. ' . $e->getMessage()); }; diff --git a/DependencyInjection/CardinityClientExtension.php b/DependencyInjection/CardinityClientExtension.php index 1a12b05..6cf7812 100644 --- a/DependencyInjection/CardinityClientExtension.php +++ b/DependencyInjection/CardinityClientExtension.php @@ -25,7 +25,7 @@ public function load(array $configs, ContainerBuilder $container) $container->setParameter('cardinity_client.consumer_key', $config['consumer_key']); $container->setParameter('cardinity_client.consumer_secret', $config['consumer_secret']); - $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); + $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.yml'); } } diff --git a/Form/CreditCardType.php b/Form/CreditCardType.php index 7d0f7ed..c203b24 100644 --- a/Form/CreditCardType.php +++ b/Form/CreditCardType.php @@ -1,4 +1,5 @@ $this->months() ]) ->add('cvc') - ->add('save', SubmitType::class) - ; + ->add('save', SubmitType::class); } public function getName() @@ -35,7 +35,7 @@ public function getName() private function years() { $return = []; - for ($i = date('Y'); $i <= date('Y')+7; $i++) { + for ($i = date('Y'); $i <= date('Y') + 7; $i++) { $return[$i] = $i; } return $return; diff --git a/README.md b/README.md index d28de70..e5053f8 100644 --- a/README.md +++ b/README.md @@ -94,9 +94,9 @@ Cardinity\Settlement\GetAll($paymentId) #### Void ```php -Cardinity\Void\Create($paymentId, $description = null) -Cardinity\Void\Get($paymentId, $voidId) -Cardinity\Void\GetAll($paymentId) +Cardinity\VoidPayment\Create($paymentId, $description = null) +Cardinity\VoidPayment\Get($paymentId, $voidId) +Cardinity\VoidPayment\GetAll($paymentId) ``` #### Refund @@ -124,7 +124,7 @@ try { 'payment_method' => Cardinity\Payment\Create::CARD, 'payment_instrument' => [ 'pan' => '4111111111111111', - 'exp_year' => 2018, + 'exp_year' => 2021, 'exp_month' => 12, 'cvc' => '456', 'holder' => 'Mike Dough' diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 5d86536..c9cc06b 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -1,74 +1,73 @@ parameters: cardinity_client.controller.payment.class: Cardinity\ClientBundle\Controller\PaymentController cardinity_client.service.oauth_subscriber.class: GuzzleHttp\Subscriber\Oauth\Oauth1 - # cardinity_client.service.log_subscriber.class: GuzzleHttp\Subscriber\Log - # cardinity_client.service.emitter.class: GuzzleHttp\Event\Emitter - # cardinity_client.service.http_client.class: GuzzleHttp\Client - # cardinity_client.service.result_object_mapper.class: Cardinity\Method\ResultObjectMapper - # cardinity_client.service.exception_mapper.class: Cardinity\Http\Guzzle\ExceptionMapper - # cardinity_client.service.client_adapter.class: Cardinity\Http\Guzzle\ClientAdapter - # cardinity_client.service.client.class: Cardinity\Client - # cardinity_client.service.validator.class: Cardinity\Method\Validator - # cardinity_client.parameters.url: 'https://api.cardinity.com/v1/' - # cardinity_client.parameters.defaults: - # auth: 'oauth' + cardinity_client.service.stack.class: GuzzleHttp\HandlerStack + cardinity_client.service.http_client.class: GuzzleHttp\Client + cardinity_client.service.result_object_mapper.class: Cardinity\Method\ResultObjectMapper + cardinity_client.service.exception_mapper.class: Cardinity\Http\Guzzle\ExceptionMapper + cardinity_client.service.client_adapter.class: Cardinity\Http\Guzzle\ClientAdapter + cardinity_client.service.client.class: Cardinity\Client + cardinity_client.service.validator.class: Cardinity\Method\Validator + cardinity_client.parameters.url: 'https://api.cardinity.com/v1/' + cardinity_client.parameters.auth: 'oauth' + cardinity_client.parameters.verify: false services: cardinity_client.controller.payment: class: '%cardinity_client.controller.payment.class%' arguments: - - '@templating' - - '@router' - - '@form.factory' - - '@session' - # - '@cardinity_client.service.client' - - '@service_container' + - '@templating' + - '@router' + - '@form.factory' + - '@session' + - '@cardinity_client.service.client' + - '@service_container' cardinity_client.service.oauth_subscriber: - class: '%cardinity_client.service.oauth_subscriber.class%' - arguments: - $config: - consumer_key: '%cardinity_client.consumer_key%' - consumer_secret: '%cardinity_client.consumer_secret%' - - # cardinity_client.service.log_subscriber: - # class: '%cardinity_client.service.log_subscriber.class%' + class: '%cardinity_client.service.oauth_subscriber.class%' + arguments: + $config: + token_secret: '' + consumer_key: '%cardinity_client.consumer_key%' + consumer_secret: '%cardinity_client.consumer_secret%' - # cardinity_client.service.emitter: - # class: '%cardinity_client.service.emitter.class%' - # calls: - # - [attach, ['@cardinity_client.service.oauth_subscriber']] + cardinity_client.service.stack: + class: '%cardinity_client.service.stack.class%' + factory: ['%cardinity_client.service.stack.class%', create] + calls: + - [push, ['@cardinity_client.service.oauth_subscriber']] - # cardinity_client.service.http_client: - # class: '%cardinity_client.service.http_client.class%' - # arguments: - # $config: - # base_url: '%cardinity_client.parameters.url%' - # defaults: '%cardinity_client.parameters.defaults%' - # emitter: '@cardinity_client.service.emitter' + cardinity_client.service.http_client: + class: '%cardinity_client.service.http_client.class%' + arguments: + $config: + base_uri: '%cardinity_client.parameters.url%' + handler: '@cardinity_client.service.stack' + auth: '%cardinity_client.parameters.auth%' + verify: '%cardinity_client.parameters.verify%' - # cardinity_client.service.result_object_mapper: - # class: '%cardinity_client.service.result_object_mapper.class%' + cardinity_client.service.result_object_mapper: + class: '%cardinity_client.service.result_object_mapper.class%' - # cardinity_client.service.exception_mapper: - # class: '%cardinity_client.service.exception_mapper.class%' - # arguments: - # $resultMapper: '@cardinity_client.service.result_object_mapper' + cardinity_client.service.exception_mapper: + class: '%cardinity_client.service.exception_mapper.class%' + arguments: + $resultMapper: '@cardinity_client.service.result_object_mapper' - # cardinity_client.service.client_adapter: - # class: '%cardinity_client.service.client_adapter.class%' - # arguments: - # $client: '@cardinity_client.service.http_client' - # $mapper: '@cardinity_client.service.exception_mapper' + cardinity_client.service.client_adapter: + class: '%cardinity_client.service.client_adapter.class%' + arguments: + $client: '@cardinity_client.service.http_client' + $mapper: '@cardinity_client.service.exception_mapper' - # cardinity_client.service.validator: - # class: '%cardinity_client.service.validator.class%' - # arguments: - # $validator: '@validator' + cardinity_client.service.validator: + class: '%cardinity_client.service.validator.class%' + arguments: + $validator: '@validator' - # cardinity_client.service.client: - # class: '%cardinity_client.service.client.class%' - # arguments: - # $client: '@cardinity_client.service.client_adapter' - # $validator: '@cardinity_client.service.validator' - # $mapper: '@cardinity_client.service.result_object_mapper' + cardinity_client.service.client: + class: '%cardinity_client.service.client.class%' + arguments: + $client: '@cardinity_client.service.client_adapter' + $validator: '@cardinity_client.service.validator' + $mapper: '@cardinity_client.service.result_object_mapper' diff --git a/Resources/views/Payment/begin_authorization.html.twig b/Resources/views/Payment/begin_authorization.html.twig index 370141c..8aec677 100644 --- a/Resources/views/Payment/begin_authorization.html.twig +++ b/Resources/views/Payment/begin_authorization.html.twig @@ -1,21 +1,21 @@ {% extends 'CardinityClientBundle::layout.html.twig' %} {% block body %} -

Redirecting to credit card validation page

-

- If your browser does not start loading the page, - press the button below. - You will be sent back to this site after you - authorize the transaction. -

-
- - - - -
- +

Redirecting to credit card validation page

+

+ If your browser does not start loading the page, + press the button below. + You will be sent back to this site after you + authorize the transaction. +

+
+ + + + +
+ {% endblock %} diff --git a/Resources/views/Payment/details.html.twig b/Resources/views/Payment/details.html.twig index 36f0473..5bd0eec 100644 --- a/Resources/views/Payment/details.html.twig +++ b/Resources/views/Payment/details.html.twig @@ -1,9 +1,9 @@ {% extends 'CardinityClientBundle::layout.html.twig' %} {% block body %} -

Enter credit card details

+

Enter credit card details

-{{ form_start(form) }} -{{ form_widget(form) }} -{{ form_end(form) }} + {{ form_start(form) }} + {{ form_widget(form) }} + {{ form_end(form) }} {% endblock %} diff --git a/Resources/views/Payment/error.html.twig b/Resources/views/Payment/error.html.twig index 2233d5e..1517c57 100644 --- a/Resources/views/Payment/error.html.twig +++ b/Resources/views/Payment/error.html.twig @@ -1,6 +1,6 @@ {% extends 'CardinityClientBundle::layout.html.twig' %} {% block body %} -

Ooops! Something went wrong.

-

{{ message }}

+

Ooops! Something went wrong.

+

{{ message }}

{% endblock %} diff --git a/Resources/views/Payment/index.html.twig b/Resources/views/Payment/index.html.twig index e05230c..f4dd2e1 100644 --- a/Resources/views/Payment/index.html.twig +++ b/Resources/views/Payment/index.html.twig @@ -1,6 +1,6 @@ {% extends 'CardinityClientBundle::layout.html.twig' %} {% block body %} -

Press 'continue' to proceed checkout process

-

Continue

+

Press 'continue' to proceed checkout process

+

Continue

{% endblock %} diff --git a/Resources/views/Payment/success.html.twig b/Resources/views/Payment/success.html.twig index 512e0a8..d06eb35 100644 --- a/Resources/views/Payment/success.html.twig +++ b/Resources/views/Payment/success.html.twig @@ -1,8 +1,10 @@ {% extends 'CardinityClientBundle::layout.html.twig' %} {% block body %} -

Your payment has been successfully processed!

-

Amount: {{ payment.amount }} {{ payment.currency }}
-Description: {{ payment.description }}
-Order ID: {{ payment.orderId }}

+

Your payment has been successfully processed!

+

+ Amount: {{ payment.amount }} {{ payment.currency }}
+ Description: {{ payment.description }}
+ Order ID: {{ payment.orderId }} +

{% endblock %} diff --git a/Tests/AbstractTestCase.php b/Tests/AbstractTestCase.php index e19f527..82e48f2 100644 --- a/Tests/AbstractTestCase.php +++ b/Tests/AbstractTestCase.php @@ -1,4 +1,5 @@ method('getBundles') ->will($this->returnValue(array())); } - + $bundle = new CardinityClientBundle($kernel); $extension = $bundle->getContainerExtension(); $container = new ContainerBuilder(); diff --git a/Tests/CardinityServiceClientTest.php b/Tests/CardinityServiceClientTest.php index e4e37da..3a52b09 100644 --- a/Tests/CardinityServiceClientTest.php +++ b/Tests/CardinityServiceClientTest.php @@ -1,4 +1,5 @@ getContainer()->get('cardinity_client.service.client'); - $client = Client::create([ - 'consumerKey' => $this->container->getParameter('cardinity_client.consumer_key'), - 'consumerSecret' => $this->container->getParameter('cardinity_client.consumer_secret'), - ]); + $client = $this->getContainer()->get('cardinity_client.service.client'); $this->assertInstanceOf('\Cardinity\Client', $client); } } diff --git a/Tests/Controller/PaymentControllerTest.php b/Tests/Controller/PaymentControllerTest.php index 3c9a391..fe7e29f 100644 --- a/Tests/Controller/PaymentControllerTest.php +++ b/Tests/Controller/PaymentControllerTest.php @@ -45,9 +45,9 @@ public function testProcess($crawler) $form['credit_card[holder]'] = 'John Deer'; $form['credit_card[pan]'] = '4111111111111111'; - $form['credit_card[exp_year]'] = 2018; - $form['credit_card[exp_month]'] = 1; - $form['credit_card[cvc]'] = '123'; + $form['credit_card[exp_year]'] = 2021; + $form['credit_card[exp_month]'] = 12; + $form['credit_card[cvc]'] = '456'; $form['credit_card[_token]'] = $csrfToken; $this->client->submit($form); diff --git a/composer.json b/composer.json index ac36983..b31c68e 100644 --- a/composer.json +++ b/composer.json @@ -1,22 +1,24 @@ { "name": "cardinity/client-bundle", - "description": "Cardinity Credit Card payments bundle for Symfony3", + "description": "Cardinity Credit Card payments bundle for Symfony 3", "homepage": "https://cardinity.com", "type": "library", "license": "MIT", "require": { - "php" : ">=5.5.9", - "cardinity/cardinity-sdk-php" : "~1.0", - "symfony/validator" : "~3.0" + "php": ">=5.5.9", + "cardinity/cardinity-sdk-php": "~2.0", + "symfony/validator": "~3.0" }, "require-dev": { - "symfony/http-kernel" : "~3.0", - "symfony/dependency-injection" : "~3.0", - "phpunit/phpunit" : "~4.4", - "matthiasnoback/symfony-config-test" : "~1.0" + "symfony/http-kernel": "~3.0", + "symfony/dependency-injection": "~3.0", + "phpunit/phpunit": "~4.4", + "matthiasnoback/symfony-config-test": "~1.0" }, "autoload": { - "psr-4": { "Cardinity\\ClientBundle\\": "" } + "psr-4": { + "Cardinity\\ClientBundle\\": "" + } }, "config": { "bin-dir": "bin" diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 5f02ee2..e1edbb8 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -2,23 +2,22 @@ + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + syntaxCheck="false" + bootstrap="vendor/autoload.php" + mapTestClassNameToCoveredClassName="true" + forceCoversAnnotation="false"> ./Tests - ./Tests/Controller From 1a77d82a9866db6c7fbd2a3a5e1f9aa734ce2567 Mon Sep 17 00:00:00 2001 From: eivydas Date: Tue, 12 Jun 2018 12:02:44 +0300 Subject: [PATCH 3/6] Exclude ./Tests/Controller --- phpunit.xml.dist | 1 + 1 file changed, 1 insertion(+) diff --git a/phpunit.xml.dist b/phpunit.xml.dist index e1edbb8..5e59a1e 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -18,6 +18,7 @@ ./Tests + ./Tests/Controller From 9d4973031661722356c04e4a259280bf94cc89b7 Mon Sep 17 00:00:00 2001 From: eivydas Date: Tue, 12 Jun 2018 12:11:10 +0300 Subject: [PATCH 4/6] Remove sensiolabs insight badge --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e5053f8..bc13673 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ [![Build Status](https://travis-ci.org/cardinity/client-bundle.svg?branch=master)](https://travis-ci.org/cardinity/client-bundle) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/cardinity/client-bundle/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/cardinity/client-bundle/?branch=master) -[![SensioLabsInsight](https://insight.sensiolabs.com/projects/2706efcc-de8b-4848-89cc-c1c38f92536d/mini.png)](https://insight.sensiolabs.com/projects/2706efcc-de8b-4848-89cc-c1c38f92536d) ## Installation From 717f023af5269a02ddd4fd7a0e551bed6cf62e69 Mon Sep 17 00:00:00 2001 From: eivydas Date: Tue, 12 Jun 2018 13:09:00 +0300 Subject: [PATCH 5/6] Remove unused use statements --- Tests/AbstractTestCase.php | 4 ++-- Tests/CardinityServiceClientTest.php | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Tests/AbstractTestCase.php b/Tests/AbstractTestCase.php index 82e48f2..3569123 100644 --- a/Tests/AbstractTestCase.php +++ b/Tests/AbstractTestCase.php @@ -3,11 +3,11 @@ namespace Cardinity\ClientBundle\Tests; use \Cardinity\ClientBundle\CardinityClientBundle; -use PHPUnit_Framework_TestCase; +use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\HttpKernel\KernelInterface; -class AbstractTestCase extends PHPUnit_Framework_TestCase +class AbstractTestCase extends TestCase { protected function getContainer(array $config = array(), KernelInterface $kernel = null) { diff --git a/Tests/CardinityServiceClientTest.php b/Tests/CardinityServiceClientTest.php index 3a52b09..0965164 100644 --- a/Tests/CardinityServiceClientTest.php +++ b/Tests/CardinityServiceClientTest.php @@ -2,10 +2,6 @@ namespace Cardinity\ClientBundle\Tests; -use GuzzleHttp\Subscriber\Oauth\Oauth1; -use Symfony\Component\DependencyInjection\Container; -use Cardinity\Client; - class CardinityServiceClientTest extends AbstractTestCase { private $container; From 85a1feb83eb4e02549e92fe1a407e3cb2437cabc Mon Sep 17 00:00:00 2001 From: eivydas Date: Tue, 12 Jun 2018 15:04:23 +0300 Subject: [PATCH 6/6] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f07f6b9..4b3a5c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,4 +19,4 @@ before_script: - composer install --dev --no-interaction script: - - phpunit -c . + - bin/phpunit