From 85626513d1a95bf2649c2d53c0f5831f80469e4e Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Tue, 9 Jun 2020 13:33:35 +0200 Subject: [PATCH 1/6] move to karser/payum-saferpay --- composer.json | 6 ++--- .../Payum/Saferpay/Event/RefundEvent.php | 14 ++++++----- .../Saferpay/Form/Payment/SaferpayType.php | 7 ++++++ .../Saferpay/Resources/config/services.yml | 3 ++- .../Resources/public/pimcore/js/saferpay.js | 25 ++++++++++++++++--- .../Resources/translations/admin.de.yml | 5 ++-- .../Resources/translations/admin.en.yml | 1 + 7 files changed, 45 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index 098f615..d049d15 100644 --- a/composer.json +++ b/composer.json @@ -19,9 +19,9 @@ } ], "require": { - "php": "^7.1", - "dachcom-digital/payum-saferpay": "~1.2.0", - "coreshop/core-shop": "^2.0" + "php": "^7.2", + "karser/payum-saferpay": "~1.2.0", + "coreshop/core-shop": "^2.2" }, "config": { "bin-dir": "bin" diff --git a/src/CoreShop/Payum/Saferpay/Event/RefundEvent.php b/src/CoreShop/Payum/Saferpay/Event/RefundEvent.php index 44ac8f6..787b000 100644 --- a/src/CoreShop/Payum/Saferpay/Event/RefundEvent.php +++ b/src/CoreShop/Payum/Saferpay/Event/RefundEvent.php @@ -10,10 +10,11 @@ * @license https://www.coreshop.org/license GNU General Public License version 3 (GPLv3) */ - namespace CoreShop\Payum\SaferpayBundle\Event; +use CoreShop\Bundle\PayumBundle\Model\GatewayConfig; use CoreShop\Component\Payment\Model\PaymentInterface; +use Payum\Core\Reply\ReplyInterface; use Payum\Core\Request\Refund; use Payum\Core\Payum; @@ -25,8 +26,6 @@ class RefundEvent protected $payum; /** - * RefundEvent constructor. - * * @param Payum $payum */ public function __construct(Payum $payum) @@ -36,11 +35,14 @@ public function __construct(Payum $payum) /** * @param PaymentInterface $payment - * @throws \Payum\Core\Reply\ReplyInterface + * @throws ReplyInterface */ public function refund(PaymentInterface $payment) { - $saferpay = $this->payum->getGateway($payment->getPaymentProvider()->getGatewayConfig()->getGatewayName()); - $saferpay->execute(new Refund($payment)); + /** @var GatewayConfig $gatewayConfig */ + $gatewayConfig = $payment->getPaymentProvider()->getGatewayConfig(); + + $saferPay = $this->payum->getGateway($gatewayConfig->getGatewayName()); + $saferPay->execute(new Refund($payment)); } } diff --git a/src/CoreShop/Payum/Saferpay/Form/Payment/SaferpayType.php b/src/CoreShop/Payum/Saferpay/Form/Payment/SaferpayType.php index 1e707d4..e588701 100644 --- a/src/CoreShop/Payum/Saferpay/Form/Payment/SaferpayType.php +++ b/src/CoreShop/Payum/Saferpay/Form/Payment/SaferpayType.php @@ -63,6 +63,13 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'groups' => 'coreshop', ]), ], + ]) + ->add('interface', TextType::class, [ + 'constraints' => [ + new NotBlank([ + 'groups' => 'coreshop', + ]), + ], ]) ->add('optionalParameters', CollectionType::class, [ 'allow_add' => true, diff --git a/src/CoreShop/Payum/Saferpay/Resources/config/services.yml b/src/CoreShop/Payum/Saferpay/Resources/config/services.yml index 5910763..9c5e939 100644 --- a/src/CoreShop/Payum/Saferpay/Resources/config/services.yml +++ b/src/CoreShop/Payum/Saferpay/Resources/config/services.yml @@ -12,11 +12,12 @@ services: - { name: form.type } CoreShop\Payum\SaferpayBundle\Event\RefundEvent: + public: true arguments: - '@payum' payum.saferpay_gateway_factory: class: Payum\Core\Bridge\Symfony\Builder\GatewayFactoryBuilder - arguments: [DachcomDigital\Payum\Saferpay\SaferpayGatewayFactory] + arguments: [Karser\PayumSaferpay\SaferpayGatewayFactory] tags: - {name: payum.gateway_factory_builder, factory: saferpay } diff --git a/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js b/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js index a7e620c..adb28a6 100644 --- a/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js +++ b/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js @@ -32,9 +32,13 @@ coreshop.provider.gateways.saferpay = Class.create(coreshop.provider.gateways.ab ['test', 'Test'], ['production', 'Production'] ] - }); - - var optionalFields = [{ + }), storeInterface = new Ext.data.ArrayStore({ + fields: ['interface', 'interfaceName'], + data: [ + ['PAYMENT_PAGE', 'Payment Page'], + ['TRANSACTION', 'Transaction'] + ] + }), optionalFields = [{ xtype: 'label', anchor: '100%', style: 'display:block; padding:5px; background:#f5f5f5; border:1px solid #eee; font-weight: 300;', @@ -58,7 +62,7 @@ coreshop.provider.gateways.saferpay = Class.create(coreshop.provider.gateways.ab value: value }); - if(description != '') { + if (description !== '') { optionalFields.push({ xtype: 'label', text: description, @@ -110,6 +114,19 @@ coreshop.provider.gateways.saferpay = Class.create(coreshop.provider.gateways.ab length: 255, value: config.terminalId ? config.terminalId : '' }, + { + xtype: 'combobox', + fieldLabel: t('saferpay.config.interface'), + name: 'gatewayConfig.config.interface', + value: config.interface ? config.interface : 'PAYMENT_PAGE', + store: storeInterface, + triggerAction: 'all', + valueField: 'interface', + displayField: 'interfaceName', + mode: 'local', + forceSelection: true, + selectOnFocus: true + }, { xtype: 'fieldset', title: t('saferpay.config.optional_parameter'), diff --git a/src/CoreShop/Payum/Saferpay/Resources/translations/admin.de.yml b/src/CoreShop/Payum/Saferpay/Resources/translations/admin.de.yml index 307ebbb..596438b 100755 --- a/src/CoreShop/Payum/Saferpay/Resources/translations/admin.de.yml +++ b/src/CoreShop/Payum/Saferpay/Resources/translations/admin.de.yml @@ -1,6 +1,7 @@ saferpay.config.environment: 'Umgebung' saferpay.config.username: 'Benutzername' -saferpay.config.password: 'Password' -saferpay.config.customer_id: 'Customer ID' +saferpay.config.password: 'Passwort' +saferpay.config.customer_id: 'KUnden ID' saferpay.config.terminal_id: 'Terminal ID' +saferpay.config.interface: 'Interface Strategie' saferpay.config.optional_parameter: 'Optionale Parameter' \ No newline at end of file diff --git a/src/CoreShop/Payum/Saferpay/Resources/translations/admin.en.yml b/src/CoreShop/Payum/Saferpay/Resources/translations/admin.en.yml index 311a5cc..64e1c5d 100755 --- a/src/CoreShop/Payum/Saferpay/Resources/translations/admin.en.yml +++ b/src/CoreShop/Payum/Saferpay/Resources/translations/admin.en.yml @@ -3,4 +3,5 @@ saferpay.config.username: 'Username' saferpay.config.password: 'Password' saferpay.config.customer_id: 'Customer ID' saferpay.config.terminal_id: 'Terminal ID' +saferpay.config.interface: 'Interface Strategy' saferpay.config.optional_parameter: 'Optional Parameters' \ No newline at end of file From 863c38500c70c1e6f9de6e5e8323711c101dbab9 Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Tue, 9 Jun 2020 13:40:25 +0200 Subject: [PATCH 2/6] update readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f0c9602..6635f20 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # CoreShop Saferpay Payum Connector This Bundle activates the Saferpay PaymentGateway in CoreShop. -It requires the [dachcom-digital/payum-saferpay](https://github.com/dachcom-digital/payum-saferpay) repository which will be installed automatically. +It requires the [karser/PayumSaferpay](https://github.com/karser/PayumSaferpay) repository which will be installed automatically. ## Installation #### 1. Composer ```json - "coreshop/payum-saferpay-bundle": "~1.0.0" + "coreshop/payum-saferpay-bundle": "~2.0.0" ``` #### 2. Activate From c0826bf1cff6bedb57528d7ab59d0852c72fe09b Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Tue, 9 Jun 2020 13:42:15 +0200 Subject: [PATCH 3/6] update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index d049d15..2c6317c 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ ], "require": { "php": "^7.2", - "karser/payum-saferpay": "~1.2.0", + "karser/payum-saferpay": "^0.3", "coreshop/core-shop": "^2.2" }, "config": { From bd4b90cbcb475774380794f8f501e515633bc827 Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Tue, 9 Jun 2020 15:57:47 +0200 Subject: [PATCH 4/6] add Payer locale data --- .../Saferpay/Extension/ConvertPaymentExtension.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/CoreShop/Payum/Saferpay/Extension/ConvertPaymentExtension.php b/src/CoreShop/Payum/Saferpay/Extension/ConvertPaymentExtension.php index 2f61696..0265fe7 100644 --- a/src/CoreShop/Payum/Saferpay/Extension/ConvertPaymentExtension.php +++ b/src/CoreShop/Payum/Saferpay/Extension/ConvertPaymentExtension.php @@ -74,10 +74,16 @@ public function onPostExecute(Context $context) $result = ArrayObject::ensureArrayObject($request->getResult()); - $result['optional_payer_language_code'] = $gatewayLanguage; + $payerData = []; + if (isset($result['Payer']) && is_array($result['Payer'])) { + $payerData = $result['Payer']; + } + + $payerData['LanguageCode'] = $gatewayLanguage; - $request->setResult((array)$result); + $result['Payer'] = $payerData; + $request->setResult((array) $result); } /** @@ -85,7 +91,6 @@ public function onPostExecute(Context $context) */ public function onPreExecute(Context $context) { - } /** From 7cbef1d3deb4caa8f0c2c9686fe55419571e6fcb Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Tue, 9 Jun 2020 17:54:37 +0200 Subject: [PATCH 5/6] adjust config --- .../Payum/Saferpay/Resources/public/pimcore/js/saferpay.js | 2 +- src/CoreShop/Payum/Saferpay/Resources/translations/admin.de.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js b/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js index adb28a6..ae734d0 100644 --- a/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js +++ b/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js @@ -42,7 +42,7 @@ coreshop.provider.gateways.saferpay = Class.create(coreshop.provider.gateways.ab xtype: 'label', anchor: '100%', style: 'display:block; padding:5px; background:#f5f5f5; border:1px solid #eee; font-weight: 300;', - html: 'Payment_v1_PaymentPage_Initialize (v 1.8)' + html: 'Payment (PaymentPage, v1.10)' }]; Ext.Array.each(this.optionalFields, function (field) { diff --git a/src/CoreShop/Payum/Saferpay/Resources/translations/admin.de.yml b/src/CoreShop/Payum/Saferpay/Resources/translations/admin.de.yml index 596438b..2aacd89 100755 --- a/src/CoreShop/Payum/Saferpay/Resources/translations/admin.de.yml +++ b/src/CoreShop/Payum/Saferpay/Resources/translations/admin.de.yml @@ -1,7 +1,7 @@ saferpay.config.environment: 'Umgebung' saferpay.config.username: 'Benutzername' saferpay.config.password: 'Passwort' -saferpay.config.customer_id: 'KUnden ID' +saferpay.config.customer_id: 'Kunden ID' saferpay.config.terminal_id: 'Terminal ID' saferpay.config.interface: 'Interface Strategie' saferpay.config.optional_parameter: 'Optionale Parameter' \ No newline at end of file From 469a189f4ebc4a3ff6f55f0ae37b41f7e347ad77 Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Wed, 10 Jun 2020 09:30:12 +0200 Subject: [PATCH 6/6] add payer_note option --- .../Payum/Saferpay/Resources/public/pimcore/js/saferpay.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js b/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js index ae734d0..f611ab9 100644 --- a/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js +++ b/src/CoreShop/Payum/Saferpay/Resources/public/pimcore/js/saferpay.js @@ -22,6 +22,7 @@ coreshop.provider.gateways.saferpay = Class.create(coreshop.provider.gateways.ab {name: 'styling_content_security_enabled', defaultValue: '', description: ''}, {name: 'styling_theme', defaultValue: '', description: ''}, {name: 'config_set', defaultValue: '', description: ''}, + {name: 'payer_note', defaultValue: '', description: ''}, ], getLayout: function (config) {