diff options
| author | Daniel Schmitzer <noreply@maennchen1.de> | 2024-08-22 08:29:52 +0000 |
|---|---|---|
| committer | Daniel Schmitzer <noreply@maennchen1.de> | 2024-08-22 08:29:52 +0000 |
| commit | 523aa968834490bb881ec56a4085370c5d6d4cdc (patch) | |
| tree | 31a7118dc0d9b18ae867635155658aa22a5eac58 /views | |
| parent | ba1c711c28ea40dae2dc8e8cb0ecc9684d13b71b (diff) | |
- Neues Klarna Modul rein
git-svn-id: https://[internal]/wordpress/plugins/wpsg4@8426 0d5edaf7-2b12-4e95-93f4-047927463d4b
Diffstat (limited to 'views')
| -rw-r--r-- | views/mods/mod_klarna/gfx/klarna.svg | 1 | ||||
| -rw-r--r-- | views/mods/mod_klarna/gfx/klarna_rechnung.png | bin | 0 -> 11288 bytes | |||
| -rw-r--r-- | views/mods/mod_klarna/gfx/logo_100x25.png | bin | 0 -> 2135 bytes | |||
| -rw-r--r-- | views/mods/mod_klarna/order_done.phtml | 42 | ||||
| -rw-r--r-- | views/mods/mod_klarna/order_view_afterpayment.phtml | 31 | ||||
| -rw-r--r-- | views/mods/mod_klarna/pay.phtml | 114 | ||||
| -rw-r--r-- | views/mods/mod_klarna/settings_edit.phtml | 58 |
7 files changed, 246 insertions, 0 deletions
diff --git a/views/mods/mod_klarna/gfx/klarna.svg b/views/mods/mod_klarna/gfx/klarna.svg new file mode 100644 index 0000000..e0ceb03 --- /dev/null +++ b/views/mods/mod_klarna/gfx/klarna.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="100" height="40.4494" viewBox="0 0 100 40.4494"><defs><style>.cls-1{fill:#ffb3c7;}</style></defs><g id="Lager_2" data-name="Lager 2"><g id="Layer_1" data-name="Layer 1"><rect class="cls-1" width="100" height="40.4494" rx="11.7384"/><path d="M80.0772,17.7235a6.194,6.194,0,1,0,0,10.2373v.75h3.5145V16.9727H80.0772Zm-3.1964,8.1388a3.0243,3.0243,0,1,1,3.1849-3.02A3.1059,3.1059,0,0,1,76.8808,25.8623Z"/><rect x="28.2027" y="11.7416" width="3.678" height="16.9694"/><path d="M64.1542,16.6569a4.2694,4.2694,0,0,0-3.62,1.6383V16.9733h-3.5V28.711h3.5421V22.5424a2.4754,2.4754,0,0,1,2.6383-2.6591c1.5447,0,2.4325.9228,2.4325,2.6348V28.711h3.5107V21.2464C69.1577,18.5146,66.9857,16.6569,64.1542,16.6569Z"/><path d="M43,17.7235a6.194,6.194,0,1,0,0,10.2373v.75h3.5145V16.9727H43Zm-3.1965,8.1388a3.0243,3.0243,0,1,1,3.1845-3.02A3.1058,3.1058,0,0,1,39.8034,25.8623Z"/><path d="M51.9513,18.5017V16.9728H48.353V28.7111h3.606v-5.48c0-1.8491,2.0042-2.843,3.3949-2.843.014,0,.0276.0014.0417.0015V16.9735A4.3821,4.3821,0,0,0,51.9513,18.5017Z"/><path d="M87.323,24.5476a2.2059,2.2059,0,1,0,2.206,2.2059A2.2057,2.2057,0,0,0,87.323,24.5476Z"/><path d="M25.6675,11.7384H21.8558a9.7488,9.7488,0,0,1-3.9412,7.8678l-1.51,1.131,5.8513,7.9792h4.8106l-5.3837-7.342A13.5049,13.5049,0,0,0,25.6675,11.7384Z"/><rect x="12.1204" y="11.7384" width="3.8185" height="16.9773"/></g></g></svg>
\ No newline at end of file diff --git a/views/mods/mod_klarna/gfx/klarna_rechnung.png b/views/mods/mod_klarna/gfx/klarna_rechnung.png Binary files differnew file mode 100644 index 0000000..70f3963 --- /dev/null +++ b/views/mods/mod_klarna/gfx/klarna_rechnung.png diff --git a/views/mods/mod_klarna/gfx/logo_100x25.png b/views/mods/mod_klarna/gfx/logo_100x25.png Binary files differnew file mode 100644 index 0000000..d3a9476 --- /dev/null +++ b/views/mods/mod_klarna/gfx/logo_100x25.png diff --git a/views/mods/mod_klarna/order_done.phtml b/views/mods/mod_klarna/order_done.phtml new file mode 100644 index 0000000..7385448 --- /dev/null +++ b/views/mods/mod_klarna/order_done.phtml @@ -0,0 +1,42 @@ +<?php + + declare(strict_types=1); + + /** + * @author: daniel + * @date: 04.03.24 + * @time: 13:39 + */ + + namespace wpsgKlarna; + + $view = $this->view['wpsg_mod_klarna']; + +?> + +<div class="order_done_wpsg_mod_klarna <?php echo ($view['state']??''); ?>"> + + <?php if (($view['state']??'') === 'PAYED_DONE') { ?> + + <p><?php echo __('Betrag wurde mit Klarna bezahlt.', 'wpsgKlarna'); ?></p> + + <?php } else if (($view['state']??'') === 'PAYED') { ?> + + <p><?php echo __('Betrag wurde bereits mit Klarna bezahlt.', 'wpsgKlarna'); ?></p> + + <?php } else if (($view['state']??'') === 'TOPAY') { ?> + + <div id="wpsg_mod_klarna_widget"></div> + <input type="button" class="button" id="klarna_payment_button" value="<?php echo __('Jetzt mit Klarna bezahlen.', 'wpsgKlarna'); ?>" /> + + <?php + + $this->view['wpsg_mod_klarna']['button_id'] = 'klarna_payment_button'; + + echo $this->render(dirname(__FILE__).'/pay.phtml'); + + ?> + + <?php } ?> + +</div> diff --git a/views/mods/mod_klarna/order_view_afterpayment.phtml b/views/mods/mod_klarna/order_view_afterpayment.phtml new file mode 100644 index 0000000..032bf7e --- /dev/null +++ b/views/mods/mod_klarna/order_view_afterpayment.phtml @@ -0,0 +1,31 @@ +<?php + + declare(strict_types=1); + + /** + * @author: daniel + * @date: 04.03.24 + * @time: 16:38 + */ + + namespace wpsgKlarna; + + $oOrder = \wpsg_order::getInstance(intval($this->view['data']['id'])); + + $client_token = $oOrder->getMeta('wpsg_mod_klarna_client_token', false, ''); + $session_id = $oOrder->getMeta('wpsg_mod_klarna_session_id', false, ''); + $authorization_token = $oOrder->getMeta('wpsg_mod_klarna_authorization_token', false, ''); + $klarna_order_id = $oOrder->getMeta('wpsg_mod_klarna_order_id', false, ''); + $capture_id = $oOrder->getMeta('wpsg_mod_klarna_capture_id', false, ''); + +?> + +<br /> + +<?php if ($client_token !== '') { echo wpsg_drawForm_Input('', __('Klarna ClientToken', 'wpsg'), $client_token, ['readonly' => true]); } ?> +<?php if ($session_id !== '') { echo wpsg_drawForm_Input('', __('Klarna SessionID', 'wpsg'), $session_id, ['readonly' => true]); } ?> +<?php if ($authorization_token !== '') { echo wpsg_drawForm_Input('', __('Klarna AuthorizationToken', 'wpsg'), $authorization_token, ['readonly' => true]); } ?> +<?php if ($klarna_order_id !== '') { echo wpsg_drawForm_Input('', __('Klarna OrderId', 'wpsg'), $klarna_order_id, ['readonly' => true]); } ?> +<?php if ($capture_id !== '') { echo wpsg_drawForm_Input('', __('Klarna CaptureId', 'wpsg'), $capture_id, ['readonly' => true]); } ?> + + diff --git a/views/mods/mod_klarna/pay.phtml b/views/mods/mod_klarna/pay.phtml new file mode 100644 index 0000000..79661d6 --- /dev/null +++ b/views/mods/mod_klarna/pay.phtml @@ -0,0 +1,114 @@ +<?php + + declare(strict_types=1); + + /** + * @author: daniel + * @date: 05.03.24 + * @time: 07:20 + */ + + namespace wpsgKlarna; + + $view = $this->view['wpsg_mod_klarna']; + + /** @var \wpsg_order $oOrder */ + $oOrder = $view['oOrder']; + + $authorize_arg = [ + 'billing_address' => [ + 'given_name' => $oOrder->getInvoiceFirstName(), + 'family_name' => $oOrder->getInvoiceName(), + 'email' => $oOrder->getCustomer()->getEMail(), + 'street_address' => $oOrder->getInvoiceStreet(), + 'postal_code' => $oOrder->getInvoiceZip(), + 'city' => $oOrder->getInvoiceCity(), + ] + ]; + +?> + +<script> + + window.klarnaAsyncCallback = () => { + + const el_pppl_loading_blocker = document.getElementById('pppl_loading_blocker'); + + Klarna.Payments.init({ + client_token: '<?php echo $view['client_token']; ?>' + }); + + Klarna.Payments.load({ + container: '#wpsg_mod_klarna_widget' + }, { + + }, function (res) { + + console.log(res); + + }); + + document.getElementById('<?php echo $view['button_id']; ?>').addEventListener('click', (event) => { + + event.preventDefault(); + + if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'block'; + + Klarna.Payments.authorize( + {}, {}, + function(res) { + + console.log(res); + + if (res.authorization_token) { + + try { + + fetch('<?php echo $view['url_setAuthToken']; ?>', { + method: 'POST', + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + 'authorization_token': res.authorization_token + }) + }).then(response => { + + return response.json(); + + }).then(data => { + + if (data.success) { + + location.href = data.href; + + } else throw Error(); + + }).catch(e => { + + if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'none'; + + }); + + } catch (error) { + + if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'none'; + + } + + } else { + + if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'none'; + + } + + } + ); + + }); + + }; + +</script> + +<script src="https://x.klarnacdn.net/kp/lib/v1/api.js" async></script> diff --git a/views/mods/mod_klarna/settings_edit.phtml b/views/mods/mod_klarna/settings_edit.phtml new file mode 100644 index 0000000..d622a10 --- /dev/null +++ b/views/mods/mod_klarna/settings_edit.phtml @@ -0,0 +1,58 @@ +<?php + + declare(strict_types=1); + + /** + * @author: daniel + * @date: 04.03.24 + * @time: 11:56 + */ + + namespace wpsgKlarna; + +?> + +<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_active', __('Zahlungsart für neue Bestellungen aktiv', 'wpsg'), $this->get_option('wpsg_mod_klarna_active'), ['help' => 'wpsg_mod_klarna_active']); ?> +<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_admin_active', __('Zahlungsart nur für Admins aktiv', 'wpsgPayone'), $this->get_option('wpsg_mod_klarna_admin_active'), ['help' => 'wpsg_mod_klarna_admin_active']); ?> + +<?php echo wpsg_drawForm_Input('wpsg_mod_klarna_api_user', __('API Benutzername', 'wpsg'), $this->get_option('wpsg_mod_klarna_api_user'), ['help' => 'wpsg_mod_klarna_api_user']); ?> +<?php echo wpsg_drawForm_Input('wpsg_mod_klarna_api_password', __('API Passwort', 'wpsg'), $this->get_option('wpsg_mod_klarna_api_password'), ['help' => 'wpsg_mod_klarna_api_password']); ?> + +<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_sandbox', __('Sandbox Modus', 'wpsg'), $this->get_option('wpsg_mod_klarna_sandbox'), ['help' => 'wpsg_mod_klarna_sandbox']); ?> + +<div id="wpsg_mod_klarna_sandbox_layer"> + <?php echo wpsg_drawForm_Input('wpsg_mod_klarna_sandbox_user', __('(Sandbox) API Benutzername', 'wpsg'), $this->get_option('wpsg_mod_klarna_sandbox_user'), ['help' => 'wpsg_mod_klarna_sandbox_user']); ?> + <?php echo wpsg_drawForm_Input('wpsg_mod_klarna_sandbox_password', __('(Sandbox) API Passwort', 'wpsg'), $this->get_option('wpsg_mod_klarna_sandbox_password'), ['help' => 'wpsg_mod_klarna_sandbox_password']); ?> +</div> + +<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_debug', __('API Anfragen im Bestellprotokoll protokollieren', 'wpsg'), $this->get_option('wpsg_mod_klarna_debug'), ['help' => 'wpsg_mod_klarna_debug']); ?> + +<br /> + +<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_checkout', __('Zahlungen im Checkout vorauthorisieren', 'wpsg'), $this->get_option('wpsg_mod_klarna_checkout'), array('help' => 'wpsg_mod_klarna_checkout')); ?> + +<br /> + +<script> + + const el_wpsg_mod_klarna_sandbox = document.getElementById('wpsg_mod_klarna_sandbox'); + const el_wpsg_mod_klarna_sandbox_layer = document.getElementById('wpsg_mod_klarna_sandbox_layer'); + + el_wpsg_mod_klarna_sandbox.addEventListener('change', (event) => { + + if (event.target.checked) el_wpsg_mod_klarna_sandbox_layer.style.display = 'block'; + else el_wpsg_mod_klarna_sandbox_layer.style.display = 'none'; + + }); + + el_wpsg_mod_klarna_sandbox.dispatchEvent(new Event('change')); + + +</script> + +<br /> + +<?php echo wpsg_drawForm_Input('wpsg_mod_klarna_fee', __('Gebühr', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_klarna_fee'), true), array('help' => 'wpsg_mod_klarna_fee','unit' => $this->get_option('wpsg_currency').' / %')); ?> +<?php echo wpsg_drawForm_Select('wpsg_mod_klarna_tax_key', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_klarna_tax_key'), array('help' => 'wpsg_mod_klarna_tax_key')); ?> +<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_notaxcountry', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_klarna_notaxcountry'), array('help' => 'wpsg_mod_klarna_notaxcountry')); ?> +<?php echo wpsg_drawForm_Textarea('wpsg_mod_klarna_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_klarna_hint'), array('help' => 'wpsg_mod_klarna_hint')); ?> |
