From 15bd6c98eaf05b3cd6ec993da05c1768a84703b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20M=C3=BCller?= Date: Fri, 29 Apr 2022 11:11:49 +0200 Subject: [PATCH 01/57] [PAYONE-136] Add ratepay payment methods --- src/Configuration/ConfigurationPrefixes.php | 6 + src/Controller/SettingsController.php | 28 +++- .../requestParameter/builder.xml | 39 +++++ src/Installer/PaymentMethodInstaller.php | 9 + .../PayoneRatepayDebitPaymentHandler.php | 158 ++++++++++++++++++ ...PayoneRatepayInstallmentPaymentHandler.php | 158 ++++++++++++++++++ .../PayoneRatepayInvoicingPaymentHandler.php | 158 ++++++++++++++++++ src/PaymentMethod/PayoneRatepayDebit.php | 43 +++++ .../PayoneRatepayInstallment.php | 43 +++++ src/PaymentMethod/PayoneRatepayInvoicing.php | 43 +++++ .../AuthorizeRequestParameterBuilder.php | 35 ++++ .../PreAuthorizeRequestParameterBuilder.php | 32 ++++ .../AuthorizeRequestParameterBuilder.php | 35 ++++ .../PreAuthorizeRequestParameterBuilder.php | 32 ++++ .../AuthorizeRequestParameterBuilder.php | 35 ++++ .../PreAuthorizeRequestParameterBuilder.php | 32 ++++ .../page/payone-settings/index.js | 6 + .../module/payone-payment/snippet/de_DE.json | 5 +- .../module/payone-payment/snippet/en_GB.json | 5 +- src/Resources/config/settings.xml | 105 ++++++++++++ .../administration/js/payone-payment.js | 3 +- .../administration/js/payone-payment.js.map | 1 + 22 files changed, 1007 insertions(+), 4 deletions(-) create mode 100644 src/PaymentHandler/PayoneRatepayDebitPaymentHandler.php create mode 100644 src/PaymentHandler/PayoneRatepayInstallmentPaymentHandler.php create mode 100644 src/PaymentHandler/PayoneRatepayInvoicingPaymentHandler.php create mode 100644 src/PaymentMethod/PayoneRatepayDebit.php create mode 100644 src/PaymentMethod/PayoneRatepayInstallment.php create mode 100644 src/PaymentMethod/PayoneRatepayInvoicing.php create mode 100644 src/Payone/RequestParameter/Builder/RatepayDebit/AuthorizeRequestParameterBuilder.php create mode 100644 src/Payone/RequestParameter/Builder/RatepayDebit/PreAuthorizeRequestParameterBuilder.php create mode 100644 src/Payone/RequestParameter/Builder/RatepayInstallment/AuthorizeRequestParameterBuilder.php create mode 100644 src/Payone/RequestParameter/Builder/RatepayInstallment/PreAuthorizeRequestParameterBuilder.php create mode 100644 src/Payone/RequestParameter/Builder/RatepayInvoicing/AuthorizeRequestParameterBuilder.php create mode 100644 src/Payone/RequestParameter/Builder/RatepayInvoicing/PreAuthorizeRequestParameterBuilder.php create mode 100644 src/Resources/public/administration/js/payone-payment.js.map diff --git a/src/Configuration/ConfigurationPrefixes.php b/src/Configuration/ConfigurationPrefixes.php index f68fcb12c..cb0096a6a 100644 --- a/src/Configuration/ConfigurationPrefixes.php +++ b/src/Configuration/ConfigurationPrefixes.php @@ -24,6 +24,9 @@ interface ConfigurationPrefixes public const CONFIGURATION_PREFIX_SECURE_INVOICE = 'secureInvoice'; public const CONFIGURATION_PREFIX_OPEN_INVOICE = 'openInvoice'; public const CONFIGURATION_PREFIX_APPLE_PAY = 'applePay'; + public const CONFIGURATION_PREFIX_RATEPAY_DEBIT = 'ratepayDebit'; + public const CONFIGURATION_PREFIX_RATEPAY_INSTALLMENT = 'ratepayInstallment'; + public const CONFIGURATION_PREFIX_RATEPAY_INVOICING = 'ratepayInvoicing'; public const CONFIGURATION_PREFIXES = [ Handler\PayoneApplePayPaymentHandler::class => self::CONFIGURATION_PREFIX_APPLE_PAY, @@ -42,5 +45,8 @@ interface ConfigurationPrefixes Handler\PayoneTrustlyPaymentHandler::class => self::CONFIGURATION_PREFIX_TRUSTLY, Handler\PayoneSecureInvoicePaymentHandler::class => self::CONFIGURATION_PREFIX_SECURE_INVOICE, Handler\PayoneOpenInvoicePaymentHandler::class => self::CONFIGURATION_PREFIX_OPEN_INVOICE, + Handler\PayoneRatepayDebitPaymentHandler::class => self::CONFIGURATION_PREFIX_RATEPAY_DEBIT, + Handler\PayoneRatepayInstallmentPaymentHandler::class => self::CONFIGURATION_PREFIX_RATEPAY_INSTALLMENT, + Handler\PayoneRatepayInvoicingPaymentHandler::class => self::CONFIGURATION_PREFIX_RATEPAY_INVOICING, ]; } diff --git a/src/Controller/SettingsController.php b/src/Controller/SettingsController.php index 470b73615..3a794ccfe 100644 --- a/src/Controller/SettingsController.php +++ b/src/Controller/SettingsController.php @@ -368,7 +368,7 @@ private function getPaymentParameters(string $paymentClass): array 'businessrelation' => 'b2c', ]; - case Handler\PayoneOpenInvoicePaymentHandler::class: + case Handler\PayoneOpenInvoicePaymentHandler::class: return [ 'request' => 'preauthorization', 'clearingtype' => 'rec', @@ -421,6 +421,32 @@ private function getPaymentParameters(string $paymentClass): array 'ip' => '127.0.0.1', ]; + case Handler\PayoneRatepayDebitPaymentHandler::class: + return [ + 'request' => 'preauthorization', + 'clearingtype' => 'fnc', + 'financingtype' => 'RPD', + 'amount' => 10000, // ToDo: Nachfragen! + 'currency' => 'EUR', + 'company' => 'ToDo', + ]; + + case Handler\PayoneRatepayInstallmentPaymentHandler::class: + return [ + 'request' => 'preauthorization', + 'clearingtype' => 'fnc', + 'financingtype' => 'RPS', + 'amount' => 10000, // ToDo: Nachfragen! + ]; + + case Handler\PayoneRatepayInvoicingPaymentHandler::class: + return [ + 'request' => 'preauthorization', + 'clearingtype' => 'fnc', + 'financingtype' => 'RPV', + 'amount' => 10000, // ToDo: Nachfragen! + ]; + default: $this->logger->error(sprintf('There is no test data defined for payment class %s', $paymentClass)); throw new RuntimeException(sprintf('There is no test data defined for payment class %s', $paymentClass)); diff --git a/src/DependencyInjection/requestParameter/builder.xml b/src/DependencyInjection/requestParameter/builder.xml index 717356523..4ee9df7b0 100644 --- a/src/DependencyInjection/requestParameter/builder.xml +++ b/src/DependencyInjection/requestParameter/builder.xml @@ -353,6 +353,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Installer/PaymentMethodInstaller.php b/src/Installer/PaymentMethodInstaller.php index bdb128922..afc2c4078 100644 --- a/src/Installer/PaymentMethodInstaller.php +++ b/src/Installer/PaymentMethodInstaller.php @@ -19,6 +19,9 @@ use PayonePayment\PaymentMethod\PayonePaypal; use PayonePayment\PaymentMethod\PayonePaypalExpress; use PayonePayment\PaymentMethod\PayonePrepayment; +use PayonePayment\PaymentMethod\PayoneRatepayDebit; +use PayonePayment\PaymentMethod\PayoneRatepayInstallment; +use PayonePayment\PaymentMethod\PayoneRatepayInvoicing; use PayonePayment\PaymentMethod\PayoneSecureInvoice; use PayonePayment\PaymentMethod\PayoneSofortBanking; use PayonePayment\PaymentMethod\PayoneTrustly; @@ -54,6 +57,9 @@ class PaymentMethodInstaller implements InstallerInterface PayoneTrustly::class => '741f1deec67d4012bd3ccce265b2e15e', PayoneSecureInvoice::class => '4e8a9d3d3c6e428887573856b38c9003', PayoneOpenInvoice::class => '9024aa5a502b4544a745b6b64b486e21', + PayoneRatepayDebit::class => '48f2034b3c62480a8554781cf9cac574', + PayoneRatepayInstallment::class => '0af0f201fd164ca9ae72313c70201d18', + PayoneRatepayInvoicing::class => '240dcc8bf5fc409c9dcf840698c082aa', ]; public const HANDLER_IDENTIFIER_ROOT_NAMESPACE = 'PayonePayment'; @@ -75,6 +81,9 @@ class PaymentMethodInstaller implements InstallerInterface PayoneTrustly::class, PayoneSecureInvoice::class, PayoneOpenInvoice::class, + PayoneRatepayDebit::class, + PayoneRatepayInstallment::class, + PayoneRatepayInvoicing::class, ]; public const AFTER_ORDER_PAYMENT_METHODS = [ diff --git a/src/PaymentHandler/PayoneRatepayDebitPaymentHandler.php b/src/PaymentHandler/PayoneRatepayDebitPaymentHandler.php new file mode 100644 index 000000000..79068b33d --- /dev/null +++ b/src/PaymentHandler/PayoneRatepayDebitPaymentHandler.php @@ -0,0 +1,158 @@ +client = $client; + $this->translator = $translator; + $this->dataHandler = $dataHandler; + $this->stateHandler = $stateHandler; + $this->requestParameterFactory = $requestParameterFactory; + } + + /** + * {@inheritdoc} + */ + public function pay(AsyncPaymentTransactionStruct $transaction, RequestDataBag $dataBag, SalesChannelContext $salesChannelContext): RedirectResponse + { + $requestData = $this->fetchRequestData(); + + // Get configured authorization method + $authorizationMethod = $this->getAuthorizationMethod( + $transaction->getOrder()->getSalesChannelId(), + 'paypalAuthorizationMethod', + 'preauthorization' + ); + + $paymentTransaction = PaymentTransaction::fromAsyncPaymentTransactionStruct($transaction, $transaction->getOrder()); + + $request = $this->requestParameterFactory->getRequestParameter( + new PaymentTransactionStruct( + $paymentTransaction, + $requestData, + $salesChannelContext, + __CLASS__, + $authorizationMethod + ) + ); + + try { + $response = $this->client->request($request); + } catch (PayoneRequestException $exception) { + throw new AsyncPaymentProcessException( + $transaction->getOrderTransaction()->getId(), + $exception->getResponse()['error']['CustomerMessage'] + ); + } catch (Throwable $exception) { + throw new AsyncPaymentProcessException( + $transaction->getOrderTransaction()->getId(), + $this->translator->trans('PayonePayment.errorMessages.genericError') + ); + } + + if (empty($response['status']) || $response['status'] === 'ERROR') { + throw new AsyncPaymentProcessException( + $transaction->getOrderTransaction()->getId(), + $this->translator->trans('PayonePayment.errorMessages.genericError') + ); + } + + $data = $this->prepareTransactionCustomFields($request, $response, $this->getBaseCustomFields($response['status'])); + + $this->dataHandler->saveTransactionData($paymentTransaction, $salesChannelContext->getContext(), $data); + $this->dataHandler->logResponse($paymentTransaction, $salesChannelContext->getContext(), ['request' => $request, 'response' => $response]); + + if (strtolower($response['status']) === 'redirect') { + return new RedirectResponse($response['redirecturl']); + } + + return new RedirectResponse($request['successurl']); + } + + /** + * {@inheritdoc} + */ + public function finalize(AsyncPaymentTransactionStruct $transaction, Request $request, SalesChannelContext $salesChannelContext): void + { + $this->stateHandler->handleStateResponse($transaction, (string) $request->query->get('state', '')); + } + + /** + * {@inheritdoc} + */ + public static function isCapturable(array $transactionData, array $customFields): bool + { + if (static::isNeverCapturable($transactionData, $customFields)) { + return false; + } + + if (!array_key_exists(CustomFieldInstaller::AUTHORIZATION_TYPE, $customFields)) { + return false; + } + + return static::isTransactionAppointedAndCompleted($transactionData) || static::matchesIsCapturableDefaults($transactionData, $customFields); + } + + /** + * {@inheritdoc} + */ + public static function isRefundable(array $transactionData, array $customFields): bool + { + if (static::isNeverRefundable($transactionData, $customFields)) { + return false; + } + + return static::matchesIsRefundableDefaults($transactionData, $customFields); + } +} diff --git a/src/PaymentHandler/PayoneRatepayInstallmentPaymentHandler.php b/src/PaymentHandler/PayoneRatepayInstallmentPaymentHandler.php new file mode 100644 index 000000000..86ac2df50 --- /dev/null +++ b/src/PaymentHandler/PayoneRatepayInstallmentPaymentHandler.php @@ -0,0 +1,158 @@ +client = $client; + $this->translator = $translator; + $this->dataHandler = $dataHandler; + $this->stateHandler = $stateHandler; + $this->requestParameterFactory = $requestParameterFactory; + } + + /** + * {@inheritdoc} + */ + public function pay(AsyncPaymentTransactionStruct $transaction, RequestDataBag $dataBag, SalesChannelContext $salesChannelContext): RedirectResponse + { + $requestData = $this->fetchRequestData(); + + // Get configured authorization method + $authorizationMethod = $this->getAuthorizationMethod( + $transaction->getOrder()->getSalesChannelId(), + 'paypalAuthorizationMethod', + 'preauthorization' + ); + + $paymentTransaction = PaymentTransaction::fromAsyncPaymentTransactionStruct($transaction, $transaction->getOrder()); + + $request = $this->requestParameterFactory->getRequestParameter( + new PaymentTransactionStruct( + $paymentTransaction, + $requestData, + $salesChannelContext, + __CLASS__, + $authorizationMethod + ) + ); + + try { + $response = $this->client->request($request); + } catch (PayoneRequestException $exception) { + throw new AsyncPaymentProcessException( + $transaction->getOrderTransaction()->getId(), + $exception->getResponse()['error']['CustomerMessage'] + ); + } catch (Throwable $exception) { + throw new AsyncPaymentProcessException( + $transaction->getOrderTransaction()->getId(), + $this->translator->trans('PayonePayment.errorMessages.genericError') + ); + } + + if (empty($response['status']) || $response['status'] === 'ERROR') { + throw new AsyncPaymentProcessException( + $transaction->getOrderTransaction()->getId(), + $this->translator->trans('PayonePayment.errorMessages.genericError') + ); + } + + $data = $this->prepareTransactionCustomFields($request, $response, $this->getBaseCustomFields($response['status'])); + + $this->dataHandler->saveTransactionData($paymentTransaction, $salesChannelContext->getContext(), $data); + $this->dataHandler->logResponse($paymentTransaction, $salesChannelContext->getContext(), ['request' => $request, 'response' => $response]); + + if (strtolower($response['status']) === 'redirect') { + return new RedirectResponse($response['redirecturl']); + } + + return new RedirectResponse($request['successurl']); + } + + /** + * {@inheritdoc} + */ + public function finalize(AsyncPaymentTransactionStruct $transaction, Request $request, SalesChannelContext $salesChannelContext): void + { + $this->stateHandler->handleStateResponse($transaction, (string) $request->query->get('state', '')); + } + + /** + * {@inheritdoc} + */ + public static function isCapturable(array $transactionData, array $customFields): bool + { + if (static::isNeverCapturable($transactionData, $customFields)) { + return false; + } + + if (!array_key_exists(CustomFieldInstaller::AUTHORIZATION_TYPE, $customFields)) { + return false; + } + + return static::isTransactionAppointedAndCompleted($transactionData) || static::matchesIsCapturableDefaults($transactionData, $customFields); + } + + /** + * {@inheritdoc} + */ + public static function isRefundable(array $transactionData, array $customFields): bool + { + if (static::isNeverRefundable($transactionData, $customFields)) { + return false; + } + + return static::matchesIsRefundableDefaults($transactionData, $customFields); + } +} diff --git a/src/PaymentHandler/PayoneRatepayInvoicingPaymentHandler.php b/src/PaymentHandler/PayoneRatepayInvoicingPaymentHandler.php new file mode 100644 index 000000000..fa57d4055 --- /dev/null +++ b/src/PaymentHandler/PayoneRatepayInvoicingPaymentHandler.php @@ -0,0 +1,158 @@ +client = $client; + $this->translator = $translator; + $this->dataHandler = $dataHandler; + $this->stateHandler = $stateHandler; + $this->requestParameterFactory = $requestParameterFactory; + } + + /** + * {@inheritdoc} + */ + public function pay(AsyncPaymentTransactionStruct $transaction, RequestDataBag $dataBag, SalesChannelContext $salesChannelContext): RedirectResponse + { + $requestData = $this->fetchRequestData(); + + // Get configured authorization method + $authorizationMethod = $this->getAuthorizationMethod( + $transaction->getOrder()->getSalesChannelId(), + 'paypalAuthorizationMethod', + 'preauthorization' + ); + + $paymentTransaction = PaymentTransaction::fromAsyncPaymentTransactionStruct($transaction, $transaction->getOrder()); + + $request = $this->requestParameterFactory->getRequestParameter( + new PaymentTransactionStruct( + $paymentTransaction, + $requestData, + $salesChannelContext, + __CLASS__, + $authorizationMethod + ) + ); + + try { + $response = $this->client->request($request); + } catch (PayoneRequestException $exception) { + throw new AsyncPaymentProcessException( + $transaction->getOrderTransaction()->getId(), + $exception->getResponse()['error']['CustomerMessage'] + ); + } catch (Throwable $exception) { + throw new AsyncPaymentProcessException( + $transaction->getOrderTransaction()->getId(), + $this->translator->trans('PayonePayment.errorMessages.genericError') + ); + } + + if (empty($response['status']) || $response['status'] === 'ERROR') { + throw new AsyncPaymentProcessException( + $transaction->getOrderTransaction()->getId(), + $this->translator->trans('PayonePayment.errorMessages.genericError') + ); + } + + $data = $this->prepareTransactionCustomFields($request, $response, $this->getBaseCustomFields($response['status'])); + + $this->dataHandler->saveTransactionData($paymentTransaction, $salesChannelContext->getContext(), $data); + $this->dataHandler->logResponse($paymentTransaction, $salesChannelContext->getContext(), ['request' => $request, 'response' => $response]); + + if (strtolower($response['status']) === 'redirect') { + return new RedirectResponse($response['redirecturl']); + } + + return new RedirectResponse($request['successurl']); + } + + /** + * {@inheritdoc} + */ + public function finalize(AsyncPaymentTransactionStruct $transaction, Request $request, SalesChannelContext $salesChannelContext): void + { + $this->stateHandler->handleStateResponse($transaction, (string) $request->query->get('state', '')); + } + + /** + * {@inheritdoc} + */ + public static function isCapturable(array $transactionData, array $customFields): bool + { + if (static::isNeverCapturable($transactionData, $customFields)) { + return false; + } + + if (!array_key_exists(CustomFieldInstaller::AUTHORIZATION_TYPE, $customFields)) { + return false; + } + + return static::isTransactionAppointedAndCompleted($transactionData) || static::matchesIsCapturableDefaults($transactionData, $customFields); + } + + /** + * {@inheritdoc} + */ + public static function isRefundable(array $transactionData, array $customFields): bool + { + if (static::isNeverRefundable($transactionData, $customFields)) { + return false; + } + + return static::matchesIsRefundableDefaults($transactionData, $customFields); + } +} diff --git a/src/PaymentMethod/PayoneRatepayDebit.php b/src/PaymentMethod/PayoneRatepayDebit.php new file mode 100644 index 000000000..e2f2586df --- /dev/null +++ b/src/PaymentMethod/PayoneRatepayDebit.php @@ -0,0 +1,43 @@ + [ + 'name' => 'Payone Ratepay Lastschrift', + 'description' => 'ToDo', + ], + 'en-GB' => [ + 'name' => 'Payone Ratepay Direct Debit', + 'description' => 'ToDo', + ], + ]; + + /** @var int */ + protected $position = 102; // ToDo +} diff --git a/src/PaymentMethod/PayoneRatepayInstallment.php b/src/PaymentMethod/PayoneRatepayInstallment.php new file mode 100644 index 000000000..46f1eec4b --- /dev/null +++ b/src/PaymentMethod/PayoneRatepayInstallment.php @@ -0,0 +1,43 @@ + [ + 'name' => 'Payone Ratepay Ratenkauf', + 'description' => 'ToDo', + ], + 'en-GB' => [ + 'name' => 'Payone Ratepay Installments', + 'description' => 'ToDo', + ], + ]; + + /** @var int */ + protected $position = 102; // ToDo +} diff --git a/src/PaymentMethod/PayoneRatepayInvoicing.php b/src/PaymentMethod/PayoneRatepayInvoicing.php new file mode 100644 index 000000000..3c01434bb --- /dev/null +++ b/src/PaymentMethod/PayoneRatepayInvoicing.php @@ -0,0 +1,43 @@ + [ + 'name' => 'Payone Ratepay Rechnungskauf', + 'description' => 'ToDo', + ], + 'en-GB' => [ + 'name' => 'Payone Ratepay Open Invoice', + 'description' => 'ToDo', + ], + ]; + + /** @var int */ + protected $position = 102; // ToDo +} diff --git a/src/Payone/RequestParameter/Builder/RatepayDebit/AuthorizeRequestParameterBuilder.php b/src/Payone/RequestParameter/Builder/RatepayDebit/AuthorizeRequestParameterBuilder.php new file mode 100644 index 000000000..48b4010b5 --- /dev/null +++ b/src/Payone/RequestParameter/Builder/RatepayDebit/AuthorizeRequestParameterBuilder.php @@ -0,0 +1,35 @@ + self::REQUEST_ACTION_AUTHORIZE, + 'clearingtype' => self::CLEARING_TYPE_WALLET, + 'wallettype' => 'PPE', + ]; + } + + public function supports(AbstractRequestParameterStruct $arguments): bool + { + if (!($arguments instanceof PaymentTransactionStruct)) { + return false; + } + + $paymentMethod = $arguments->getPaymentMethod(); + $action = $arguments->getAction(); + + return $paymentMethod === PayoneRatepayDebitPaymentHandler::class && $action === self::REQUEST_ACTION_AUTHORIZE; + } +} diff --git a/src/Payone/RequestParameter/Builder/RatepayDebit/PreAuthorizeRequestParameterBuilder.php b/src/Payone/RequestParameter/Builder/RatepayDebit/PreAuthorizeRequestParameterBuilder.php new file mode 100644 index 000000000..c0a274f96 --- /dev/null +++ b/src/Payone/RequestParameter/Builder/RatepayDebit/PreAuthorizeRequestParameterBuilder.php @@ -0,0 +1,32 @@ + self::REQUEST_ACTION_PREAUTHORIZE, + ]); + } + + public function supports(AbstractRequestParameterStruct $arguments): bool + { + if (!($arguments instanceof PaymentTransactionStruct)) { + return false; + } + + $paymentMethod = $arguments->getPaymentMethod(); + $action = $arguments->getAction(); + + return $paymentMethod === PayoneRatepayDebitPaymentHandler::class && $action === self::REQUEST_ACTION_PREAUTHORIZE; + } +} diff --git a/src/Payone/RequestParameter/Builder/RatepayInstallment/AuthorizeRequestParameterBuilder.php b/src/Payone/RequestParameter/Builder/RatepayInstallment/AuthorizeRequestParameterBuilder.php new file mode 100644 index 000000000..c00012d1c --- /dev/null +++ b/src/Payone/RequestParameter/Builder/RatepayInstallment/AuthorizeRequestParameterBuilder.php @@ -0,0 +1,35 @@ + self::REQUEST_ACTION_AUTHORIZE, + 'clearingtype' => self::CLEARING_TYPE_WALLET, + 'wallettype' => 'PPE', + ]; + } + + public function supports(AbstractRequestParameterStruct $arguments): bool + { + if (!($arguments instanceof PaymentTransactionStruct)) { + return false; + } + + $paymentMethod = $arguments->getPaymentMethod(); + $action = $arguments->getAction(); + + return $paymentMethod === PayoneRatepayInstallmentPaymentHandler::class && $action === self::REQUEST_ACTION_AUTHORIZE; + } +} diff --git a/src/Payone/RequestParameter/Builder/RatepayInstallment/PreAuthorizeRequestParameterBuilder.php b/src/Payone/RequestParameter/Builder/RatepayInstallment/PreAuthorizeRequestParameterBuilder.php new file mode 100644 index 000000000..363188270 --- /dev/null +++ b/src/Payone/RequestParameter/Builder/RatepayInstallment/PreAuthorizeRequestParameterBuilder.php @@ -0,0 +1,32 @@ + self::REQUEST_ACTION_PREAUTHORIZE, + ]); + } + + public function supports(AbstractRequestParameterStruct $arguments): bool + { + if (!($arguments instanceof PaymentTransactionStruct)) { + return false; + } + + $paymentMethod = $arguments->getPaymentMethod(); + $action = $arguments->getAction(); + + return $paymentMethod === PayoneRatepayInstallmentPaymentHandler::class && $action === self::REQUEST_ACTION_PREAUTHORIZE; + } +} diff --git a/src/Payone/RequestParameter/Builder/RatepayInvoicing/AuthorizeRequestParameterBuilder.php b/src/Payone/RequestParameter/Builder/RatepayInvoicing/AuthorizeRequestParameterBuilder.php new file mode 100644 index 000000000..eca02c4d2 --- /dev/null +++ b/src/Payone/RequestParameter/Builder/RatepayInvoicing/AuthorizeRequestParameterBuilder.php @@ -0,0 +1,35 @@ + self::REQUEST_ACTION_AUTHORIZE, + 'clearingtype' => self::CLEARING_TYPE_WALLET, + 'wallettype' => 'PPE', + ]; + } + + public function supports(AbstractRequestParameterStruct $arguments): bool + { + if (!($arguments instanceof PaymentTransactionStruct)) { + return false; + } + + $paymentMethod = $arguments->getPaymentMethod(); + $action = $arguments->getAction(); + + return $paymentMethod === PayoneRatepayInvoicingPaymentHandler::class && $action === self::REQUEST_ACTION_AUTHORIZE; + } +} diff --git a/src/Payone/RequestParameter/Builder/RatepayInvoicing/PreAuthorizeRequestParameterBuilder.php b/src/Payone/RequestParameter/Builder/RatepayInvoicing/PreAuthorizeRequestParameterBuilder.php new file mode 100644 index 000000000..0a803c35f --- /dev/null +++ b/src/Payone/RequestParameter/Builder/RatepayInvoicing/PreAuthorizeRequestParameterBuilder.php @@ -0,0 +1,32 @@ + self::REQUEST_ACTION_PREAUTHORIZE, + ]); + } + + public function supports(AbstractRequestParameterStruct $arguments): bool + { + if (!($arguments instanceof PaymentTransactionStruct)) { + return false; + } + + $paymentMethod = $arguments->getPaymentMethod(); + $action = $arguments->getAction(); + + return $paymentMethod === PayoneRatepayInvoicingPaymentHandler::class && $action === self::REQUEST_ACTION_PREAUTHORIZE; + } +} diff --git a/src/Resources/app/administration/src/module/payone-payment/page/payone-settings/index.js b/src/Resources/app/administration/src/module/payone-payment/page/payone-settings/index.js index d4ddb6b78..3e231f9fb 100644 --- a/src/Resources/app/administration/src/module/payone-payment/page/payone-settings/index.js +++ b/src/Resources/app/administration/src/module/payone-payment/page/payone-settings/index.js @@ -48,6 +48,9 @@ Component.register('payone-settings', { 'payment_secure_invoice': true, 'payment_open_invoice': true, 'payment_apple_pay': true, + 'payment_ratepay_debit': true, + 'payment_ratepay_installment': true, + 'payment_ratepay_invoicing': true, }, }; }, @@ -113,6 +116,9 @@ Component.register('payone-settings', { 'secureInvoice', 'openInvoice', 'applePay', + 'ratepayDebit', + 'ratepayInstallment', + 'ratepayInvoicing', ]; }, diff --git a/src/Resources/app/administration/src/module/payone-payment/snippet/de_DE.json b/src/Resources/app/administration/src/module/payone-payment/snippet/de_DE.json index bdb75a828..7b4c0f147 100644 --- a/src/Resources/app/administration/src/module/payone-payment/snippet/de_DE.json +++ b/src/Resources/app/administration/src/module/payone-payment/snippet/de_DE.json @@ -78,7 +78,10 @@ "openInvoice": "Die API-Zugangsdaten für PAYONE Rechnungskauf sind nicht korrekt.", "paydirekt": "Die API-Zugangsdaten für PAYONE paydirekt sind nicht korrekt.", "trustly": "Die API-Zugangsdaten für PAYONE Trustly sind nicht korrekt.", - "applePay": "Die API-Zugangsdaten für PAYONE Apple Pay sind nicht korrekt." + "applePay": "Die API-Zugangsdaten für PAYONE Apple Pay sind nicht korrekt.", + "ratepayDebit": "Die API-Zugangsdaten für PAYONE Ratepay Lastschrift sind nicht korrekt.", + "ratepayInstallment": "Die API-Zugangsdaten für PAYONE Ratepay Ratenzahlung sind nicht korrekt.", + "ratepayInvoicing": "Die API-Zugangsdaten für PAYONE Ratepay Rechnungskauf sind nicht korrekt." } }, "supportModal": { diff --git a/src/Resources/app/administration/src/module/payone-payment/snippet/en_GB.json b/src/Resources/app/administration/src/module/payone-payment/snippet/en_GB.json index ed518a417..65c27da27 100644 --- a/src/Resources/app/administration/src/module/payone-payment/snippet/en_GB.json +++ b/src/Resources/app/administration/src/module/payone-payment/snippet/en_GB.json @@ -78,7 +78,10 @@ "openInvoice": "The API credentials for PAYONE Invoice are not valid.", "paydirekt": "The API credentials for PAYONE paydirekt are not valid.", "trustly": "The API credentials for PAYONE Trustly are not valid.", - "applePay": "The API credentials for PAYONE Apple Pay are not valid." + "applePay": "The API credentials for PAYONE Apple Pay are not valid.", + "ratepayDebit": "The API credentials for PAYONE Ratepay Direct Debit payment are not valid.", + "ratepayInstallment": "The API credentials for PAYONE Ratepay Installments payment are not valid.", + "ratepayInvoicing": "The API credentials for PAYONE Ratepay Open Invoice payment are not valid." } }, "supportModal": { diff --git a/src/Resources/config/settings.xml b/src/Resources/config/settings.xml index 1d9fdb12c..314a5f4f6 100644 --- a/src/Resources/config/settings.xml +++ b/src/Resources/config/settings.xml @@ -2671,4 +2671,109 @@ + + + Ratepay Direct Debit + Ratepay Lastschrift + + payment_ratepay_debit + + + ratepayDebitMerchantId + + Uses the basic configuration value if nothing is entered here. + Nutzt den Wert der Grundeinstellungen, falls nichts eingetragen wird. + + + + ratepayDebitAccountId + + Uses the basic configuration value if nothing is entered here. + Nutzt den Wert der Grundeinstellungen, falls nichts eingetragen wird. + + + + ratepayDebitPortalId + + You need an ID to a separate payment gateway to use this payment method. + Sie benötigen eine ID zu einem separates Zahlungsportal um diese Zahlart verwenden zu können. + + + + ratepayDebitPortalKey + + You need a key to a separate payment gateway to use this payment method. + Sie benötigen einen Schlüssel zu einem separaten Zahlungsportal um diese Zahlart verwenden zu können. + + + + + Ratepay Installments + Ratepay Ratenkauf + + payment_ratepay_installment + + + ratepayInstallmentMerchantId + + Uses the basic configuration value if nothing is entered here. + Nutzt den Wert der Grundeinstellungen, falls nichts eingetragen wird. + + + + ratepayInstallmentAccountId + + Uses the basic configuration value if nothing is entered here. + Nutzt den Wert der Grundeinstellungen, falls nichts eingetragen wird. + + + + ratepayInstallmentPortalId + + You need an ID to a separate payment gateway to use this payment method. + Sie benötigen eine ID zu einem separates Zahlungsportal um diese Zahlart verwenden zu können. + + + + ratepayInstallmentPortalKey + + You need a key to a separate payment gateway to use this payment method. + Sie benötigen einen Schlüssel zu einem separaten Zahlungsportal um diese Zahlart verwenden zu können. + + + + + Ratepay Open Invoice + Ratepay Rechnungskauf + + payment_ratepay_invoicing + + + ratepayInvoicingMerchantId + + Uses the basic configuration value if nothing is entered here. + Nutzt den Wert der Grundeinstellungen, falls nichts eingetragen wird. + + + + ratepayInvoicingAccountId + + Uses the basic configuration value if nothing is entered here. + Nutzt den Wert der Grundeinstellungen, falls nichts eingetragen wird. + + + + ratepayInvoicingPortalId + + You need an ID to a separate payment gateway to use this payment method. + Sie benötigen eine ID zu einem separates Zahlungsportal um diese Zahlart verwenden zu können. + + + + ratepayInvoicingPortalKey + + You need a key to a separate payment gateway to use this payment method. + Sie benötigen einen Schlüssel zu einem separaten Zahlungsportal um diese Zahlart verwenden zu können. + + diff --git a/src/Resources/public/administration/js/payone-payment.js b/src/Resources/public/administration/js/payone-payment.js index c4b63e7b0..3875738b7 100644 --- a/src/Resources/public/administration/js/payone-payment.js +++ b/src/Resources/public/administration/js/payone-payment.js @@ -1 +1,2 @@ -!function(e){var t={};function n(a){if(t[a])return t[a].exports;var i=t[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(a,i,function(t){return e[t]}.bind(null,i));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/bundles/administration/",n(n.s="OPxs")}({"/5aH":function(e){e.exports=JSON.parse('{"payonePayment":{"notificationTarget":{"module":{"title":"Payone Notificationweiterleitungen","buttonTitle":"Notifications"},"list":{"title":"Notificationweiterleitungen","empty":"Keine Einträge","buttonCreate":"Weiterleitungsziel anlegen"},"detail":{"headline":"Notificationweiterleitung","placeholder":{"url":"Url","username":"Benutzer","password":"Passwort"},"label":{"url":"Url","isBasicAuth":"Basic Auth","txactions":"txactions","buttonSave":"Speichern","buttonCancel":"Abbrechen","username":"Benutzer","password":"Passwort"}},"columns":{"url":"Url","isBasicAuth":"Basic Auth","txactions":"txactions"},"actions":{"requeue":"Erneut senden"},"messages":{"success":"Die Weiterleitung wurde erfolgreich in Auftrag gegeben."}}}}')},"4N/A":function(e,t){try{Shopware.Service("privileges").addPrivilegeMappingEntry({category:"additional_permissions",parent:null,key:"Payone",roles:{payone_order_management:{privileges:["order_transaction:update","order_line_item:update","state_machine_history:create",Shopware.Service("privileges").getPrivileges("order.viewer")],dependencies:[]}}})}catch(e){}},"6Sbp":function(e,t,n){},"9uY+":function(e,t,n){},AuFV:function(e,t){e.exports='{% block sw_data_grid_select_item_checkbox %}\n \n \n\n \n \n{% endblock %}\n'},CXwR:function(e,t){e.exports='{% block payone_notification_target_detail %}\n \n\n {% block payone_notification_target_detail_header %}\n \n {% endblock %}\n\n {% block payone_notification_target_detail_actions %}\n \n {% endblock %}\n\n {% block payone_notification_target_detail_content %}\n \n\n {% block payone_notification_target_detail_base_basic_info_card %}\n \n \n \n {% endblock %}\n \n {% endblock %}\n\n \n{% endblock %}\n'},E7l4:function(e,t){e.exports='{% block payone_payment_details %}\n
\n \n\n \n\n \n\n \n \n
\n{% endblock %}\n'},HSuo:function(e,t){e.exports='{% block payone_notification_target_list %}\n \n\n {% block payone_notification_target_list_smart_bar_header %}\n \n {% endblock %}\n\n {% block payone_notification_target_list_actions %}\n \n {% endblock %}\n\n {% block payone_notification_target_list_content %}\n \n {% endblock %}\n\n {% block payone_notification_target_list_sidebar %}\n \n {% endblock %}\n \n{% endblock %}\n'},JUJR:function(e,t,n){},Jolr:function(e,t,n){var a=n("Pem7");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("8b19777a",a,!0,{})},KBQv:function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:"payone";return a(this,l),c.call(this,e,t,n)}return t=l,(n=[{key:"requeueNotificationForward",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/requeue-forward");return this.httpClient.post(t,e,{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"capturePayment",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/capture-payment");return this.httpClient.post(t,e,{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"refundPayment",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/refund-payment");return this.httpClient.post(t,e,{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}}])&&i(t.prototype,n),s&&i(t,s),l}(u);l.addServiceProvider("PayonePaymentService",(function(e){var t=l.getContainer("init");return new d(t.httpClient,e.loginService)}))},Klmz:function(e,t,n){var a=n("vPx4");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("630eccbc",a,!0,{})},Lvox:function(e,t,n){var a=n("6Sbp");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("24efb882",a,!0,{})},McCE:function(e,t,n){var a=n("m5R7");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("1583fa8a",a,!0,{})},OPxs:function(e,t,n){"use strict";n.r(t);var a=n("asGc"),i=n.n(a);n("qwju");function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t0&&this.capturedAmount>0||this.transaction.customFields.payone_allow_capture)},isItemSelected:function(){var e=!1;return this.selection.forEach((function(t){t.selected&&(e=!0)})),e}},data:function(){return{isLoading:!1,hasError:!1,showCaptureModal:!1,isCaptureSuccessful:!1,selection:[],captureAmount:0}},methods:{calculateCaptureAmount:function(){var e=0;this.selection.forEach((function(t){t.selected&&(e+=t.unit_price*t.quantity)})),e>this.remainingAmount&&(e=this.remainingAmount),this.captureAmount=e},openCaptureModal:function(){this.showCaptureModal=!0,this.isCaptureSuccessful=!1,this.selection=[]},closeCaptureModal:function(){this.showCaptureModal=!1},onCaptureFinished:function(){this.isCaptureSuccessful=!1},captureOrder:function(){var e=this,t={orderTransactionId:this.transaction.id,payone_order_id:this.transaction.customFields.payone_transaction_id,salesChannel:this.order.salesChannel,amount:this.captureAmount,orderLines:[],complete:this.captureAmount===this.remainingAmount};this.isLoading=!0,this.selection.forEach((function(n){e.order.lineItems.forEach((function(e){if(e.id===n.id&&n.selected&&00&&this.refundedAmount>0||this.transaction.customFields.payone_allow_refund)}},methods:{calculateRefundAmount:function(){var e=0;this.selection.forEach((function(t){t.selected&&(e+=t.unit_price*t.quantity)})),Math.round(e*Math.pow(10,this.decimalPrecision)>this.remainingAmount)&&(e=this.remainingAmount/Math.pow(10,this.decimalPrecision)),this.refundAmount=e},openRefundModal:function(){this.showRefundModal=!0,this.isRefundSuccessful=!1,this.selection=[]},closeRefundModal:function(){this.showRefundModal=!1},onRefundFinished:function(){this.isRefundSuccessful=!1},refundOrder:function(){var e=this,t={orderTransactionId:this.transaction.id,payone_order_id:this.transaction.customFields.payone_transaction_id,salesChannel:this.order.salesChannel,amount:this.refundAmount,orderLines:[],complete:this.refundAmount===this.maxRefundAmount};this.isLoading=!0,this.selection.forEach((function(n){e.order.lineItems.forEach((function(a){if(a.id===n.id&&n.selected&&0n.customFields.payone_captured_quantity&&(o=n.customFields.payone_captured_quantity),n.customFields.payone_refunded_quantity&&(o-=n.customFields.payone_refunded_quantity)):"capture"===e.mode&&n.customFields.payone_captured_quantity&&0o&&(i=!0),t.push({id:n.id,product:n.label,quantity:o,disabled:i,selected:!1,price:a,orderItem:n})})),t},orderItemColumns:function(){return[{property:"product",label:this.$tc("payone-payment.modal.columns.product"),rawData:!0},{property:"quantity",label:this.$tc("payone-payment.modal.columns.quantity"),rawData:!0},{property:"price",label:this.$tc("payone-payment.modal.columns.price"),rawData:!0}]}},methods:{onSelectItem:function(e,t,n){this.$emit("select-item",t.id,n)},onChangeQuantity:function(e,t){this.$emit("change-quantity",t,e)}}});var w=n("AuFV"),P=n.n(w);Shopware.Component.extend("payone-data-grid","sw-data-grid",{template:P.a});var S=n("h40c"),k=n.n(S);n("OR/K");Shopware.Component.register("payone-payment-plugin-icon",{template:k.a});var A=n("mLM4"),T=n.n(A),C=(n("McCE"),Shopware),x=C.Component,E=C.Mixin,I=Shopware.Utils,O=I.object,F=I.types;x.register("payone-settings",{template:T.a,mixins:[E.getByName("notification"),E.getByName("sw-inline-snippet")],inject:["PayonePaymentSettingsService"],data:function(){return{isLoading:!1,isTesting:!1,isSaveSuccessful:!1,isTestSuccessful:!1,isApplePayCertConfigured:!0,config:{},merchantIdFilled:!1,accountIdFilled:!1,portalIdFilled:!1,portalKeyFilled:!1,showValidationErrors:!1,isSupportModalOpen:!1,stateMachineTransitionActions:[],displayStatusMapping:{},collapsibleState:{status_mapping:!0,payment_credit_card:!0,payment_paypal:!0,payment_paypal_express:!0,payment_debit:!0,payment_sofort:!0,payment_payolution_installment:!0,payment_payolution_invoicing:!0,payment_payolution_debit:!0,payment_eps:!0,payment_ideal:!0,payment_paydirekt:!0,payment_prepayment:!0,payment_trustly:!0,payment_secure_invoice:!0,payment_open_invoice:!0,payment_apple_pay:!0}}},created:function(){this.createdComponent()},computed:{credentialsMissing:function(){return!(this.merchantIdFilled&&this.accountIdFilled&&this.portalIdFilled&&this.portalKeyFilled)}},metaInfo:function(){return{title:this.$createTitle()}},methods:{createdComponent:function(){var e=this,t=this;this.PayonePaymentSettingsService.getStateMachineTransitionActions().then((function(e){e.data.forEach((function(e){var n="payone-payment.transitionActionNames."+e.label,a=t.$t(n);a===n&&(a=e.label),t.stateMachineTransitionActions.push({label:a,value:e.value})}))})),this.PayonePaymentSettingsService.hasApplePayCert().then((function(t){e.isApplePayCertConfigured=t}))},paymentMethodPrefixes:function(){return["creditCard","debit","paypal","paypalExpress","payolutionInvoicing","payolutionInstallment","payolutionDebit","sofort","eps","iDeal","paydirekt","prepayment","trustly","secureInvoice","openInvoice","applePay"]},isVisiblePaymentMethodCard:function(e){return e.name.startsWith("payment")&&!this.isCollapsed(e)},isCollapsible:function(e){return e.name in this.collapsibleState},displayField:function(e,t,n){return!(n.name in this.collapsibleState)||!this.collapsibleState[n.name]},isCollapsed:function(e){return this.collapsibleState[e.name]},toggleCollapsible:function(e){e.name in this.collapsibleState&&(this.collapsibleState[e.name]=!this.collapsibleState[e.name])},saveFinish:function(){this.isSaveSuccessful=!1},testFinish:function(){this.isTestSuccessful=!1},onConfigChange:function(e){this.config=e,this.checkCredentialsFilled(),this.showValidationErrors=!1},checkCredentialsFilled:function(){this.merchantIdFilled=!!this.getConfigValue("merchantId"),this.accountIdFilled=!!this.getConfigValue("accountId"),this.portalIdFilled=!!this.getConfigValue("portalId"),this.portalKeyFilled=!!this.getConfigValue("portalKey")},getConfigValue:function(e){var t=this.$refs.systemConfig.actualConfigData.null;return null===this.$refs.systemConfig.currentSalesChannelId?this.config["PayonePayment.settings.".concat(e)]:this.config["PayonePayment.settings.".concat(e)]||t["PayonePayment.settings.".concat(e)]},getPaymentConfigValue:function(e,t){var n=e.charAt(0).toUpperCase()+e.slice(1);return this.getConfigValue(t+n)||this.getConfigValue(e)},onSave:function(){var e=this;this.credentialsMissing?this.showValidationErrors=!0:(this.isSaveSuccessful=!1,this.isLoading=!0,this.$refs.systemConfig.saveAll().then((function(){e.isLoading=!1,e.isSaveSuccessful=!0})).catch((function(){e.isLoading=!1})))},onTest:function(){var e=this;this.isTesting=!0,this.isTestSuccessful=!1;var t={};this.paymentMethodPrefixes().forEach((function(n){t[n]={merchantId:e.getPaymentConfigValue("merchantId",n),accountId:e.getPaymentConfigValue("accountId",n),portalId:e.getPaymentConfigValue("portalId",n),portalKey:e.getPaymentConfigValue("portalKey",n)}})),this.PayonePaymentSettingsService.validateApiCredentials(t).then((function(t){var n=t.testCount,a=t.credentialsValid,i=t.errors;if(a)e.createNotificationSuccess({title:e.$tc("payone-payment.settingsForm.titleSuccess"),message:n>0?e.$tc("payone-payment.settingsForm.messageTestSuccess"):e.$tc("payone-payment.settingsForm.messageTestNoTestedPayments")}),e.isTestSuccessful=!0;else for(var o in i)i.hasOwnProperty(o)&&e.createNotificationError({title:e.$tc("payone-payment.settingsForm.titleError"),message:e.$tc("payone-payment.settingsForm.messageTestError."+o)});e.isTesting=!1})).catch((function(t){e.createNotificationError({title:e.$tc("payone-payment.settingsForm.titleError"),message:e.$tc("payone-payment.settingsForm.messageTestError.general")}),e.isTesting=!1}))},getBind:function(e,t){var n;return t!==this.config&&(this.config=t),this.showValidationErrors&&("PayonePayment.settings.merchantId"!==e.name||this.merchantIdFilled||(e.config.error={code:1,detail:this.$tc("payone-payment.messageNotBlank")}),"PayonePayment.settings.accountId"!==e.name||this.accountIdFilled||(e.config.error={code:1,detail:this.$tc("payone-payment.messageNotBlank")}),"PayonePayment.settings.portalId"!==e.name||this.portalIdFilled||(e.config.error={code:1,detail:this.$tc("payone-payment.messageNotBlank")}),"PayonePayment.settings.portalKey"!==e.name||this.portalKeyFilled||(e.config.error={code:1,detail:this.$tc("payone-payment.messageNotBlank")})),this.$refs.systemConfig.config.forEach((function(t){t.elements.forEach((function(t){t.name!==e.name||(n=t)}))})),n||e},getElementBind:function(e){var t=O.deepCopyObject(e);return null!==this.currentSalesChannelId&&this.inherit&&this.actualConfigData.hasOwnProperty("null")&&null!==this.actualConfigData.null[t.name]&&("single-select"===t.type||"sw-entity-single-select"===t.config.componentName?t.placeholder=this.$tc("sw-settings.system-config.inherited"):"bool"===t.type?t.config.inheritedValue=this.actualConfigData.null[t.name]||!1:"password"===t.type?(t.placeholderIsPassword=!0,t.placeholder="".concat(this.actualConfigData.null[t.name])):"multi-select"===t.type||F.isUndefined(this.actualConfigData.null[t.name])||(t.placeholder="".concat(this.actualConfigData.null[t.name]))),["single-select","multi-select"].includes(t.type)&&(t.config.labelProperty="name",t.config.valueProperty="id"),t}}});var M=n("jAFz"),R=n.n(M),$=(n("Lvox"),Shopware),N=$.Component,L=$.Mixin,q=Shopware.Data.Criteria;N.override("sw-order-detail-base",{template:R.a,inject:["PayonePaymentService","repositoryFactory","acl"],mixins:[L.getByName("notification")],data:function(){return{disableButtons:!1,notificationForwards:null}},computed:{payoneTransactions:function(){var e=this;return this.order.transactions.filter((function(t){return e.isPayoneTransaction(t)})).sort((function(e,t){return e.createdAtt.createdAt?-1:0}))},notificationForwardRepository:function(){return this.repositoryFactory.create("payone_payment_notification_forward")},notificationTargetColumns:function(){return[{property:"txaction",type:"text",width:"100px"},{property:"notificationTarget.url",type:"text"},{property:"response",width:"100px"},{property:"updatedAt",align:"right",type:"date"}]}},methods:{requeue:function(e,t){var n=this,a={notificationForwardId:e.id};this.PayonePaymentService.requeueNotificationForward(a).then((function(){n.createNotificationSuccess({title:n.$tc("payonePayment.notificationTarget.actions.requeue"),message:n.$tc("payonePayment.notificationTarget.messages.success")}),n.getNotificationForwards(t)})).catch((function(e){n.createNotificationError({title:n.$tc("payonePayment.notificationTarget.actions.requeue"),message:e.message})})).finally((function(){n.$nextTick().then((function(){n.$emit("reload")}))}))},isPayoneTransaction:function(e){return!!e.customFields&&e.customFields.payone_transaction_id},hasNotificationForwards:function(e){return null===this.notificationForwards?(this.getNotificationForwards(e),!1):!(this.notificationForwards.length<=0)},getNotificationForwards:function(e){var t=this,n=new q;return n.addAssociation("notificationTarget"),n.addSorting(q.sort("updatedAt","DESC",!0)),n.addFilter(q.equals("transactionId",e.id)),n.setLimit(500),this.notificationForwardRepository.search(n,Shopware.Context.api).then((function(e){t.notificationForwards=e}))},can:function(e){try{return this.acl.can(e)}catch(e){return!0}},isActiveTransaction:function(e){return"cancelled"!==e.stateMachineState.technicalName},hasPayoneTransaction:function(e){var t=this,n=!1;return!!e.transactions&&(e.transactions.map((function(e){t.isPayoneTransaction(e)&&t.isActiveTransaction(e)&&(n=!0)})),n)}}});var B=n("Yjca"),j=n.n(B),D=(n("d11z"),Shopware.Component),Z=Shopware.Context.app.config.version.match(/((\d+)\.?(\d+?)\.?(\d+)?\.?(\d*))-?([A-z]+?\d+)?/i);Z&&6===parseInt(Z[2])&&parseInt(Z[3])<4&&D.override("sw-settings-index",{template:j.a});n("fzay");var z=n("m1C4"),Y=n("eQpg"),V=Shopware.Module,K={type:"plugin",name:"PayonePayment",title:"payone-payment.general.mainMenuItemGeneral",description:"payone-payment.general.descriptionTextModule",version:"1.0.0",targetVersion:"1.0.0",icon:"default-action-settings",snippets:{"de-DE":z,"en-GB":Y},routeMiddleware:function(e,t){e(t)},routes:{index:{component:"payone-settings",path:"index",meta:{parentPath:"sw.settings.index"}}}},H=Shopware.Context.app.config.version.match(/((\d+)\.?(\d+?)\.?(\d+)?\.?(\d*))-?([A-z]+?\d+)?/i);H&&6===parseInt(H[2])&&parseInt(H[3])>3&&(K.settingsItem=[{name:"payone-payment",to:"payone.payment.index",label:"payone-payment.general.mainMenuItemGeneral",group:"plugins",iconComponent:"payone-payment-plugin-icon",backgroundEnabled:!1}]),V.register("payone-payment",K);var U=n("HSuo"),G=n.n(U);function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Q(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"payone_payment";return a(this,l),c.call(this,e,t,n)}return t=l,(n=[{key:"validateApiCredentials",value:function(e){var t=this.getBasicHeaders();return this.httpClient.post("_action/".concat(this.getApiBasePath(),"/validate-api-credentials"),{credentials:e},{headers:t}).then((function(e){return u.handleResponse(e)}))}},{key:"getStateMachineTransitionActions",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-state-machine-transition-actions"),{headers:e}).then((function(e){return u.handleResponse(e)}))}},{key:"hasApplePayCert",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/check-apple-pay-cert"),{headers:e}).catch((function(){return!1})).then((function(e){return!!e}))}}])&&i(t.prototype,n),s&&i(t,s),l}(u);l.addServiceProvider("PayonePaymentSettingsService",(function(e){var t=l.getContainer("init");return new d(t.httpClient,e.loginService)}))},SZ7m:function(e,t,n){"use strict";function a(e,t){for(var n=[],a={},i=0;in.parts.length&&(a.parts.length=n.parts.length)}else{var r=[];for(i=0;i\n \n \n{% endblock %}\n'},asGc:function(e,t){e.exports='{% block payone_payment_payment_details %}\n
\n \n \n {{ $tc(\'payone-payment.capture.buttonTitle\') }}\n \n \n\n \n \n \n\n
\n \n \n \n \n \n \n
\n\n \n
\n
\n{% endblock %}\n'},d11z:function(e,t,n){var a=n("JUJR");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("340689ec",a,!0,{})},eQpg:function(e){e.exports=JSON.parse('{"payone-payment":{"title":"PAYONE","general":{"mainMenuItemGeneral":"PAYONE","descriptionTextModule":"Settings for PAYONE"},"capture":{"buttonTitle":"Capture","successTitle":"PAYONE","successMessage":"Capture processed successfully.","errorTitle":"PAYONE","errorMessage":"Capture could not be processed.","tooltips":{"impossible":"Capture impossible"}},"refund":{"buttonTitle":"Refund","successTitle":"PAYONE","successMessage":"Refund processed successfully.","errorTitle":"PAYONE","errorMessage":"Refund could not be processed.","tooltips":{"impossible":"Refund impossible"}},"modal":{"capture":{"title":"Capture","submit":"Capture","fullSubmit":"Full capture","amount":"Capture amount","captured":"Captured amount"},"refund":{"title":"Refund","submit":"Refund","fullSubmit":"Full Refund","amount":"Refund amount","refunded":"Refunded amount"},"orderAmount":"Order amount","remainingAmount":"Remaining amount","descriptionHelpText":"Description help text","close":"Close","labelComment":"Label comment","columns":{"reference":"Reference","product":"Product","quantity":"Quantity","price":"Price"}},"settingsForm":{"save":"Save","test":"Test API Credentials","titleSuccess":"Success","titleError":"Error","labelShowSpecificStatusMapping":"Display state mapping configuration","helpTextShowSpecificStatusMapping":"If not configured the general status mapping config will be applied.","messageTestSuccess":"The API credentials were verified successfully.","messageTestNoTestedPayments":"No payment methods were tested during the check because none of the PAYONE payment methods are activated. Please activate at least one PAYONE payment method under Settings --\x3e Shop --\x3e Payment.","messageTestError":{"general":"The API credentials could not be verified successfully.","creditCard":"The API credentials for Credit Card are not valid.","prepayment":"The API credentials for Prepayment are not valid.","debit":"The API credentials for Debit are not valid.","paypalExpress":"The API credentials for PayPal Express are not valid.","paypal":"The API credentials for PayPal are not valid.","payolutionInstallment":"The API credentials for Paysafe Pay Later Installment are not valid.","payolutionInvoicing":"The API credentials for Paysafe Pay Later Invoicing are not valid.","payolutionDebit":"The API credentials for Paysafe Pay Later Debit are not valid.","sofort":"The API credentials for SOFORT are not valid.","eps":"The API credentials for EPS are not valid.","iDeal":"The API credentials for iDEAL are not valid.","secureInvoice":"The API credentials for secure invoice payment are not valid.","openInvoice":"The API credentials for open invoice payment are not valid.","paydirekt":"The API credentials for Paydirekt payment are not valid.","trustly":"The API credentials for Trustly payment are not valid.","applePay":"The API credentials for ApplePay payment are not valid."}},"supportModal":{"menuButton":"Support","title":"How Can We Help You?","documentation":{"description":"Read our online manual","button":"Online Manual"},"support":{"description":"Contact our technical support","button":"Tech Support"},"repository":{"description":"Report errors on GitHub","button":"GitHub"}},"applePay":{"cert":{"notification":"The ApplePay merchant authentication requires a certificate/key-pair. Further information:
\\n https://docs.payone.com/display/public/PLATFORM/Special+Remarks+-+Apple+Pay#SpecialRemarks-ApplePay-Onboarding

\\n\\n Create a pem-File afterwards by using the following command:
\\n
openssl x509 -inform der -in merchant_id.cer -out merchant_id.pem

\\n Copy certificate (merchant_id.pem) and key (merchant_id.key) file into the following folder:
\\n
%shopwareRoot%/config/apple-pay-cert
"}},"transitionActionNames":{"cancel":"Cancel","complete":"Complete","pay":"Pay","pay_partially":"Pay partially","process":"Process","refund":"Refund","refund_partially":"Refund partially","remind":"Remind","reopen":"Reopen","retour":"Retour","retour_partially":"Retour partially","ship":"Ship","ship_partially":"Ship partially"},"messageNotBlank":"This field must not be empty.","txid":"TXID","sequenceNumber":{"label":"Sequence Number","empty":"none"},"transactionState":"State","transactionCancelled":"Transaction cancelled in Shopware","error":{"transaction":{"notFound":"No matching transaction could be found","orderNotFound":"No matching order could be found"}}},"sw-privileges":{"additional_permissions":{"Payone":{"label":"PAYONE","payone_order_management":"PAYONE transaction management"}}}}')},fBZk:function(e,t){e.exports='{% block payone_payment_payment_details %}\n
\n \n \n {{ $tc(\'payone-payment.refund.buttonTitle\') }}\n \n \n\n \n \n \n\n
\n \n \n \n \n \n \n
\n\n \n
\n
\n{% endblock %}\n'},fzay:function(e,t){var n=Shopware.Filter,a=Shopware.Utils.format.currency;n.register("payone_currency",(function(e,t,n,i){return null===e?"-":(n||(n=0),e/=Math.pow(10,n),a(e,t,i))}))},h40c:function(e,t){e.exports='{% block payone_payment_plugin_icon %}\n \n{% endblock %}\n'},jAFz:function(e,t){e.exports='{% block sw_order_detail_delivery_metadata %}\n {% parent %}\n\n \n{% endblock %}\n'},m1C4:function(e){e.exports=JSON.parse('{"payone-payment":{"title":"PAYONE","general":{"mainMenuItemGeneral":"PAYONE","descriptionTextModule":"Einstellungen für PAYONE"},"capture":{"buttonTitle":"Capture","successTitle":"PAYONE","successMessage":"Capture erfolgreich durchgeführt.","errorTitle":"PAYONE","errorMessage":"Capture konnte nicht durchgeführt werden.","tooltips":{"impossible":"Einzug unmöglich"}},"refund":{"buttonTitle":"Refund","successTitle":"PAYONE","successMessage":"Refund erfolgreich durchgeführt.","errorTitle":"PAYONE","errorMessage":"Refund konnte nicht durchgeführt werden.","tooltips":{"impossible":"Erstattung unmöglich"}},"modal":{"capture":{"title":"Einzug","submit":"Einziehen","fullSubmit":"Alles Einziehen","amount":"Einzugswert","captured":"Eingezogener Wert"},"refund":{"title":"Erstattung","submit":"Erstatten","fullSubmit":"Alles Erstatten","amount":"Erstattungswert","refunded":"Erstatteter Wert"},"close":"Schließen","orderAmount":"Bestellungswert","remainingAmount":"Ausstehender Wert","labelComment":"Label comment","descriptionHelpText":"Description help text","columns":{"reference":"Referenz","product":"Produkt","quantity":"Anzahl","price":"Preis"}},"settingsForm":{"save":"Speichern","test":"API-Zugangsdaten testen","titleSuccess":"Erfolg","titleError":"Fehler","labelShowSpecificStatusMapping":"Statusmappingkonfiguration einblenden","helpTextShowSpecificStatusMapping":"Sie können für jede Zahlungsart ein spezifisches Statusmapping konfigurieren. Existiert eine solche Konfiguration nicht, wird auf die allgemeine Konfiguration zurückgegriffen.","messageTestSuccess":"Die API-Zugangsdaten wurden erfolgreich validiert.","messageTestNoTestedPayments":"Bei der Prüfung wurden keine Zahlarten getestet, weil keine der PAYONE Zahlarten aktiviert ist. Bitte aktivieren Sie mindestens eine PAYONE Zahlart unter Einstellungen --\x3e Shop --\x3e Zahlungsarten.","messageTestError":{"general":"Die API-Zugangsdaten konnten nicht validiert werden.","creditCard":"Die API-Zugangsdaten für Kreditkarte sind nicht korrekt.","prepayment":"Die API-Zugangsdaten für Vorkasse sind nicht korrekt.","debit":"Die API-Zugangsdaten für Lastschrift sind nicht korrekt.","paypalExpress":"Die API-Zugangsdaten für PayPal Express sind nicht korrekt.","paypal":"Die API-Zugangsdaten für PayPal sind nicht korrekt.","payolutionInstallment":"Die API-Zugangsdaten für Paysafe Pay Later Ratenzahlung sind nicht korrekt.","payolutionInvoicing":"Die API-Zugangsdaten für Paysafe Pay Later Rechnungskauf sind nicht korrekt.","payolutionDebit":"Die API-Zugangsdaten für Paysafe Pay Later Lastschrift sind nicht korrekt.","sofort":"Die API-Zugangsdaten für SOFORT sind nicht korrekt.","eps":"Die API-Zugangsdaten für EPS sind nicht korrekt.","iDeal":"Die API-Zugangsdaten für iDEAL sind nicht korrekt.","secureInvoice":"Die API-Zugangsdaten für den gesicherten Rechnungskauf sind nicht korrekt.","openInvoice":"Die API-Zugangsdaten für den offenen Rechnungskauf sind nicht korrekt.","paydirekt":"Die API-Zugangsdaten für Paydirekt sind nicht korrekt.","trustly":"Die API-Zugangsdaten für Trustly sind nicht korrekt.","applePay":"Die API-Zugangsdaten für ApplePay sind nicht korrekt."}},"supportModal":{"menuButton":"Support","title":"Wie können wir Ihnen helfen?","documentation":{"description":"Lesen Sie unsere Online-Dokumentation","button":"Dokumentation"},"support":{"description":"Kontaktieren Sie unseren technischen Support","button":"Technischer Support"},"repository":{"description":"Melden Sie Fehler und Verbesserungen auf GitHub","button":"GitHub"}},"applePay":{"cert":{"notification":"Für die Nutzung von ApplePay ist ein Zertifikat/Key-Paar zur Authentifizierung des Merchants erforderlich. Die Anlage eines solchen Zertifikats wird hier beschrieben:
\\n https://docs.payone.com/display/public/PLATFORM/Special+Remarks+-+Apple+Pay#SpecialRemarks-ApplePay-Onboarding

\\n\\n Erstellen Sie im Anschluss unter Verwendung des folgenden Befehls eine PEM-Datei des Zertifikates:
\\n
openssl x509 -inform der -in merchant_id.cer -out merchant_id.pem

\\n Hinterlegen Sie das Zertifikat (merchant_id.pem) und den Key (merchant_id.key) in folgendem Verzeichnis:
\\n
%shopwareRoot%/config/apple-pay-cert
"}},"transitionActionNames":{"cancel":"Stornieren","complete":"Abschließen","pay":"Bezahlen","pay_partially":"Teilweise bezahlen","process":"Durchführen","refund":"Rückerstatten","refund_partially":"Teilweise rückerstatten","remind":"Erinnern","reopen":"Wieder öffnen","retour":"Retoure","retour_partially":"Teilweise retounieren","ship":"Versenden","ship_partially":"Teilweise versenden"},"messageNotBlank":"Dieser Wert darf nicht leer sein.","txid":"TXID","sequenceNumber":{"label":"Sequenznummer","empty":"keine"},"transactionState":"Status","transactionCancelled":"Transaktion in Shopware abgebrochen","error":{"transaction":{"notFound":"Es wurde keine passende Transaktion gefundend","orderNotFound":"Es wurde keine passende Bestellung gefundend"}}},"sw-privileges":{"additional_permissions":{"Payone":{"label":"PAYONE","payone_order_management":"PAYONE Transaktionsmanagement"}}}}')},m5R7:function(e,t,n){},mLM4:function(e,t){e.exports='{% block payone_payment %}\n\n {% block payone_payment_header %}\n \n {% endblock %}\n\n {% block payone_payment_actions %}\n \n {% endblock %}\n\n {% block payone_payment_settings_content %}\n \n {% endblock %}\n\n{% endblock %}\n'},qwju:function(e,t,n){var a=n("wLtW");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("7284cad2",a,!0,{})},rs8k:function(e){e.exports=JSON.parse('{"payonePayment":{"notificationTarget":{"module":{"title":"Payone notification forward","buttonTitle":"Notifications"},"list":{"title":"Notification forward","empty":"No entries","buttonCreate":"Add new notification target"},"detail":{"headline":"Notification forward","placeholder":{"url":"Url","username":"Username","password":"Password"},"label":{"url":"Url","isBasicAuth":"Basic Auth","txactions":"txactions","buttonSave":"Save","buttonCancel":"Cancel","username":"Username","password":"Password"}},"columns":{"url":"Url","isBasicAuth":"Basic Auth","txactions":"txactions"},"actions":{"requeue":"Requeue"},"messages":{"success":"The notification forward has been successfully queued."}}}}')},vPx4:function(e,t,n){},wLtW:function(e,t,n){}}); \ No newline at end of file +!function(e){var t={};function n(a){if(t[a])return t[a].exports;var i=t[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(a,i,function(t){return e[t]}.bind(null,i));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/bundles/payonepayment/",n(n.s="UZdK")}({"2O5J":function(e){e.exports=JSON.parse('{"payonePayment":{"notificationTarget":{"module":{"title":"Payone notification forward","buttonTitle":"Notifications"},"list":{"title":"Notification forward","empty":"No entries","buttonCreate":"Add new notification target"},"detail":{"headline":"Notification forward","placeholder":{"url":"Url","username":"Username","password":"Password"},"label":{"url":"Url","isBasicAuth":"Basic Auth","txactions":"txactions","buttonSave":"Save","buttonCancel":"Cancel","username":"Username","password":"Password"}},"columns":{"url":"Url","isBasicAuth":"Basic Auth","txactions":"txactions"},"actions":{"requeue":"Requeue"},"messages":{"success":"The notification forward has been successfully queued."}}}}')},"2f31":function(e,t){e.exports='{% block payone_notification_target_detail %}\n \n\n {% block payone_notification_target_detail_header %}\n \n {% endblock %}\n\n {% block payone_notification_target_detail_actions %}\n \n {% endblock %}\n\n {% block payone_notification_target_detail_content %}\n \n\n {% block payone_notification_target_detail_base_basic_info_card %}\n \n \n \n {% endblock %}\n \n {% endblock %}\n\n \n{% endblock %}\n'},"3U21":function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:"payone_payment";return a(this,l),c.call(this,e,t,n)}return t=l,(n=[{key:"validateApiCredentials",value:function(e){var t=this.getBasicHeaders();return this.httpClient.post("_action/".concat(this.getApiBasePath(),"/validate-api-credentials"),{credentials:e},{headers:t}).then((function(e){return u.handleResponse(e)}))}},{key:"getStateMachineTransitionActions",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-state-machine-transition-actions"),{headers:e}).then((function(e){return u.handleResponse(e)}))}},{key:"hasApplePayCert",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/check-apple-pay-cert"),{headers:e}).catch((function(){return!1})).then((function(e){return!!e}))}}])&&i(t.prototype,n),s&&i(t,s),l}(u);l.addServiceProvider("PayonePaymentSettingsService",(function(e){var t=l.getContainer("init");return new d(t.httpClient,e.loginService)}))},"3nqX":function(e,t,n){var a=n("K+0n");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("9e189240",a,!0,{})},"4GG1":function(e,t,n){var a=n("Gc8S");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("15e19ffa",a,!0,{})},"78OT":function(e,t){try{Shopware.Service("privileges").addPrivilegeMappingEntry({category:"additional_permissions",parent:null,key:"Payone",roles:{payone_order_management:{privileges:["order_transaction:update","order_line_item:update","state_machine_history:create",Shopware.Service("privileges").getPrivileges("order.viewer")],dependencies:[]}}})}catch(e){}},"8KF6":function(e,t,n){},"9Sjd":function(e,t){e.exports='{% block payone_payment_payment_details %}\n
\n \n \n {{ $tc(\'payone-payment.capture.buttonTitle\') }}\n \n \n\n \n \n \n\n
\n \n \n \n \n \n \n
\n\n \n
\n
\n{% endblock %}\n'},CPMY:function(e,t,n){},FCfm:function(e,t,n){var a=n("qSh7");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("09344dd6",a,!0,{})},GGZ9:function(e,t){var n=Shopware.Filter,a=Shopware.Utils.format.currency;n.register("payone_currency",(function(e,t,n,i){return null===e?"-":(n||(n=0),e/=Math.pow(10,n),a(e,t,i))}))},Gc8S:function(e,t,n){},HvTO:function(e,t,n){var a=n("cm4w");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("d882c8f0",a,!0,{})},IvS7:function(e){e.exports=JSON.parse('{"payone-payment":{"title":"PAYONE","general":{"mainMenuItemGeneral":"PAYONE","descriptionTextModule":"Einstellungen für PAYONE"},"capture":{"buttonTitle":"Capture","successTitle":"PAYONE","successMessage":"Capture erfolgreich durchgeführt.","errorTitle":"PAYONE","errorMessage":"Capture konnte nicht durchgeführt werden.","tooltips":{"impossible":"Einzug unmöglich"}},"refund":{"buttonTitle":"Refund","successTitle":"PAYONE","successMessage":"Refund erfolgreich durchgeführt.","errorTitle":"PAYONE","errorMessage":"Refund konnte nicht durchgeführt werden.","tooltips":{"impossible":"Erstattung unmöglich"}},"modal":{"capture":{"title":"Einzug","submit":"Einziehen","fullSubmit":"Alles Einziehen","amount":"Einzugswert","captured":"Eingezogener Wert"},"refund":{"title":"Erstattung","submit":"Erstatten","fullSubmit":"Alles Erstatten","amount":"Erstattungswert","refunded":"Erstatteter Wert"},"close":"Schließen","orderAmount":"Bestellungswert","remainingAmount":"Ausstehender Wert","labelComment":"Label comment","descriptionHelpText":"Description help text","columns":{"reference":"Referenz","product":"Produkt","quantity":"Anzahl","price":"Preis"}},"settingsForm":{"save":"Speichern","test":"API-Zugangsdaten testen","titleSuccess":"Erfolg","titleError":"Fehler","labelShowSpecificStatusMapping":"Statusmappingkonfiguration einblenden","helpTextShowSpecificStatusMapping":"Sie können für jede Zahlungsart ein spezifisches Statusmapping konfigurieren. Existiert eine solche Konfiguration nicht, wird auf die allgemeine Konfiguration zurückgegriffen.","messageTestSuccess":"Die API-Zugangsdaten wurden erfolgreich validiert.","messageTestNoTestedPayments":"Bei der Prüfung wurden keine Zahlarten getestet, weil keine der PAYONE Zahlarten aktiviert ist. Bitte aktivieren Sie mindestens eine PAYONE Zahlart unter Einstellungen --\x3e Shop --\x3e Zahlungsarten.","messageTestError":{"general":"Die API-Zugangsdaten konnten nicht validiert werden.","creditCard":"Die API-Zugangsdaten für Kreditkarte sind nicht korrekt.","prepayment":"Die API-Zugangsdaten für Vorkasse sind nicht korrekt.","debit":"Die API-Zugangsdaten für Lastschrift sind nicht korrekt.","paypalExpress":"Die API-Zugangsdaten für PayPal Express sind nicht korrekt.","paypal":"Die API-Zugangsdaten für PayPal sind nicht korrekt.","payolutionInstallment":"Die API-Zugangsdaten für Paysafe Pay Later Ratenzahlung sind nicht korrekt.","payolutionInvoicing":"Die API-Zugangsdaten für Paysafe Pay Later Rechnungskauf sind nicht korrekt.","payolutionDebit":"Die API-Zugangsdaten für Paysafe Pay Later Lastschrift sind nicht korrekt.","sofort":"Die API-Zugangsdaten für SOFORT sind nicht korrekt.","eps":"Die API-Zugangsdaten für EPS sind nicht korrekt.","iDeal":"Die API-Zugangsdaten für iDEAL sind nicht korrekt.","secureInvoice":"Die API-Zugangsdaten für den gesicherten Rechnungskauf sind nicht korrekt.","openInvoice":"Die API-Zugangsdaten für den offenen Rechnungskauf sind nicht korrekt.","paydirekt":"Die API-Zugangsdaten für Paydirekt sind nicht korrekt.","trustly":"Die API-Zugangsdaten für Trustly sind nicht korrekt.","applePay":"Die API-Zugangsdaten für ApplePay sind nicht korrekt.","ratepayDebit":"Die API-Zugangsdaten für Ratepay Lastschrift sind nicht korrekt.","ratepayInstallment":"Die API-Zugangsdaten für Ratepay Ratenzahlung sind nicht korrekt.","ratepayInvoicing":"Die API-Zugangsdaten für Ratepay Rechnungskauf sind nicht korrekt."}},"supportModal":{"menuButton":"Support","title":"Wie können wir Ihnen helfen?","documentation":{"description":"Lesen Sie unsere Online-Dokumentation","button":"Dokumentation"},"support":{"description":"Kontaktieren Sie unseren technischen Support","button":"Technischer Support"},"repository":{"description":"Melden Sie Fehler und Verbesserungen auf GitHub","button":"GitHub"}},"applePay":{"cert":{"notification":"Für die Nutzung von ApplePay ist ein Zertifikat/Key-Paar zur Authentifizierung des Merchants erforderlich. Die Anlage eines solchen Zertifikats wird hier beschrieben:
\\n https://docs.payone.com/display/public/PLATFORM/Special+Remarks+-+Apple+Pay#SpecialRemarks-ApplePay-Onboarding

\\n\\n Erstellen Sie im Anschluss unter Verwendung des folgenden Befehls eine PEM-Datei des Zertifikates:
\\n
openssl x509 -inform der -in merchant_id.cer -out merchant_id.pem

\\n Hinterlegen Sie das Zertifikat (merchant_id.pem) und den Key (merchant_id.key) in folgendem Verzeichnis:
\\n
%shopwareRoot%/config/apple-pay-cert
"}},"transitionActionNames":{"cancel":"Stornieren","complete":"Abschließen","pay":"Bezahlen","pay_partially":"Teilweise bezahlen","process":"Durchführen","refund":"Rückerstatten","refund_partially":"Teilweise rückerstatten","remind":"Erinnern","reopen":"Wieder öffnen","retour":"Retoure","retour_partially":"Teilweise retounieren","ship":"Versenden","ship_partially":"Teilweise versenden"},"messageNotBlank":"Dieser Wert darf nicht leer sein.","txid":"TXID","sequenceNumber":{"label":"Sequenznummer","empty":"keine"},"transactionState":"Status","transactionCancelled":"Transaktion in Shopware abgebrochen","error":{"transaction":{"notFound":"Es wurde keine passende Transaktion gefundend","orderNotFound":"Es wurde keine passende Bestellung gefundend"}}},"sw-privileges":{"additional_permissions":{"Payone":{"label":"PAYONE","payone_order_management":"PAYONE Transaktionsmanagement"}}}}')},"K+0n":function(e,t,n){},KCDJ:function(e,t,n){var a=n("8KF6");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("74f42fc6",a,!0,{})},LmWz:function(e,t){e.exports='{% block sw_settings_content_card_slot_plugins %}\n {% parent %}\n\n \n \n \n{% endblock %}\n'},SZ7m:function(e,t,n){"use strict";function a(e,t){for(var n=[],a={},i=0;in.parts.length&&(a.parts.length=n.parts.length)}else{var r=[];for(i=0;i0&&this.capturedAmount>0||this.transaction.customFields.payone_allow_capture)},isItemSelected:function(){var e=!1;return this.selection.forEach((function(t){t.selected&&(e=!0)})),e}},data:function(){return{isLoading:!1,hasError:!1,showCaptureModal:!1,isCaptureSuccessful:!1,selection:[],captureAmount:0}},methods:{calculateCaptureAmount:function(){var e=0;this.selection.forEach((function(t){t.selected&&(e+=t.unit_price*t.quantity)})),e>this.remainingAmount&&(e=this.remainingAmount),this.captureAmount=e},openCaptureModal:function(){this.showCaptureModal=!0,this.isCaptureSuccessful=!1,this.selection=[]},closeCaptureModal:function(){this.showCaptureModal=!1},onCaptureFinished:function(){this.isCaptureSuccessful=!1},captureOrder:function(){var e=this,t={orderTransactionId:this.transaction.id,payone_order_id:this.transaction.customFields.payone_transaction_id,salesChannel:this.order.salesChannel,amount:this.captureAmount,orderLines:[],complete:this.captureAmount===this.remainingAmount};this.isLoading=!0,this.selection.forEach((function(n){e.order.lineItems.forEach((function(e){if(e.id===n.id&&n.selected&&00&&this.refundedAmount>0||this.transaction.customFields.payone_allow_refund)}},methods:{calculateRefundAmount:function(){var e=0;this.selection.forEach((function(t){t.selected&&(e+=t.unit_price*t.quantity)})),Math.round(e*Math.pow(10,this.decimalPrecision)>this.remainingAmount)&&(e=this.remainingAmount/Math.pow(10,this.decimalPrecision)),this.refundAmount=e},openRefundModal:function(){this.showRefundModal=!0,this.isRefundSuccessful=!1,this.selection=[]},closeRefundModal:function(){this.showRefundModal=!1},onRefundFinished:function(){this.isRefundSuccessful=!1},refundOrder:function(){var e=this,t={orderTransactionId:this.transaction.id,payone_order_id:this.transaction.customFields.payone_transaction_id,salesChannel:this.order.salesChannel,amount:this.refundAmount,orderLines:[],complete:this.refundAmount===this.maxRefundAmount};this.isLoading=!0,this.selection.forEach((function(n){e.order.lineItems.forEach((function(a){if(a.id===n.id&&n.selected&&0n.customFields.payone_captured_quantity&&(o=n.customFields.payone_captured_quantity),n.customFields.payone_refunded_quantity&&(o-=n.customFields.payone_refunded_quantity)):"capture"===e.mode&&n.customFields.payone_captured_quantity&&0o&&(i=!0),t.push({id:n.id,product:n.label,quantity:o,disabled:i,selected:!1,price:a,orderItem:n})})),t},orderItemColumns:function(){return[{property:"product",label:this.$tc("payone-payment.modal.columns.product"),rawData:!0},{property:"quantity",label:this.$tc("payone-payment.modal.columns.quantity"),rawData:!0},{property:"price",label:this.$tc("payone-payment.modal.columns.price"),rawData:!0}]}},methods:{onSelectItem:function(e,t,n){this.$emit("select-item",t.id,n)},onChangeQuantity:function(e,t){this.$emit("change-quantity",t,e)}}});var w=n("Vxi/"),P=n.n(w);Shopware.Component.extend("payone-data-grid","sw-data-grid",{template:P.a});var S=n("zyFP"),k=n.n(S);n("3nqX");Shopware.Component.register("payone-payment-plugin-icon",{template:k.a});var T=n("dzH1"),A=n.n(T),C=(n("mOqv"),Shopware),x=C.Component,I=C.Mixin,O=Shopware.Utils,E=O.object,F=O.types;x.register("payone-settings",{template:A.a,mixins:[I.getByName("notification"),I.getByName("sw-inline-snippet")],inject:["PayonePaymentSettingsService"],data:function(){return{isLoading:!1,isTesting:!1,isSaveSuccessful:!1,isTestSuccessful:!1,isApplePayCertConfigured:!0,config:{},merchantIdFilled:!1,accountIdFilled:!1,portalIdFilled:!1,portalKeyFilled:!1,showValidationErrors:!1,isSupportModalOpen:!1,stateMachineTransitionActions:[],displayStatusMapping:{},collapsibleState:{status_mapping:!0,payment_credit_card:!0,payment_paypal:!0,payment_paypal_express:!0,payment_debit:!0,payment_sofort:!0,payment_payolution_installment:!0,payment_payolution_invoicing:!0,payment_payolution_debit:!0,payment_eps:!0,payment_ideal:!0,payment_paydirekt:!0,payment_prepayment:!0,payment_trustly:!0,payment_secure_invoice:!0,payment_open_invoice:!0,payment_apple_pay:!0,payment_ratepay_debit:!0,payment_ratepay_installment:!0,payment_ratepay_invoicing:!0}}},created:function(){this.createdComponent()},computed:{credentialsMissing:function(){return!(this.merchantIdFilled&&this.accountIdFilled&&this.portalIdFilled&&this.portalKeyFilled)}},metaInfo:function(){return{title:this.$createTitle()}},methods:{createdComponent:function(){var e=this,t=this;this.PayonePaymentSettingsService.getStateMachineTransitionActions().then((function(e){e.data.forEach((function(e){var n="payone-payment.transitionActionNames."+e.label,a=t.$t(n);a===n&&(a=e.label),t.stateMachineTransitionActions.push({label:a,value:e.value})}))})),this.PayonePaymentSettingsService.hasApplePayCert().then((function(t){e.isApplePayCertConfigured=t}))},paymentMethodPrefixes:function(){return["creditCard","debit","paypal","paypalExpress","payolutionInvoicing","payolutionInstallment","payolutionDebit","sofort","eps","iDeal","paydirekt","prepayment","trustly","secureInvoice","openInvoice","applePay","ratepayDebit","ratepayInstallment","ratepayInvoicing"]},isVisiblePaymentMethodCard:function(e){return e.name.startsWith("payment")&&!this.isCollapsed(e)},isCollapsible:function(e){return e.name in this.collapsibleState},displayField:function(e,t,n){return!(n.name in this.collapsibleState)||!this.collapsibleState[n.name]},isCollapsed:function(e){return this.collapsibleState[e.name]},toggleCollapsible:function(e){e.name in this.collapsibleState&&(this.collapsibleState[e.name]=!this.collapsibleState[e.name])},saveFinish:function(){this.isSaveSuccessful=!1},testFinish:function(){this.isTestSuccessful=!1},onConfigChange:function(e){this.config=e,this.checkCredentialsFilled(),this.showValidationErrors=!1},checkCredentialsFilled:function(){this.merchantIdFilled=!!this.getConfigValue("merchantId"),this.accountIdFilled=!!this.getConfigValue("accountId"),this.portalIdFilled=!!this.getConfigValue("portalId"),this.portalKeyFilled=!!this.getConfigValue("portalKey")},getConfigValue:function(e){var t=this.$refs.systemConfig.actualConfigData.null;return null===this.$refs.systemConfig.currentSalesChannelId?this.config["PayonePayment.settings.".concat(e)]:this.config["PayonePayment.settings.".concat(e)]||t["PayonePayment.settings.".concat(e)]},getPaymentConfigValue:function(e,t){var n=e.charAt(0).toUpperCase()+e.slice(1);return this.getConfigValue(t+n)||this.getConfigValue(e)},onSave:function(){var e=this;this.credentialsMissing?this.showValidationErrors=!0:(this.isSaveSuccessful=!1,this.isLoading=!0,this.$refs.systemConfig.saveAll().then((function(){e.isLoading=!1,e.isSaveSuccessful=!0})).catch((function(){e.isLoading=!1})))},onTest:function(){var e=this;this.isTesting=!0,this.isTestSuccessful=!1;var t={};this.paymentMethodPrefixes().forEach((function(n){t[n]={merchantId:e.getPaymentConfigValue("merchantId",n),accountId:e.getPaymentConfigValue("accountId",n),portalId:e.getPaymentConfigValue("portalId",n),portalKey:e.getPaymentConfigValue("portalKey",n)}})),this.PayonePaymentSettingsService.validateApiCredentials(t).then((function(t){var n=t.testCount,a=t.credentialsValid,i=t.errors;if(a)e.createNotificationSuccess({title:e.$tc("payone-payment.settingsForm.titleSuccess"),message:n>0?e.$tc("payone-payment.settingsForm.messageTestSuccess"):e.$tc("payone-payment.settingsForm.messageTestNoTestedPayments")}),e.isTestSuccessful=!0;else for(var o in i)i.hasOwnProperty(o)&&e.createNotificationError({title:e.$tc("payone-payment.settingsForm.titleError"),message:e.$tc("payone-payment.settingsForm.messageTestError."+o)});e.isTesting=!1})).catch((function(t){e.createNotificationError({title:e.$tc("payone-payment.settingsForm.titleError"),message:e.$tc("payone-payment.settingsForm.messageTestError.general")}),e.isTesting=!1}))},getBind:function(e,t){var n;return t!==this.config&&(this.config=t),this.showValidationErrors&&("PayonePayment.settings.merchantId"!==e.name||this.merchantIdFilled||(e.config.error={code:1,detail:this.$tc("payone-payment.messageNotBlank")}),"PayonePayment.settings.accountId"!==e.name||this.accountIdFilled||(e.config.error={code:1,detail:this.$tc("payone-payment.messageNotBlank")}),"PayonePayment.settings.portalId"!==e.name||this.portalIdFilled||(e.config.error={code:1,detail:this.$tc("payone-payment.messageNotBlank")}),"PayonePayment.settings.portalKey"!==e.name||this.portalKeyFilled||(e.config.error={code:1,detail:this.$tc("payone-payment.messageNotBlank")})),this.$refs.systemConfig.config.forEach((function(t){t.elements.forEach((function(t){t.name!==e.name||(n=t)}))})),n||e},getElementBind:function(e){var t=E.deepCopyObject(e);return null!==this.currentSalesChannelId&&this.inherit&&this.actualConfigData.hasOwnProperty("null")&&null!==this.actualConfigData.null[t.name]&&("single-select"===t.type||"sw-entity-single-select"===t.config.componentName?t.placeholder=this.$tc("sw-settings.system-config.inherited"):"bool"===t.type?t.config.inheritedValue=this.actualConfigData.null[t.name]||!1:"password"===t.type?(t.placeholderIsPassword=!0,t.placeholder="".concat(this.actualConfigData.null[t.name])):"multi-select"===t.type||F.isUndefined(this.actualConfigData.null[t.name])||(t.placeholder="".concat(this.actualConfigData.null[t.name]))),["single-select","multi-select"].includes(t.type)&&(t.config.labelProperty="name",t.config.valueProperty="id"),t}}});var M=n("ZzlF"),R=n.n(M),$=(n("KCDJ"),Shopware),N=$.Component,q=$.Mixin,L=Shopware.Data.Criteria;N.override("sw-order-detail-base",{template:R.a,inject:["PayonePaymentService","repositoryFactory","acl"],mixins:[q.getByName("notification")],data:function(){return{disableButtons:!1,notificationForwards:null}},computed:{payoneTransactions:function(){var e=this;return this.order.transactions.filter((function(t){return e.isPayoneTransaction(t)})).sort((function(e,t){return e.createdAtt.createdAt?-1:0}))},notificationForwardRepository:function(){return this.repositoryFactory.create("payone_payment_notification_forward")},notificationTargetColumns:function(){return[{property:"txaction",type:"text",width:"100px"},{property:"notificationTarget.url",type:"text"},{property:"response",width:"100px"},{property:"updatedAt",align:"right",type:"date"}]}},methods:{requeue:function(e,t){var n=this,a={notificationForwardId:e.id};this.PayonePaymentService.requeueNotificationForward(a).then((function(){n.createNotificationSuccess({title:n.$tc("payonePayment.notificationTarget.actions.requeue"),message:n.$tc("payonePayment.notificationTarget.messages.success")}),n.getNotificationForwards(t)})).catch((function(e){n.createNotificationError({title:n.$tc("payonePayment.notificationTarget.actions.requeue"),message:e.message})})).finally((function(){n.$nextTick().then((function(){n.$emit("reload")}))}))},isPayoneTransaction:function(e){return!!e.customFields&&e.customFields.payone_transaction_id},hasNotificationForwards:function(e){return null===this.notificationForwards?(this.getNotificationForwards(e),!1):!(this.notificationForwards.length<=0)},getNotificationForwards:function(e){var t=this,n=new L;return n.addAssociation("notificationTarget"),n.addSorting(L.sort("updatedAt","DESC",!0)),n.addFilter(L.equals("transactionId",e.id)),n.setLimit(500),this.notificationForwardRepository.search(n,Shopware.Context.api).then((function(e){t.notificationForwards=e}))},can:function(e){try{return this.acl.can(e)}catch(e){return!0}},isActiveTransaction:function(e){return"cancelled"!==e.stateMachineState.technicalName},hasPayoneTransaction:function(e){var t=this,n=!1;return!!e.transactions&&(e.transactions.map((function(e){t.isPayoneTransaction(e)&&t.isActiveTransaction(e)&&(n=!0)})),n)}}});var D=n("LmWz"),B=n.n(D),j=(n("HvTO"),Shopware.Component),Z=Shopware.Context.app.config.version.match(/((\d+)\.?(\d+?)\.?(\d+)?\.?(\d*))-?([A-z]+?\d+)?/i);Z&&6===parseInt(Z[2])&&parseInt(Z[3])<4&&j.override("sw-settings-index",{template:B.a});n("GGZ9");var z=n("IvS7"),G=n("dyZK"),V=Shopware.Module,Y={type:"plugin",name:"PayonePayment",title:"payone-payment.general.mainMenuItemGeneral",description:"payone-payment.general.descriptionTextModule",version:"1.0.0",targetVersion:"1.0.0",icon:"default-action-settings",snippets:{"de-DE":z,"en-GB":G},routeMiddleware:function(e,t){e(t)},routes:{index:{component:"payone-settings",path:"index",meta:{parentPath:"sw.settings.index"}}}},K=Shopware.Context.app.config.version.match(/((\d+)\.?(\d+?)\.?(\d+)?\.?(\d*))-?([A-z]+?\d+)?/i);K&&6===parseInt(K[2])&&parseInt(K[3])>3&&(Y.settingsItem=[{name:"payone-payment",to:"payone.payment.index",label:"payone-payment.general.mainMenuItemGeneral",group:"plugins",iconComponent:"payone-payment-plugin-icon",backgroundEnabled:!1}]),V.register("payone-payment",Y);var U=n("XqXt"),H=n.n(U);function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function J(e){for(var t=1;t\n \n\n \n \n{% endblock %}\n'},XqXt:function(e,t){e.exports='{% block payone_notification_target_list %}\n \n\n {% block payone_notification_target_list_smart_bar_header %}\n \n {% endblock %}\n\n {% block payone_notification_target_list_actions %}\n \n {% endblock %}\n\n {% block payone_notification_target_list_content %}\n \n {% endblock %}\n\n {% block payone_notification_target_list_sidebar %}\n \n {% endblock %}\n \n{% endblock %}\n'},ZS2F:function(e,t){e.exports='{% block payone_payment_payment_details %}\n
\n \n \n {{ $tc(\'payone-payment.refund.buttonTitle\') }}\n \n \n\n \n \n \n\n
\n \n \n \n \n \n \n
\n\n \n
\n
\n{% endblock %}\n'},ZzlF:function(e,t){e.exports='{% block sw_order_detail_delivery_metadata %}\n {% parent %}\n\n \n{% endblock %}\n'},bqMO:function(e,t){e.exports='{% block payone_payment_details %}\n
\n \n\n \n\n \n\n \n \n
\n{% endblock %}\n'},cm4w:function(e,t,n){},dyZK:function(e){e.exports=JSON.parse('{"payone-payment":{"title":"PAYONE","general":{"mainMenuItemGeneral":"PAYONE","descriptionTextModule":"Settings for PAYONE"},"capture":{"buttonTitle":"Capture","successTitle":"PAYONE","successMessage":"Capture processed successfully.","errorTitle":"PAYONE","errorMessage":"Capture could not be processed.","tooltips":{"impossible":"Capture impossible"}},"refund":{"buttonTitle":"Refund","successTitle":"PAYONE","successMessage":"Refund processed successfully.","errorTitle":"PAYONE","errorMessage":"Refund could not be processed.","tooltips":{"impossible":"Refund impossible"}},"modal":{"capture":{"title":"Capture","submit":"Capture","fullSubmit":"Full capture","amount":"Capture amount","captured":"Captured amount"},"refund":{"title":"Refund","submit":"Refund","fullSubmit":"Full Refund","amount":"Refund amount","refunded":"Refunded amount"},"orderAmount":"Order amount","remainingAmount":"Remaining amount","descriptionHelpText":"Description help text","close":"Close","labelComment":"Label comment","columns":{"reference":"Reference","product":"Product","quantity":"Quantity","price":"Price"}},"settingsForm":{"save":"Save","test":"Test API Credentials","titleSuccess":"Success","titleError":"Error","labelShowSpecificStatusMapping":"Display state mapping configuration","helpTextShowSpecificStatusMapping":"If not configured the general status mapping config will be applied.","messageTestSuccess":"The API credentials were verified successfully.","messageTestNoTestedPayments":"No payment methods were tested during the check because none of the PAYONE payment methods are activated. Please activate at least one PAYONE payment method under Settings --\x3e Shop --\x3e Payment.","messageTestError":{"general":"The API credentials could not be verified successfully.","creditCard":"The API credentials for Credit Card are not valid.","prepayment":"The API credentials for Prepayment are not valid.","debit":"The API credentials for Debit are not valid.","paypalExpress":"The API credentials for PayPal Express are not valid.","paypal":"The API credentials for PayPal are not valid.","payolutionInstallment":"The API credentials for Paysafe Pay Later Installment are not valid.","payolutionInvoicing":"The API credentials for Paysafe Pay Later Invoicing are not valid.","payolutionDebit":"The API credentials for Paysafe Pay Later Debit are not valid.","sofort":"The API credentials for SOFORT are not valid.","eps":"The API credentials for EPS are not valid.","iDeal":"The API credentials for iDEAL are not valid.","secureInvoice":"The API credentials for secure invoice payment are not valid.","openInvoice":"The API credentials for open invoice payment are not valid.","paydirekt":"The API credentials for Paydirekt payment are not valid.","trustly":"The API credentials for Trustly payment are not valid.","applePay":"The API credentials for ApplePay payment are not valid.","ratepayDebit":"The API credentials for Ratepay Direct Debit payment are not valid.","ratepayInstallment":"The API credentials for Ratepay Installments payment are not valid.","ratepayInvoicing":"The API credentials for Ratepay Open Invoice payment are not valid."}},"supportModal":{"menuButton":"Support","title":"How Can We Help You?","documentation":{"description":"Read our online manual","button":"Online Manual"},"support":{"description":"Contact our technical support","button":"Tech Support"},"repository":{"description":"Report errors on GitHub","button":"GitHub"}},"applePay":{"cert":{"notification":"The ApplePay merchant authentication requires a certificate/key-pair. Further information:
\\n https://docs.payone.com/display/public/PLATFORM/Special+Remarks+-+Apple+Pay#SpecialRemarks-ApplePay-Onboarding

\\n\\n Create a pem-File afterwards by using the following command:
\\n
openssl x509 -inform der -in merchant_id.cer -out merchant_id.pem

\\n Copy certificate (merchant_id.pem) and key (merchant_id.key) file into the following folder:
\\n
%shopwareRoot%/config/apple-pay-cert
"}},"transitionActionNames":{"cancel":"Cancel","complete":"Complete","pay":"Pay","pay_partially":"Pay partially","process":"Process","refund":"Refund","refund_partially":"Refund partially","remind":"Remind","reopen":"Reopen","retour":"Retour","retour_partially":"Retour partially","ship":"Ship","ship_partially":"Ship partially"},"messageNotBlank":"This field must not be empty.","txid":"TXID","sequenceNumber":{"label":"Sequence Number","empty":"none"},"transactionState":"State","transactionCancelled":"Transaction cancelled in Shopware","error":{"transaction":{"notFound":"No matching transaction could be found","orderNotFound":"No matching order could be found"}}},"sw-privileges":{"additional_permissions":{"Payone":{"label":"PAYONE","payone_order_management":"PAYONE transaction management"}}}}')},dzH1:function(e,t){e.exports='{% block payone_payment %}\n\n {% block payone_payment_header %}\n \n {% endblock %}\n\n {% block payone_payment_actions %}\n \n {% endblock %}\n\n {% block payone_payment_settings_content %}\n \n {% endblock %}\n\n{% endblock %}\n'},lkoS:function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:"payone";return a(this,l),c.call(this,e,t,n)}return t=l,(n=[{key:"requeueNotificationForward",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/requeue-forward");return this.httpClient.post(t,e,{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"capturePayment",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/capture-payment");return this.httpClient.post(t,e,{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"refundPayment",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/refund-payment");return this.httpClient.post(t,e,{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}}])&&i(t.prototype,n),s&&i(t,s),l}(u);l.addServiceProvider("PayonePaymentService",(function(e){var t=l.getContainer("init");return new d(t.httpClient,e.loginService)}))},mJGU:function(e,t,n){var a=n("CPMY");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("66ab83f6",a,!0,{})},mOqv:function(e,t,n){var a=n("TAuu");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("SZ7m").default)("88036906",a,!0,{})},mmGx:function(e){e.exports=JSON.parse('{"payonePayment":{"notificationTarget":{"module":{"title":"Payone Notificationweiterleitungen","buttonTitle":"Notifications"},"list":{"title":"Notificationweiterleitungen","empty":"Keine Einträge","buttonCreate":"Weiterleitungsziel anlegen"},"detail":{"headline":"Notificationweiterleitung","placeholder":{"url":"Url","username":"Benutzer","password":"Passwort"},"label":{"url":"Url","isBasicAuth":"Basic Auth","txactions":"txactions","buttonSave":"Speichern","buttonCancel":"Abbrechen","username":"Benutzer","password":"Passwort"}},"columns":{"url":"Url","isBasicAuth":"Basic Auth","txactions":"txactions"},"actions":{"requeue":"Erneut senden"},"messages":{"success":"Die Weiterleitung wurde erfolgreich in Auftrag gegeben."}}}}')},qSh7:function(e,t,n){},zyFP:function(e,t){e.exports='{% block payone_payment_plugin_icon %}\n \n{% endblock %}\n'}}); +//# sourceMappingURL=payone-payment.js.map \ No newline at end of file diff --git a/src/Resources/public/administration/js/payone-payment.js.map b/src/Resources/public/administration/js/payone-payment.js.map new file mode 100644 index 000000000..a9e469897 --- /dev/null +++ b/src/Resources/public/administration/js/payone-payment.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-notification-target/page/payone-notification-target-detail/payone-notification-target-detail.html.twig","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/api/payone-payment-settings.service.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/payone-payment-plugin-icon/payone-payment-plugin-icon.scss","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/order-items/order-items.scss","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/acl/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/capture/capture.html.twig","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/capture/style.scss","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/filter/payone_currency.filter.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/extension/sw-settings-index/sw-settings-index.scss","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/extension/sw-order/sw-order.scss","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/extension/sw-settings-index/sw-settings-index.html.twig","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/capture/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/refund/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/order-items/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/payone-data-grid/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/payone-payment-plugin-icon/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/page/payone-settings/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/extension/sw-order/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/extension/sw-settings-index/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-notification-target/page/payone-notification-target-list/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-notification-target/page/payone-notification-target-detail/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-notification-target/index.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/payone-data-grid/payone-data-grid.html.twig","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-notification-target/page/payone-notification-target-list/payone-notification-target-list.html.twig","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/refund/refund.html.twig","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/extension/sw-order/sw-order.html.twig","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/order-items/order-items.html.twig","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/page/payone-settings/payone-settings.html.twig","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/api/payone-payment.service.js","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/refund/style.scss","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/page/payone-settings/style.scss","webpack:////var/www/html/_github/PayonePayment/src/Resources/app/administration/src/module/payone-payment/component/payone-payment-plugin-icon/payone-payment-plugin-icon.html.twig"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","Application","Shopware","ApiService","Classes","PayonePaymentSettingsService","httpClient","loginService","apiEndpoint","credentials","headers","this","getBasicHeaders","post","getApiBasePath","then","response","handleResponse","catch","addServiceProvider","container","initContainer","getContainer","content","locals","add","default","Service","addPrivilegeMappingEntry","category","parent","roles","payone_order_management","privileges","getPrivileges","dependencies","e","Filter","currency","Utils","format","register","decimalPrecision","decimalPlaces","listToStyles","parentId","list","styles","newStyles","length","item","id","part","css","media","sourceMap","parts","push","hasDocument","document","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","type","appendChild","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","index","replacement","filter","Boolean","join","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","sources","btoa","unescape","encodeURIComponent","JSON","stringify","firstChild","Component","Mixin","Context","template","mixins","getByName","inject","props","order","required","transaction","computed","itemRounding","decimals","totalTransactionAmount","Math","round","amount","totalPrice","capturedAmount","customFields","undefined","payone_captured_amount","remainingAmount","maxCaptureAmount","buttonEnabled","payone_allow_capture","isItemSelected","returnValue","selection","forEach","selected","data","isLoading","hasError","showCaptureModal","isCaptureSuccessful","captureAmount","methods","calculateCaptureAmount","unit_price","quantity","openCaptureModal","closeCaptureModal","onCaptureFinished","captureOrder","request","orderTransactionId","payone_order_id","payone_transaction_id","salesChannel","orderLines","complete","lineItems","order_item","copy","taxRate","tax_rate","total_amount","total_tax_amount","executeCapture","captureFullOrder","_populateSelectionProperty","PayonePaymentService","capturePayment","createNotificationSuccess","title","$tc","message","error","createNotificationError","finally","$nextTick","$emit","onSelectItem","onChangeQuantity","payone_captured_quantity","unitPrice","showRefundModal","isRefundSuccessful","refundAmount","refundedAmount","payone_refunded_amount","maxRefundAmount","payone_allow_refund","calculateRefundAmount","openRefundModal","closeRefundModal","onRefundFinished","refundOrder","refundPayment","refundFullOrder","payone_refunded_quantity","String","orderItems","price","$options","filters","shortName","decimal_precision","disabled","product","label","orderItem","orderItemColumns","rawData","extend","types","isTesting","isSaveSuccessful","isTestSuccessful","isApplePayCertConfigured","config","merchantIdFilled","accountIdFilled","portalIdFilled","portalKeyFilled","showValidationErrors","isSupportModalOpen","stateMachineTransitionActions","displayStatusMapping","collapsibleState","created","createdComponent","credentialsMissing","metaInfo","$createTitle","me","getStateMachineTransitionActions","result","element","translationKey","translationValue","$t","hasApplePayCert","paymentMethodPrefixes","isVisiblePaymentMethodCard","card","startsWith","isCollapsed","isCollapsible","displayField","toggleCollapsible","saveFinish","testFinish","onConfigChange","checkCredentialsFilled","getConfigValue","field","defaultConfig","$refs","systemConfig","actualConfigData","null","currentSalesChannelId","getPaymentConfigValue","prefix","uppercasedField","charAt","toUpperCase","slice","onSave","saveAll","onTest","merchantId","accountId","portalId","portalKey","validateApiCredentials","testCount","credentialsValid","errors","errorResponse","getBind","originalElement","code","detail","configElement","elements","child","getElementBind","deepCopyObject","inherit","componentName","placeholder","inheritedValue","placeholderIsPassword","isUndefined","includes","labelProperty","valueProperty","Criteria","Data","override","disableButtons","notificationForwards","payoneTransactions","transactions","isPayoneTransaction","sort","a","b","createdAt","notificationForwardRepository","repositoryFactory","notificationTargetColumns","width","align","requeue","notificationForward","notificationForwardId","requeueNotificationForward","getNotificationForwards","hasNotificationForwards","criteria","addAssociation","addSorting","addFilter","equals","setLimit","search","api","searchResult","can","permission","acl","isActiveTransaction","stateMachineState","technicalName","hasPayoneTransaction","isPayone","map","match","app","version","parseInt","Module","configuration","description","targetVersion","icon","snippets","deDE","enGB","routeMiddleware","next","currentRoute","routes","component","path","meta","parentPath","settingsItem","to","group","iconComponent","backgroundEnabled","items","sortBy","criteriaLimit","criteriaPage","limit","dataIndex","primary","repository","renderTxactions","getList","context","inheritance","total","onDelete","option","listing","deleteItem","shortcuts","ESCAPE","notificationTargetId","notificationTarget","identifier","notificationTargetIsLoading","notificationTargetRepository","watch","updateSelection","txactions","loadEntityData","State","commit","isInvalid","isBasicAuth","username","password","save","$router","params","exception","onCancel","color","route","requestBody","apiRoute"],"mappings":"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","file":"static/js/payone-payment.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/bundles/payonepayment/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"UZdK\");\n","module.exports = \"{% block payone_notification_target_detail %}\\n \\n\\n {% block payone_notification_target_detail_header %}\\n \\n {% endblock %}\\n\\n {% block payone_notification_target_detail_actions %}\\n \\n {% endblock %}\\n\\n {% block payone_notification_target_detail_content %}\\n \\n\\n {% block payone_notification_target_detail_base_basic_info_card %}\\n \\n \\n \\n {% endblock %}\\n \\n {% endblock %}\\n\\n \\n{% endblock %}\\n\";","const { Application } = Shopware;\nconst ApiService = Shopware.Classes.ApiService;\n\nclass PayonePaymentSettingsService extends ApiService {\n constructor(httpClient, loginService, apiEndpoint = 'payone_payment') {\n super(httpClient, loginService, apiEndpoint);\n }\n\n validateApiCredentials(credentials) {\n const headers = this.getBasicHeaders();\n\n return this.httpClient\n .post(\n `_action/${this.getApiBasePath()}/validate-api-credentials`,\n {\n credentials: credentials,\n },\n {\n headers: headers\n }\n )\n .then((response) => {\n return ApiService.handleResponse(response);\n });\n }\n\n getStateMachineTransitionActions() {\n const headers = this.getBasicHeaders();\n\n return this.httpClient\n .get(\n `_action/${this.getApiBasePath()}/get-state-machine-transition-actions`,\n {\n headers: headers\n }\n )\n .then((response) => {\n return ApiService.handleResponse(response);\n });\n }\n\n hasApplePayCert() {\n const headers = this.getBasicHeaders();\n\n return this.httpClient\n .get(\n `_action/${this.getApiBasePath()}/check-apple-pay-cert`,\n {\n headers: headers\n }\n )\n .catch(() => {\n return false;\n })\n .then((response) => {\n if(!response) {\n return false;\n }\n return true;\n });\n }\n}\n\nApplication.addServiceProvider('PayonePaymentSettingsService', (container) => {\n const initContainer = Application.getContainer('init');\n\n return new PayonePaymentSettingsService(initContainer.httpClient, container.loginService);\n});\n\n","// style-loader: Adds some css to the DOM by adding a