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/mods/mod_klarna/pay.phtml | |
| 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/mods/mod_klarna/pay.phtml')
| -rw-r--r-- | views/mods/mod_klarna/pay.phtml | 114 |
1 files changed, 114 insertions, 0 deletions
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> |
